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,10 +1,10 @@
package com.wb.domainserver.common.ui; package com.wb.domainserver.common.mvc.tags.ui;
import com.wb.domainserver.common.ui.pagination.*; import com.wb.domainserver.common.mvc.tags.ui.pagination.*;
import com.wb.domainserver.common.ui.pagination.DefaultPaginationManager; import com.wb.domainserver.common.mvc.tags.ui.pagination.DefaultPaginationManager;
import com.wb.domainserver.common.ui.pagination.DefaultPaginationRenderer; import com.wb.domainserver.common.mvc.tags.ui.pagination.DefaultPaginationRenderer;
import com.wb.domainserver.common.ui.pagination.PaginationManager; import com.wb.domainserver.common.mvc.tags.ui.pagination.PaginationManager;
import com.wb.domainserver.common.ui.pagination.PaginationRenderer; import com.wb.domainserver.common.mvc.tags.ui.pagination.PaginationRenderer;
import com.wb.domainserver.util.string.StringUtil; import com.wb.domainserver.util.string.StringUtil;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.jsp.JspException; import jakarta.servlet.jsp.JspException;

View File

@@ -1,4 +1,4 @@
package com.wb.domainserver.common.ui.pagination; package com.wb.domainserver.common.mvc.tags.ui.pagination;
import java.text.MessageFormat; import java.text.MessageFormat;

View File

@@ -1,4 +1,4 @@
package com.wb.domainserver.common.ui.pagination; package com.wb.domainserver.common.mvc.tags.ui.pagination;
import java.util.Map; import java.util.Map;

View File

@@ -1,4 +1,4 @@
package com.wb.domainserver.common.ui.pagination; package com.wb.domainserver.common.mvc.tags.ui.pagination;
/** /**
* 페이징 리스트의 기본적인 포맷을 제공한다. * 페이징 리스트의 기본적인 포맷을 제공한다.

View File

@@ -1,4 +1,4 @@
package com.wb.domainserver.common.ui.pagination; package com.wb.domainserver.common.mvc.tags.ui.pagination;
import jakarta.servlet.ServletContext; import jakarta.servlet.ServletContext;
import org.springframework.web.context.ServletContextAware; import org.springframework.web.context.ServletContextAware;

View File

@@ -1,8 +1,6 @@
package com.wb.domainserver.common.mvc.tags.ui.pagination; package com.wb.domainserver.common.mvc.tags.ui.pagination;
import java.io.Serializable; import java.util.Arrays;
import java.math.BigDecimal;
import java.math.RoundingMode;
/** /**
* 페이징 처리를 위한 데이터 처리용 Bean * 페이징 처리를 위한 데이터 처리용 Bean
@@ -21,8 +19,7 @@ import java.math.RoundingMode;
* *
* </pre> * </pre>
*/ */
public class PaginationInfo implements Serializable{ public class PaginationInfo {
private static final long serialVersionUID = 1L;
/** 현재 페이지 번호. */ /** 현재 페이지 번호. */
private int currentPageNo; private int currentPageNo;
/** 한 페이지당 게시되는 게시물 건 수 */ /** 한 페이지당 게시되는 게시물 건 수 */
@@ -32,6 +29,8 @@ public class PaginationInfo implements Serializable{
/** 페이지 리스트에 게시되는 페이지 건수 */ /** 페이지 리스트에 게시되는 페이지 건수 */
private int totalRecordCount; private int totalRecordCount;
private Integer[] pageUnitArr = {10, 50, 100, 200};
public int getRecordCountPerPage() { public int getRecordCountPerPage() {
return recordCountPerPage; return recordCountPerPage;
} }
@@ -76,11 +75,8 @@ public class PaginationInfo implements Serializable{
private int lastRecordIndex; private int lastRecordIndex;
public int getTotalPageCount() { public int getTotalPageCount() {
BigDecimal totalRecordCount = new BigDecimal(getTotalRecordCount()); totalPageCount = ((getTotalRecordCount() - 1) / getRecordCountPerPage()) + 1;
BigDecimal recordCountPerPage = new BigDecimal(getRecordCountPerPage()); return totalPageCount;
BigDecimal totalPageCount = totalRecordCount.divide(recordCountPerPage, RoundingMode.CEILING);
return totalPageCount.intValue();
} }
public int getFirstPageNo() { public int getFirstPageNo() {
@@ -113,4 +109,12 @@ public class PaginationInfo implements Serializable{
lastRecordIndex = getCurrentPageNo() * getRecordCountPerPage(); lastRecordIndex = getCurrentPageNo() * getRecordCountPerPage();
return lastRecordIndex; return lastRecordIndex;
} }
public Integer[] getPageUnitArr() {
return pageUnitArr.clone();
}
public void setPageUnitArr(Integer[] pageUnitArr) {
this.pageUnitArr = Arrays.copyOf(pageUnitArr, pageUnitArr.length);
}
} }

View File

@@ -1,4 +1,4 @@
package com.wb.domainserver.common.ui.pagination; package com.wb.domainserver.common.mvc.tags.ui.pagination;
/** /**
* PaginationRenderer의 구현체를 빈설정 파일을 참조하여 반환한다. * PaginationRenderer의 구현체를 빈설정 파일을 참조하여 반환한다.

View File

@@ -1,4 +1,4 @@
package com.wb.domainserver.common.ui.pagination; package com.wb.domainserver.common.mvc.tags.ui.pagination;
/** /**
* PaginationRenderer의 interface * PaginationRenderer의 interface

View File

@@ -1,120 +0,0 @@
package com.wb.domainserver.common.ui.pagination;
import java.util.Arrays;
/**
* 페이징 처리를 위한 데이터 처리용 Bean
*
* @author 박철민
* @since 2023-11-22
* @version 1.0
* @see
*
* <pre>
* == (Modification Information) == 개정이력
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2023-11-22 박철민 최초 생성
*
* </pre>
*/
public class PaginationInfo {
/** 현재 페이지 번호. */
private int currentPageNo;
/** 한 페이지당 게시되는 게시물 건 수 */
private int recordCountPerPage;
/** 한 페이지당 게시되는 게시물 건 수 */
private int pageSize;
/** 페이지 리스트에 게시되는 페이지 건수 */
private int totalRecordCount;
private Integer[] pageUnitArr = {10, 50, 100, 200};
public int getRecordCountPerPage() {
return recordCountPerPage;
}
public void setRecordCountPerPage(int recordCountPerPage) {
this.recordCountPerPage = recordCountPerPage;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getCurrentPageNo() {
return currentPageNo;
}
public void setCurrentPageNo(int currentPageNo) {
this.currentPageNo = currentPageNo;
}
public void setTotalRecordCount(int totalRecordCount) {
this.totalRecordCount = totalRecordCount;
}
public int getTotalRecordCount() {
return totalRecordCount;
}
/** 페이지 개수 */
private int totalPageCount;
/** 페이지 리스트의 첫 페이지 번호 */
private int firstPageNoOnPageList;
/** 페이지 리스트의 마지막 페이지 번호 */
private int lastPageNoOnPageList;
/** 페이징 SQL의 조건절에 사용되는 시작 rownum */
private int firstRecordIndex;
/** 페이징 SQL의 조건절에 사용되는 마지막 rownum */
private int lastRecordIndex;
public int getTotalPageCount() {
totalPageCount = ((getTotalRecordCount() - 1) / getRecordCountPerPage()) + 1;
return totalPageCount;
}
public int getFirstPageNo() {
return 1;
}
public int getLastPageNo() {
return getTotalPageCount();
}
public int getFirstPageNoOnPageList() {
firstPageNoOnPageList = ((getCurrentPageNo() - 1) / getPageSize()) * getPageSize() + 1;
return firstPageNoOnPageList;
}
public int getLastPageNoOnPageList() {
lastPageNoOnPageList = getFirstPageNoOnPageList() + getPageSize() - 1;
if (lastPageNoOnPageList > getTotalPageCount()) {
lastPageNoOnPageList = getTotalPageCount();
}
return lastPageNoOnPageList;
}
public int getFirstRecordIndex() {
firstRecordIndex = (getCurrentPageNo() - 1) * getRecordCountPerPage();
return firstRecordIndex;
}
public int getLastRecordIndex() {
lastRecordIndex = getCurrentPageNo() * getRecordCountPerPage();
return lastRecordIndex;
}
public Integer[] getPageUnitArr() {
return pageUnitArr.clone();
}
public void setPageUnitArr(Integer[] pageUnitArr) {
this.pageUnitArr = Arrays.copyOf(pageUnitArr, pageUnitArr.length);
}
}

View File

@@ -196,4 +196,7 @@ public interface BOMaSopmalMapper {
List<DataMap> selectSopmalGroupList(BOMaSopmalVO vo); List<DataMap> selectSopmalGroupList(BOMaSopmalVO vo);
Shop selectSopmalInfo(String sopmalCd); Shop selectSopmalInfo(String sopmalCd);
/*전체 쇼핑몰 목록*/
List<DataMap> selectSopmalList();
} }

View File

@@ -986,4 +986,9 @@ public class BOMaSopmalService {
return mapper.selectSopmalInfo(sopmalCd); return mapper.selectSopmalInfo(sopmalCd);
} }
public List<DataMap> selectSopmalList(){
return mapper.selectSopmalList();
}
} }

View File

@@ -6,10 +6,12 @@ import com.wb.domainserver.response.WnbtResponse;
import com.wb.domainserver.response.WnbtResponseBody; import com.wb.domainserver.response.WnbtResponseBody;
import com.wb.domainserver.security.authorization.annotation.AuthPolicy; import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.CookieUtils;
import jakarta.servlet.http.Cookie; import jakarta.servlet.http.Cookie;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
@@ -27,25 +29,29 @@ public class AuthController {
/** /**
* 관리자 > 쇼핑몰 변경 * 관리자 > 쇼핑몰 변경
* @param vo * @param vo
* @param model * @param request
* @param response
* @return * @return
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectMngrSopmalSite") @RequestMapping(value = "/selectMngrSopmalSite", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> selectMngrSopmalSite(@RequestBody AuthVO vo, HttpServletRequest request, HttpServletResponse response) { public ResponseEntity<WnbtResponse> selectMngrSopmalSite(@RequestBody AuthVO vo, HttpServletRequest request, HttpServletResponse response) {
//기존 쿠기값 변경 //기존 쿠기값 변경
if(request.getCookies() != null) { CookieUtils.deleteCookie("authSopmalCd", "/", request, response);
for(Cookie cookie : request.getCookies()){ CookieUtils.createCookie("authSopmalCd",vo.getSopmalCd(), "/", true, request, response);
if("authSopmalCd".equals(cookie.getName())){
cookie.setPath("/");
cookie.setValue(vo.getSopmalCd());
response.addCookie(cookie);
break;
} // if(request.getCookies() != null) {
} // for(Cookie cookie : request.getCookies()){
} // if("authSopmalCd".equals(cookie.getName())){
// cookie.setPath("/mngr");
// cookie.setValue(vo.getSopmalCd());
// response.addCookie(cookie);
// break;
//
// }
// }
// }
Map<String, Object> message = new HashMap<>(); Map<String, Object> message = new HashMap<>();
message.put("result", "success"); message.put("result", "success");

View File

@@ -2,6 +2,7 @@ package com.wb.domainserver.domain.gcone.bbs.bbs.mapper;
import java.util.List; import java.util.List;
import com.wb.domainserver.domain.mngr.bbs.bbsmngr.vo.BbsmngrVO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;

View File

@@ -8,6 +8,7 @@ import java.util.List;
import com.wb.domainserver.domain.gcone.setup.gradbnef.mapper.BOGradbnefMapper; import com.wb.domainserver.domain.gcone.setup.gradbnef.mapper.BOGradbnefMapper;
import com.wb.domainserver.domain.gcone.setup.gradbnef.vo.BOGradbnefVO; import com.wb.domainserver.domain.gcone.setup.gradbnef.vo.BOGradbnefVO;
import com.wb.domainserver.domain.mngr.bbs.bbsmngr.vo.BbsmngrVO;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;

View File

@@ -7,8 +7,10 @@ import java.util.List;
import com.wb.domainserver.domain.comm.vo.AbstractVO; import com.wb.domainserver.domain.comm.vo.AbstractVO;
import com.wb.domainserver.util.dataaccess.DataMap; import com.wb.domainserver.util.dataaccess.DataMap;
import jakarta.validation.constraints.NotBlank;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
@@ -49,6 +51,8 @@ public class BOCmVO extends AbstractVO {
/** /**
* 내용 * 내용
*/ */
@NotBlank(message = "내용")
@Length(min = 0, max = 100, message = "내용")
private String cn; private String cn;
/** /**
* 비밀번호 * 비밀번호

View File

@@ -409,7 +409,7 @@ public class BOGnrlbbscttController {
//상품 관련 //상품 관련
if (delInfo.getGoodsInnb() != null) { if (delInfo.getGoodsInnb() != null) {
BOGoodsVO goodsVO = new BOGoodsVO(); BOGoodsVO goodsVO = new BOGoodsVO();
goodsVO.setGoodsInnb(delInfo.getGoodsInnb()); goodsVO.setGoodsInnb(String.valueOf(delInfo.getGoodsInnb()));
goodsVO.setSopmalCd(bbsctt.getSopmalCd()); goodsVO.setSopmalCd(bbsctt.getSopmalCd());
/*상품정보 > 상품후기건수 차감*/ /*상품정보 > 상품후기건수 차감*/
goodsService.updateRvwRelateSm(goodsVO); goodsService.updateRvwRelateSm(goodsVO);
@@ -421,7 +421,7 @@ public class BOGnrlbbscttController {
if (!CollectionUtils.isEmpty(bbsctt.getGoodsInnbArr())) { if (!CollectionUtils.isEmpty(bbsctt.getGoodsInnbArr())) {
for (String goodsInnb : bbsctt.getGoodsInnbArr()) { for (String goodsInnb : bbsctt.getGoodsInnbArr()) {
BOGoodsVO goodsVO = new BOGoodsVO(); BOGoodsVO goodsVO = new BOGoodsVO();
goodsVO.setGoodsInnb(Integer.valueOf(goodsInnb)); goodsVO.setGoodsInnb(goodsInnb);
goodsVO.setSopmalCd(bbsctt.getSopmalCd()); goodsVO.setSopmalCd(bbsctt.getSopmalCd());
/*상품정보 > 상품후기건수 차감*/ /*상품정보 > 상품후기건수 차감*/
@@ -840,7 +840,7 @@ public class BOGnrlbbscttController {
for (String goodsInnb : bbsctt.getGoodsInnbArr()) { for (String goodsInnb : bbsctt.getGoodsInnbArr()) {
bbsctt.setGoodsInnb(goodsInnb); bbsctt.setGoodsInnb(goodsInnb);
} }
goodsVO.setGoodsInnb(Integer.valueOf(bbsctt.getGoodsInnb())); goodsVO.setGoodsInnb(bbsctt.getGoodsInnb());
goodsVO.setSopmalCd(bbsctt.getSopmalCd()); goodsVO.setSopmalCd(bbsctt.getSopmalCd());
if ("sopmal".equals(bbsctt.getServerDv())) { if ("sopmal".equals(bbsctt.getServerDv())) {
if ("rvw".equals(bbsctt.getRvwBbscttDv())) { if ("rvw".equals(bbsctt.getRvwBbscttDv())) {

View File

@@ -1,8 +1,10 @@
package com.wb.domainserver.domain.gcone.bbs.gnrlbbsctt.vo; package com.wb.domainserver.domain.gcone.bbs.gnrlbbsctt.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO; import com.wb.domainserver.domain.comm.vo.AbstractVO;
import jakarta.validation.constraints.NotBlank;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import java.math.BigInteger; import java.math.BigInteger;
import java.util.Date; import java.util.Date;
@@ -48,9 +50,14 @@ public class BOGnrlbbscttVO extends AbstractVO {
/*관리자 명*/ /*관리자 명*/
private String mngrNm; private String mngrNm;
/** 비밀번호 */ /** 비밀번호 */
@Length(min = 0, max = 20, message = "비밀번호")
private String password; private String password;
/** 제목 */ /** 제목 */
@NotBlank(message = "제목")
@Length(min = 0, max = 100, message = "제목")
private String sj; private String sj;
@NotBlank(message = "내용")
@Length(max = 16777215, message = "내용")
/** 내용 */ /** 내용 */
private String cn; private String cn;
/** 조회건수 */ /** 조회건수 */
@@ -65,6 +72,8 @@ public class BOGnrlbbscttVO extends AbstractVO {
private Integer nonrecomendCnt; private Integer nonrecomendCnt;
/** 정렬순서 */ /** 정렬순서 */
private Integer sortOrdr; private Integer sortOrdr;
/** 정렬순서여부 */
private String sortOrdrAt;
/*대표이미지 원본파일명*/ /*대표이미지 원본파일명*/
private String reprsntImgOrginlFilNm; private String reprsntImgOrginlFilNm;
/*대표이미지 시스템파일명*/ /*대표이미지 시스템파일명*/
@@ -190,6 +199,8 @@ public class BOGnrlbbscttVO extends AbstractVO {
private String[] itmInnbArr; private String[] itmInnbArr;
/** 답변내용(배열) */ /** 답변내용(배열) */
private String[] answCnArr; private String[] answCnArr;
/** 답변 여부(배열) */
private String[] qesitmAtArr;
/** /**
* 첨부파일 정보 * 첨부파일 정보
*/ */
@@ -219,6 +230,16 @@ public class BOGnrlbbscttVO extends AbstractVO {
private String represntFilAt; private String represntFilAt;
/*파일 수정여부*/ /*파일 수정여부*/
private String filChangeAt; private String filChangeAt;
/*파일 수정여부*/
private String represntFilChangeAt;
/*파일 설정 여부*/
private String filAtch;
/*파일 확장자*/
private String AcceptFileExtensions;
/*파일 첨부 허용 확장자*/
private String filPermFilExtsn;
/*드롭존 존재 여부*/
private String dropzoneAt;
/*기존 파일 변화 여부*/ /*기존 파일 변화 여부*/
private String extFilChangeAt; private String extFilChangeAt;
/*파일 구분*/ /*파일 구분*/
@@ -273,6 +294,8 @@ public class BOGnrlbbscttVO extends AbstractVO {
private List<String> ordrGoodsOptnInnbArr; private List<String> ordrGoodsOptnInnbArr;
/*추천상품고유번호*/ /*추천상품고유번호*/
private Integer recomendGoodsInnb; private Integer recomendGoodsInnb;
/** 상세조회와 페이지 구분처리 */
private String dtlPop;
/*재구매여부*/ /*재구매여부*/
private List<String> reOrderAtArr; private List<String> reOrderAtArr;
/* /*

View File

@@ -4,6 +4,7 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import com.wb.domainserver.domain.comm.vo.AbstractVO; import com.wb.domainserver.domain.comm.vo.AbstractVO;
import jakarta.validation.constraints.NotBlank;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@@ -19,6 +20,7 @@ public class BOBannerVO extends AbstractVO {
/** 쇼핑몰 코드 */ /** 쇼핑몰 코드 */
private String sopmalCd; private String sopmalCd;
/** 배너 명 */ /** 배너 명 */
@NotBlank(message = "배너명")
private String bannerNm; private String bannerNm;
/** 노출위치구분 */ /** 노출위치구분 */
private String expsrlcDv; private String expsrlcDv;

View File

@@ -115,7 +115,7 @@ public class BOGoodsService {
//선택한 카테고리 상품의 순서 수정 //선택한 카테고리 상품의 순서 수정
int goodsOrdr = 1; int goodsOrdr = 1;
for(String goodsInnb :vo.getGoodsOrdrList()){ for(String goodsInnb :vo.getGoodsOrdrList()){
vo.setGoodsInnb(Long.parseLong(goodsInnb)); vo.setGoodsInnb(goodsInnb);
vo.setGoodsOrdr(goodsOrdr); vo.setGoodsOrdr(goodsOrdr);
mapper.updateBOCtgryGoodsList(vo); mapper.updateBOCtgryGoodsList(vo);
goodsOrdr ++; goodsOrdr ++;
@@ -142,8 +142,8 @@ public class BOGoodsService {
mapper.insertBOGoods(vo); mapper.insertBOGoods(vo);
// 방금 등록한 상품 번호 조회 // 방금 등록한 상품 번호 조회
long goodsInnb = mapper.selectBOGoodsInnb(vo); long lGoodsInnb = mapper.selectBOGoodsInnb(vo);
String goodsInnb = String.valueOf(lGoodsInnb);
// 상품 추가 정보 // 상품 추가 정보
if(!CollectionUtils.isEmpty(vo.getGoodsAdditionVOList())){ if(!CollectionUtils.isEmpty(vo.getGoodsAdditionVOList())){
@@ -373,7 +373,7 @@ public class BOGoodsService {
if(!beforeCtgryList.isEmpty()){ if(!beforeCtgryList.isEmpty()){
// 상품 전체 카테고리 delete // 상품 전체 카테고리 delete
BOCategoryLinkVO boCtgryLinkVO = new BOCategoryLinkVO(); BOCategoryLinkVO boCtgryLinkVO = new BOCategoryLinkVO();
boCtgryLinkVO.setGoodsInnb(Long.valueOf(vo.getGoodsInnb())); boCtgryLinkVO.setGoodsInnb(vo.getGoodsInnb());
boCtgryLinkVO.setSopmalCd(vo.getSopmalCd()); boCtgryLinkVO.setSopmalCd(vo.getSopmalCd());
mapper.deleteBOGoodsCategoryLink(boCtgryLinkVO); mapper.deleteBOGoodsCategoryLink(boCtgryLinkVO);
@@ -383,7 +383,7 @@ public class BOGoodsService {
// 상품 카테고리 insert // 상품 카테고리 insert
for(BOCategoryLinkVO tempVO : vo.getGoodsCategoryLinkVOList()) { for(BOCategoryLinkVO tempVO : vo.getGoodsCategoryLinkVOList()) {
tempVO.setGoodsInnb(Long.valueOf(vo.getGoodsInnb())); tempVO.setGoodsInnb(vo.getGoodsInnb());
tempVO.setSopmalCd(vo.getSopmalCd()); tempVO.setSopmalCd(vo.getSopmalCd());
tempVO.setRegusr(vo.getRegusr()); tempVO.setRegusr(vo.getRegusr());
@@ -632,7 +632,7 @@ public class BOGoodsService {
//등급별 구매대상자 제한 정보 삭제 //등급별 구매대상자 제한 정보 삭제
if(!CollectionUtils.isEmpty(gradList)){ if(!CollectionUtils.isEmpty(gradList)){
mapper.deleteBOGoodsTrgterLmtt(vo.getGoodsInnb(),vo.getSopmalCd(), gradList); mapper.deleteBOGoodsTrgterLmtt(Long.valueOf(vo.getGoodsInnb()),vo.getSopmalCd(), gradList);
} }
} }
@@ -653,7 +653,7 @@ public class BOGoodsService {
//모든등급 구매대상자 제한 정보 삭제 //모든등급 구매대상자 제한 정보 삭제
if(!CollectionUtils.isEmpty(allList)){ if(!CollectionUtils.isEmpty(allList)){
mapper.deleteBOGoodsTrgterLmtt(vo.getGoodsInnb(),vo.getSopmalCd(), allList); mapper.deleteBOGoodsTrgterLmtt(Long.valueOf(vo.getGoodsInnb()),vo.getSopmalCd(), allList);
} }
} }
} }
@@ -886,7 +886,7 @@ public class BOGoodsService {
for (DataMap dataMap : regImgList) { for (DataMap dataMap : regImgList) {
BOGoodsVO tmpVO = new BOGoodsVO(); BOGoodsVO tmpVO = new BOGoodsVO();
tmpVO.setGoodsInnb(Integer.parseInt(dataMap.get("goodsInnb").toString())); tmpVO.setGoodsInnb(dataMap.get("goodsInnb").toString());
tmpVO.setSopmalCd(dataMap.get("sopmalCd").toString()); tmpVO.setSopmalCd(dataMap.get("sopmalCd").toString());
tmpVO.setImgKnd(dataMap.get("imgKnd").toString()); tmpVO.setImgKnd(dataMap.get("imgKnd").toString());
tmpVO.setCutNb(String.valueOf(cutNb)); tmpVO.setCutNb(String.valueOf(cutNb));
@@ -1077,7 +1077,7 @@ public class BOGoodsService {
//공용정보 변경여부 //공용정보 변경여부
insertBOGoodslog(vo,"08",logVO); insertBOGoodslog(vo,"08",logVO);
}else if(dlvyGroupInnb.longValue() != vo.getDlvyGroupInnb() }else if(dlvyGroupInnb.longValue() != Long.valueOf(vo.getDlvyGroupInnb())
|| !StringUtil.nullConvert(goodsDtl.get("dlvyGuidanceWordsCn")).equals(vo.getDlvyGuidanceWordsCn())){ || !StringUtil.nullConvert(goodsDtl.get("dlvyGuidanceWordsCn")).equals(vo.getDlvyGuidanceWordsCn())){
// 배송그룹 변경여부 // 배송그룹 변경여부
insertBOGoodslog(vo,"09",logVO); insertBOGoodslog(vo,"09",logVO);
@@ -1317,8 +1317,8 @@ public class BOGoodsService {
DataMap resultList = new DataMap(); DataMap resultList = new DataMap();
//상품번호가 no로 들어올 경우 goodsInnb에 넣기 //상품번호가 no로 들어올 경우 goodsInnb에 넣기
if(vo.getNo() > 0 && vo.getGoodsInnb() == 0){ if(vo.getNo() > 0 && (vo.getGoodsInnb() == null || "0".equals(vo.getGoodsInnb()))){
vo.setGoodsInnb(vo.getNo()); vo.setGoodsInnb(String.valueOf(vo.getNo()));
} }
resultList = mapper.selectBOGoodsDtlInfo(vo); resultList = mapper.selectBOGoodsDtlInfo(vo);
@@ -1386,7 +1386,7 @@ public class BOGoodsService {
List<BOGoodsVO> infoVoList = new ArrayList<>(); List<BOGoodsVO> infoVoList = new ArrayList<>();
for(DataMap temp : relateGoodsInnbList){ for(DataMap temp : relateGoodsInnbList){
BOGoodsVO tmpvo = new BOGoodsVO(); BOGoodsVO tmpvo = new BOGoodsVO();
tmpvo.setGoodsInnb(Integer.parseInt(temp.get("goodsInnb").toString())); tmpvo.setGoodsInnb(temp.get("goodsInnb").toString());
tmpvo.setSopmalCd(relateGoodsInnbList.get(0).get("sopmalCd").toString()); tmpvo.setSopmalCd(relateGoodsInnbList.get(0).get("sopmalCd").toString());
tmpvo.setImgKnd("02"); // 상품 이미지 구분 리스트 tmpvo.setImgKnd("02"); // 상품 이미지 구분 리스트
infoVoList.add(tmpvo); infoVoList.add(tmpvo);
@@ -1561,7 +1561,7 @@ public class BOGoodsService {
//추가정보 삭제 //추가정보 삭제
for(String goodsInnb :vo.getGoodsInnbs()){ for(String goodsInnb :vo.getGoodsInnbs()){
tempVO.setGoodsInnb(Long.parseLong(goodsInnb)); tempVO.setGoodsInnb(goodsInnb);
mapper.deleteBOGoodsAddition(tempVO); mapper.deleteBOGoodsAddition(tempVO);
} }
@@ -1572,7 +1572,7 @@ public class BOGoodsService {
additionVO.setRegusr(vo.getRegusr()); additionVO.setRegusr(vo.getRegusr());
additionVO.setUpdusr(vo.getUpdusr()); additionVO.setUpdusr(vo.getUpdusr());
additionVO.setSopmalCd(vo.getSopmalCd()); additionVO.setSopmalCd(vo.getSopmalCd());
additionVO.setGoodsInnb(Long.parseLong(goodsInnb.get("goodsInnb").toString())); additionVO.setGoodsInnb(goodsInnb.get("goodsInnb").toString());
mapper.insertBOGoodsAddition(additionVO); mapper.insertBOGoodsAddition(additionVO);
} }
} }
@@ -1713,7 +1713,7 @@ public class BOGoodsService {
for (Object item : vo.getDelInnbArr()) { for (Object item : vo.getDelInnbArr()) {
Map<String, Object> values = (Map<String, Object>) item; Map<String, Object> values = (Map<String, Object>) item;
int goodsInnb = Integer.parseInt(String.valueOf(values.get("goodsInnb"))); String goodsInnb = String.valueOf(values.get("goodsInnb"));
String sopmalCd = (String) values.get("sopmalCd"); String sopmalCd = (String) values.get("sopmalCd");
vo.setGoodsInnb(goodsInnb); vo.setGoodsInnb(goodsInnb);
@@ -1822,7 +1822,7 @@ public class BOGoodsService {
for(DataMap tmp : list){ for(DataMap tmp : list){
BOGoodsVO vo = new BOGoodsVO(); BOGoodsVO vo = new BOGoodsVO();
vo.setGoodsInnb(Integer.parseInt(tmp.get("goodsInnb").toString())); vo.setGoodsInnb(tmp.get("goodsInnb").toString());
vo.setSopmalCd(tmp.get("sopmalCd").toString()); vo.setSopmalCd(tmp.get("sopmalCd").toString());
rvwEvlInfoList.add(mapper.selectBOGoodsRvwEvlInfo(vo)); rvwEvlInfoList.add(mapper.selectBOGoodsRvwEvlInfo(vo));
} }
@@ -1970,7 +1970,7 @@ public class BOGoodsService {
//상품 상태 수정 //상품 상태 수정
for(DataMap tmp : ordrList){ for(DataMap tmp : ordrList){
boGoodsOptionVO.setGoodsInnb(Long.parseLong(tmp.get("goodsInnb").toString())); boGoodsOptionVO.setGoodsInnb(tmp.get("goodsInnb").toString());
mapper.updateInvntryPolicyGoodsSttusChng(boGoodsOptionVO); mapper.updateInvntryPolicyGoodsSttusChng(boGoodsOptionVO);
} }
@@ -1995,7 +1995,7 @@ public class BOGoodsService {
//상품 상태 수정 //상품 상태 수정
for(DataMap tmp : refundList){ for(DataMap tmp : refundList){
boGoodsOptionVO.setGoodsInnb(Long.parseLong(tmp.get("goodsInnb").toString())); boGoodsOptionVO.setGoodsInnb(tmp.get("goodsInnb").toString());
mapper.updateInvntryPolicyGoodsSttusChng(boGoodsOptionVO); mapper.updateInvntryPolicyGoodsSttusChng(boGoodsOptionVO);
} }
@@ -2028,7 +2028,7 @@ public class BOGoodsService {
//상품 상태 수정 //상품 상태 수정
for(DataMap tmp : refundList){ for(DataMap tmp : refundList){
boGoodsOptionVO.setGoodsInnb(Long.parseLong(tmp.get("goodsInnb").toString())); boGoodsOptionVO.setGoodsInnb(tmp.get("goodsInnb").toString());
mapper.updateInvntryPolicyGoodsSttusChng(boGoodsOptionVO); mapper.updateInvntryPolicyGoodsSttusChng(boGoodsOptionVO);
} }

View File

@@ -11,7 +11,7 @@ public class BOCategoryLinkVO extends AbstractVO {
/** 카테고리연결상품고유번호 */ /** 카테고리연결상품고유번호 */
private long ctgryGoodsEsntlNb; private long ctgryGoodsEsntlNb;
/** 상품고유번호 */ /** 상품고유번호 */
private long goodsInnb; private String goodsInnb;
/** 쇼핑몰코드 */ /** 쇼핑몰코드 */
private String sopmalCd; private String sopmalCd;
/** 카테고리ID */ /** 카테고리ID */

View File

@@ -13,7 +13,7 @@ public class BOGoodsAdditionVO extends AbstractVO {
/** 상품추가정보 고유번호 */ /** 상품추가정보 고유번호 */
private long goodsAditInfoInnb; private long goodsAditInfoInnb;
/** 상품고유번호 */ /** 상품고유번호 */
private long goodsInnb; private String goodsInnb;
/** 쇼핑몰코드 */ /** 쇼핑몰코드 */
private String sopmalCd; private String sopmalCd;
/** 추가정보제목 */ /** 추가정보제목 */

View File

@@ -18,7 +18,7 @@ public class BOGoodsOptionVO extends AbstractVO {
/** 쇼핑몰코드 */ /** 쇼핑몰코드 */
private String sopmalCd; private String sopmalCd;
/** 상품고유번호 */ /** 상품고유번호 */
private long goodsInnb; private String goodsInnb;
/** 상품옵션그룹번호 */ /** 상품옵션그룹번호 */
private Integer optnGroupNb; private Integer optnGroupNb;
/** 옵션명 1 */ /** 옵션명 1 */

View File

@@ -12,7 +12,7 @@ public class BOGoodsRelateVO extends AbstractVO {
/** 관련상품 고유번호 */ /** 관련상품 고유번호 */
private long relateGoodsInnb; private long relateGoodsInnb;
/** 상품 고유번호 */ /** 상품 고유번호 */
private long goodsInnb; private String goodsInnb;
/** 쇼핑몰코드 */ /** 쇼핑몰코드 */
private String sopmalCd; private String sopmalCd;
/** 관련 판매상품 고유번호 */ /** 관련 판매상품 고유번호 */

View File

@@ -12,7 +12,7 @@ public class BOGoodsTrgterLmttVO extends AbstractVO {
/** 구매대상자제한 고유번호 */ /** 구매대상자제한 고유번호 */
private long goodsTrgterLmttInnb; private long goodsTrgterLmttInnb;
/** 상품고유번호 */ /** 상품고유번호 */
private long goodsInnb; private String goodsInnb;
/** 쇼핑몰코드 */ /** 쇼핑몰코드 */
private String sopmalCd; private String sopmalCd;
/** 구매대상자제한 구분코드 */ /** 구매대상자제한 구분코드 */

View File

@@ -1,6 +1,7 @@
package com.wb.domainserver.domain.gcone.goods.goods.vo; package com.wb.domainserver.domain.gcone.goods.goods.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO; import com.wb.domainserver.domain.comm.vo.AbstractVO;
import jakarta.validation.constraints.NotBlank;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@@ -16,13 +17,13 @@ public class BOGoodsVO extends AbstractVO {
* 상품 GOODS START * 상품 GOODS START
* **********************************/ * **********************************/
/** 상품고유번호 */ /** 상품고유번호 */
private long goodsInnb; private String goodsInnb;
/** as-is 상품고유번호 */ /** as-is 상품고유번호 */
private long no; private long no;
/** 쇼핑몰코드 */ /** 쇼핑몰코드 */
private String sopmalCd; private String sopmalCd;
/** 배송그룹 고유번호 */ /** 배송그룹 고유번호 */
private long dlvyGroupInnb; private String dlvyGroupInnb;
/** 공용정보 고유번호 */ /** 공용정보 고유번호 */
private long cmnuseInfoInnb; private long cmnuseInfoInnb;
/** 버전번호 */ /** 버전번호 */
@@ -36,6 +37,7 @@ public class BOGoodsVO extends AbstractVO {
/** 대표상품코드 */ /** 대표상품코드 */
private String reprsntGoodsCd; private String reprsntGoodsCd;
/** 상품명 */ /** 상품명 */
@NotBlank(message = "상품명")
private String goodsNm; private String goodsNm;
/** ? */ /** ? */
private String textMarktGoodsNm; private String textMarktGoodsNm;

View File

@@ -2,6 +2,8 @@ package com.wb.domainserver.domain.gcone.goods.goodsinfo.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO; import com.wb.domainserver.domain.comm.vo.AbstractVO;
import jakarta.validation.constraints.NotBlank;
import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@@ -35,6 +37,7 @@ public class BOGoodsInfoVO extends AbstractVO {
/** 쇼핑몰코드 */ /** 쇼핑몰코드 */
private String sopmalCd; private String sopmalCd;
/** 상품정보설정 제목 */ /** 상품정보설정 제목 */
@NotBlank(message = "상품 정보명")
private String goodsInfoSetupSj; private String goodsInfoSetupSj;
/** 상품명노출여부 */ /** 상품명노출여부 */
private String goodsNmExpsrAt; private String goodsNmExpsrAt;

View File

@@ -219,6 +219,8 @@ public class LoginService {
//회원정보 조회 //회원정보 조회
LoginRequest req = new LoginRequest(); LoginRequest req = new LoginRequest();
req.setUserInnb(userInnb); req.setUserInnb(userInnb);
req.setAccessUrl(request.getParameter("accessUrl"));
req.setSopmalCd(request.getParameter("authSopmalCd"));
LoginUser loginUser = null; LoginUser loginUser = null;
if(realm.equals("sopmal")){ if(realm.equals("sopmal")){

View File

@@ -1949,7 +1949,7 @@ public class BOMbrController {
DataMap message = service.insertWslistGoods(wishVO); DataMap message = service.insertWslistGoods(wishVO);
BOGoodsVO boGoodsVO = new BOGoodsVO(); BOGoodsVO boGoodsVO = new BOGoodsVO();
boGoodsVO.setGoodsInnb(wishVO.getGoodsInnb()); boGoodsVO.setGoodsInnb(String.valueOf(wishVO.getGoodsInnb()));
boGoodsVO.setSopmalCd(wishVO.getSopmalCd()); boGoodsVO.setSopmalCd(wishVO.getSopmalCd());
boGoodsService.updateWslistCnt(boGoodsVO); boGoodsService.updateWslistCnt(boGoodsVO);

View File

@@ -204,7 +204,7 @@ public class BONpayController {
AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
BOGoodsVO vo = new BOGoodsVO(); BOGoodsVO vo = new BOGoodsVO();
vo.setGoodsInnb(Long.parseLong(goodsCd)); // request 변수 세팅해야함. vo.setGoodsInnb(goodsCd); // request 변수 세팅해야함.
vo.setSopmalCd(sopmalCd); // request 변수 세팅해야함. vo.setSopmalCd(sopmalCd); // request 변수 세팅해야함.
DataMap goodsInfo = goodsService.selectBOGoodsDtl(vo); DataMap goodsInfo = goodsService.selectBOGoodsDtl(vo);

View File

@@ -198,7 +198,7 @@ public class BoCommonXmlService {
log.debug("본상품 코드기준의 하위 옵션 상품 리스트 개수 " + optionProductlist.size()); log.debug("본상품 코드기준의 하위 옵션 상품 리스트 개수 " + optionProductlist.size());
BOGoodsVO vo = new BOGoodsVO(); BOGoodsVO vo = new BOGoodsVO();
vo.setGoodsInnb(Long.parseLong(productMap.get("goodsInnb").toString())); // 변수 세팅해야함. vo.setGoodsInnb(productMap.get("goodsInnb").toString()); // 변수 세팅해야함.
vo.setSopmalCd(sopmalCd); // Front에서 넘어온 sopmalCd로 세팅 vo.setSopmalCd(sopmalCd); // Front에서 넘어온 sopmalCd로 세팅
// main 상품 정보 // main 상품 정보
@@ -300,7 +300,7 @@ public class BoCommonXmlService {
public String createSupplement(DataMap mainProduct, Map<String, Object> goods, String sopmalCd) { public String createSupplement(DataMap mainProduct, Map<String, Object> goods, String sopmalCd) {
// 상품 상세 정보 getting // 상품 상세 정보 getting
BOGoodsVO vo = new BOGoodsVO(); BOGoodsVO vo = new BOGoodsVO();
vo.setGoodsInnb(Long.parseLong(mainProduct.get("goodsInnb").toString())); vo.setGoodsInnb(mainProduct.get("goodsInnb").toString());
vo.setSopmalCd(sopmalCd); vo.setSopmalCd(sopmalCd);
// 추가상품은 이것으로 처리 // 추가상품은 이것으로 처리
vo.setOptnTy("03"); vo.setOptnTy("03");

View File

@@ -152,7 +152,7 @@ public class BoOrderXmlService {
// 주문정보를 넘겨 받아야 함. // 주문정보를 넘겨 받아야 함.
// 상품 상세 정보 getting // 상품 상세 정보 getting
BOGoodsVO vo = new BOGoodsVO(); BOGoodsVO vo = new BOGoodsVO();
vo.setGoodsInnb(65); // 변수 세팅해야함. vo.setGoodsInnb("65"); // 변수 세팅해야함.
vo.setSopmalCd("AF"); // 변수 세팅해야함. vo.setSopmalCd("AF"); // 변수 세팅해야함.
DataMap goodsInfo = goodsService.selectBOGoodsDtl(vo); DataMap goodsInfo = goodsService.selectBOGoodsDtl(vo);

View File

@@ -116,7 +116,7 @@ public class BoProductXmlService {
StringBuffer productXml = new StringBuffer(); StringBuffer productXml = new StringBuffer();
BOGoodsVO vo = new BOGoodsVO(); BOGoodsVO vo = new BOGoodsVO();
vo.setGoodsInnb(Long.parseLong(goodsCd)); // request 변수 세팅해야함. vo.setGoodsInnb(goodsCd); // request 변수 세팅해야함.
vo.setSopmalCd(sopmalCd); // request 변수 세팅해야함. vo.setSopmalCd(sopmalCd); // request 변수 세팅해야함.
DataMap goodsInfo = goodsService.selectBOGoodsDtl(vo); DataMap goodsInfo = goodsService.selectBOGoodsDtl(vo);
@@ -563,7 +563,7 @@ public class BoProductXmlService {
// 상품 상세 정보 getting // 상품 상세 정보 getting
BOGoodsVO vo = new BOGoodsVO(); BOGoodsVO vo = new BOGoodsVO();
vo.setGoodsInnb(Long.parseLong(product.get("goodsCd").toString())); // request 변수 세팅해야함. vo.setGoodsInnb(product.get("goodsCd").toString()); // request 변수 세팅해야함.
vo.setSopmalCd(sopmalCd); // request 변수 세팅해야함. vo.setSopmalCd(sopmalCd); // request 변수 세팅해야함.
@@ -652,7 +652,7 @@ public class BoProductXmlService {
StringBuffer shippingPolicyXml = new StringBuffer(); StringBuffer shippingPolicyXml = new StringBuffer();
BOGoodsVO vo = new BOGoodsVO(); BOGoodsVO vo = new BOGoodsVO();
vo.setGoodsInnb(Long.parseLong(goodsCd)); // request 변수 세팅해야함. vo.setGoodsInnb(goodsCd); // request 변수 세팅해야함.
vo.setSopmalCd(sopmalCd); // request 변수 세팅해야함. vo.setSopmalCd(sopmalCd); // request 변수 세팅해야함.
DataMap goodsInfo = goodsService.selectBOGoodsDtl(vo); DataMap goodsInfo = goodsService.selectBOGoodsDtl(vo);

View File

@@ -3767,7 +3767,7 @@ public class BOOrdrController {
com.wb.domainserver.domain.gcone.goods.goods.vo.BOGoodsVO goodsVO = new com.wb.domainserver.domain.gcone.goods.goods.vo.BOGoodsVO(); com.wb.domainserver.domain.gcone.goods.goods.vo.BOGoodsVO goodsVO = new com.wb.domainserver.domain.gcone.goods.goods.vo.BOGoodsVO();
goodsVO.setGoodsInnb(Long.parseLong(tempVo.getGoodsInnb())); goodsVO.setGoodsInnb(tempVo.getGoodsInnb());
goodsVO.setCartCnt(tempVo.getQy()); goodsVO.setCartCnt(tempVo.getQy());
goodsVO.setSopmalCd(user.getSopmalCd()); goodsVO.setSopmalCd(user.getSopmalCd());
boGoodsService.updateCartCnt(goodsVO); boGoodsService.updateCartCnt(goodsVO);

View File

@@ -1,9 +1,12 @@
package com.wb.domainserver.domain.itrnt.mbr.controller; package com.wb.domainserver.domain.itrnt.mbr.controller;
import com.wb.domainserver.common.msg.GconeMessageSource; import com.wb.domainserver.common.msg.GconeMessageSource;
import com.wb.domainserver.domain.admin.store.sopmal.service.BOMaSopmalService;
import com.wb.domainserver.domain.admin.store.sopmal.vo.BOMaSopmalVO;
import com.wb.domainserver.domain.admin.store.sopmal.vo.MaSopmalVO; import com.wb.domainserver.domain.admin.store.sopmal.vo.MaSopmalVO;
import com.wb.domainserver.domain.itrnt.mbr.vo.ItrntSrchMbrVO; import com.wb.domainserver.domain.itrnt.mbr.vo.ItrntSrchMbrVO;
import com.wb.domainserver.response.WnbtResponse; import com.wb.domainserver.response.WnbtResponse;
import com.wb.domainserver.response.WnbtResponseBody;
import com.wb.domainserver.response.WnbtWebClientResponseHandler; import com.wb.domainserver.response.WnbtWebClientResponseHandler;
import com.wb.domainserver.security.authentication.AnonymousUser; import com.wb.domainserver.security.authentication.AnonymousUser;
import com.wb.domainserver.security.authentication.MemberJwtContextHolder; import com.wb.domainserver.security.authentication.MemberJwtContextHolder;
@@ -12,15 +15,20 @@ import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.communicate.RESRC; import com.wb.domainserver.util.communicate.RESRC;
import com.wb.domainserver.util.communicate.ReplyFromResrc; import com.wb.domainserver.util.communicate.ReplyFromResrc;
import com.wb.domainserver.util.communicate.SendToResrc; import com.wb.domainserver.util.communicate.SendToResrc;
import com.wb.domainserver.util.dataaccess.DataMap;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
@Controller @Controller
@@ -39,6 +47,9 @@ public class ItrntMbrController {
@Autowired @Autowired
private GconeMessageSource gconeMessageSource; private GconeMessageSource gconeMessageSource;
@Autowired
private BOMaSopmalService service;
/** /**
* 인트라넷 회원 목록 검색 화면 * 인트라넷 회원 목록 검색 화면
* *
@@ -129,15 +140,29 @@ public class ItrntMbrController {
* @return map * @return map
*/ */
@Policy(AuthPolicy.PUBLIC) @Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/getPcUrl") @RequestMapping(value = "/getPcUrl", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> getPcUrl(MaSopmalVO vo) { public ResponseEntity<WnbtResponse> getPcUrl(BOMaSopmalVO vo) {
// 사용자 정보 추출 및 적용 // 사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
vo.setSopmalCd(user.getReprsntBrand()); vo.setSopmalCd(user.getReprsntBrand());
return responseHandler.handleResponse( /*쇼핑몰 상세 조회*/
sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopmal/selectBOSopmalInfoDtl", vo), List<DataMap> sopmalInfoList = new ArrayList<>();
ReplyFromResrc::getReply sopmalInfoList = service.selectBOSopmalUpdtForm(vo);
DataMap sopmalInfo = new DataMap();
/*map형태로 추출*/
if(!CollectionUtils.isEmpty(sopmalInfoList)){
sopmalInfo = sopmalInfoList.get(0);
}
DataMap content = new DataMap();
content.put("sopmalInfo", sopmalInfo);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(content))
.build()
); );
} }

View File

@@ -1,20 +1,29 @@
package com.wb.domainserver.domain.mngr.alarm.controller; package com.wb.domainserver.domain.mngr.alarm.controller;
import com.wb.domainserver.domain.gcone.alarm.service.BOAlarmService;
import com.wb.domainserver.domain.gcone.alarm.vo.BOAlarmVO;
import com.wb.domainserver.domain.mngr.alarm.vo.AlarmSrchVo; import com.wb.domainserver.domain.mngr.alarm.vo.AlarmSrchVo;
import com.wb.domainserver.response.WnbtResponse; import com.wb.domainserver.response.WnbtResponse;
import com.wb.domainserver.response.WnbtResponseBody;
import com.wb.domainserver.response.WnbtWebClientResponseHandler; 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.AuthPolicy;
import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.communicate.RESRC; import com.wb.domainserver.util.communicate.RESRC;
import com.wb.domainserver.util.communicate.ReplyFromResrc; import com.wb.domainserver.util.communicate.ReplyFromResrc;
import com.wb.domainserver.util.communicate.SendToResrc; import com.wb.domainserver.util.communicate.SendToResrc;
import com.wb.domainserver.util.dataaccess.DataMap;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CookieValue; import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List;
@Controller @Controller
@RequestMapping(value = "/mngr/alarm") @RequestMapping(value = "/mngr/alarm")
@Slf4j @Slf4j
@@ -27,18 +36,36 @@ public class AlarmController {
@Autowired @Autowired
private SendToResrc sendToResrc; private SendToResrc sendToResrc;
@Autowired
private BOAlarmService service;
@Policy(AuthPolicy.PUBLIC) @Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/select/selectAlarmCount") @RequestMapping(value = "/select/selectAlarmCount", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> selectAlarmCount(@CookieValue(value = "authSopmalCd") String authSopmalCd, AlarmSrchVo vo) { public ResponseEntity<WnbtResponse> selectAlarmCount(@CookieValue(value = "authSopmalCd") String authSopmalCd, BOAlarmVO vo) {
log.debug("selectAlarmCount()"); log.debug("selectAlarmCount()");
vo.setSopmalCd(authSopmalCd); vo.setSopmalCd(authSopmalCd);
return responseHandler.handleResponse( AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
sendToResrc.ofPost(RESRC.GCONEBO,"/gcone/alarm/select/selectAlarmCount",vo), if("01".equals(user.getSysDvCd())){
ReplyFromResrc::getReply vo.setSopmalCd(user.getSopmalCd());
); }
DataMap content = new DataMap();
List<DataMap> answerList = service.selectAnswerCount(vo);
List<DataMap> refundList = service.selectRefundCount(vo);
content.put("refundList", refundList);
content.put("answerList", answerList);
content.put("status","success");
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(content))
.build()
);
} }
} }

View File

@@ -1,20 +1,33 @@
package com.wb.domainserver.domain.mngr.analytics.controller; package com.wb.domainserver.domain.mngr.analytics.controller;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.wb.domainserver.common.mvc.tags.ui.pagination.PaginationInfo;
import com.wb.domainserver.common.prop.PaginationProperties;
import com.wb.domainserver.domain.gcone.analytics.service.BOAnalyticsService;
import com.wb.domainserver.domain.gcone.analytics.vo.BOAnanlyticsErpGoodsSrchVO;
import com.wb.domainserver.domain.mngr.analytics.vo.AnalyticsErpGoodsSrchVO; import com.wb.domainserver.domain.mngr.analytics.vo.AnalyticsErpGoodsSrchVO;
import com.wb.domainserver.response.WnbtResponse; import com.wb.domainserver.response.WnbtResponse;
import com.wb.domainserver.response.WnbtResponseBody;
import com.wb.domainserver.response.WnbtWebClientResponseHandler; 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.AuthPolicy;
import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.communicate.RESRC; import com.wb.domainserver.util.communicate.RESRC;
import com.wb.domainserver.util.communicate.ReplyFromResrc; import com.wb.domainserver.util.communicate.ReplyFromResrc;
import com.wb.domainserver.util.communicate.SendToResrc; import com.wb.domainserver.util.communicate.SendToResrc;
import com.wb.domainserver.util.dataaccess.DataMap;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -30,6 +43,12 @@ public class AnalyticsController {
@Autowired @Autowired
private SendToResrc sendToResrc; private SendToResrc sendToResrc;
@Autowired
private BOAnalyticsService service;
@Autowired
private PaginationProperties paginationProperties;
/** /**
* 매출일지 리스트 * 매출일지 리스트
* @return String JSP 경로 * @return String JSP 경로
@@ -40,11 +59,6 @@ public class AnalyticsController {
public String selectSummaryList (AnalyticsErpGoodsSrchVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { public String selectSummaryList (AnalyticsErpGoodsSrchVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
log.debug("selectSummaryList()"); log.debug("selectSummaryList()");
vo.setSopmalCd(authSopmalCd); vo.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/analytics/select/sales-journal", ""),
model,
"resultMap"
);
return "mngr/analytics/SalesJournal"; return "mngr/analytics/SalesJournal";
} }
@@ -59,14 +73,21 @@ public class AnalyticsController {
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value ="/select/erp-goods") @RequestMapping(value ="/select/erp-goods")
public String selectErpGoodsList (AnalyticsErpGoodsSrchVO vo , ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { public String selectErpGoodsList (BOAnanlyticsErpGoodsSrchVO vo , ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
log.debug("selectErpGoodsList()"); log.debug("selectErpGoodsList()");
vo.setSopmalCd(authSopmalCd); vo.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/analytics/select/erp-goods", vo), // 작성자 정보 할당
model, AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
"resultMap" if("01".equals(user.getSysDvCd())){
); vo.setSopmalCd(user.getSopmalCd());
}
log.debug(" 검색 파라미터 확인 리스트 검색조건 : {}", vo);
DataMap content = new DataMap();
List<DataMap> sopmalList = service.selectSopmalCd();
content.put("sopmalList",sopmalList);
model.addAttribute("resultMap", content);
return "mngr/analytics/ErpGoods"; return "mngr/analytics/ErpGoods";
} }
@@ -78,14 +99,40 @@ public class AnalyticsController {
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value ="/select/erp-goodsR") @RequestMapping(value ="/select/erp-goodsR")
public String selectErpGoodsListR (AnalyticsErpGoodsSrchVO vo , ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { public String selectErpGoodsListR (BOAnanlyticsErpGoodsSrchVO vo , ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
log.debug("selectErpGoodsListR()"); log.debug("selectErpGoodsListR()");
vo.setSopmalCd(authSopmalCd); vo.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/analytics/select/erp-goodsR", vo), // 작성자 정보 할당
model, AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
"resultMap" if("01".equals(user.getSysDvCd())){
); vo.setSopmalCd(user.getSopmalCd());
}
log.debug(" 검색 파라미터 확인 리스트 검색조건 : {}", vo);
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> list = new ArrayList<>();
list = service.selectErpGoodsList(vo);
log.debug("asdsadasdsa" + vo.getPaginationInfo().getTotalRecordCount());
content.put("list", list);
content.put("BOAnanlyticsErpGoodsSrchVO", vo);
content.put("paginationInfo", vo.getPaginationInfo());
model.addAttribute("resultMap", content);
return "mngr/analytics/ErpGoodsR"; return "mngr/analytics/ErpGoodsR";
} }
@@ -97,14 +144,22 @@ public class AnalyticsController {
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value ="/select/erp-set-goods") @RequestMapping(value ="/select/erp-set-goods")
public String selectErpSetGoodsList (AnalyticsErpGoodsSrchVO vo , ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { public String selectErpSetGoodsList (BOAnanlyticsErpGoodsSrchVO vo , ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
log.debug("selectErpSetGoodsList()"); log.debug("selectErpSetGoodsList()");
vo.setSopmalCd(authSopmalCd); vo.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/analytics/select/erp-set-goods", vo), // 작성자 정보 할당
model, AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
"resultMap" if("01".equals(user.getSysDvCd())){
); vo.setSopmalCd(user.getSopmalCd());
}
log.debug(" 검색 파라미터 확인 리스트 검색조건 : {}", vo);
DataMap content = new DataMap();
List<DataMap> sopmalList = service.selectSopmalCd();
content.put("sopmalList",sopmalList);
model.addAttribute("resultMap", content);
return "mngr/analytics/ErpSetGoods"; return "mngr/analytics/ErpSetGoods";
} }
@@ -116,14 +171,40 @@ public class AnalyticsController {
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value ="/select/erp-set-goodsR") @RequestMapping(value ="/select/erp-set-goodsR")
public String selectErpSetGoodsListR (AnalyticsErpGoodsSrchVO vo , ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { public String selectErpSetGoodsListR (BOAnanlyticsErpGoodsSrchVO vo , ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
log.debug("selectErpSetGoodsListR()"); log.debug("selectErpSetGoodsListR()");
vo.setSopmalCd(authSopmalCd); vo.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/analytics/select/erp-set-goodsR", vo), // 작성자 정보 할당
model, AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
"resultMap" if("01".equals(user.getSysDvCd())){
); vo.setSopmalCd(user.getSopmalCd());
}
log.debug(" 검색 파라미터 확인 리스트 검색조건 : {}", vo);
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> list = new ArrayList<>();
list = service.selectErpSetGoodsList(vo);
log.debug("asdsadasdsa" + vo.getPaginationInfo().getTotalRecordCount());
content.put("list", list);
content.put("BOAnanlyticsErpGoodsSrchVO", vo);
content.put("paginationInfo", vo.getPaginationInfo());
model.addAttribute("resultMap", content);
return "mngr/analytics/ErpSetGoodsR"; return "mngr/analytics/ErpSetGoodsR";
} }
@@ -134,15 +215,23 @@ public class AnalyticsController {
* @param jsonData 게시판 등록 파라미터 jsonData * @param jsonData 게시판 등록 파라미터 jsonData
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/update/erp-goods" , method= RequestMethod.POST) @RequestMapping(value="/update/erp-goods" , method= RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody @ResponseBody
public ResponseEntity<WnbtResponse> updatePuriOrder(@RequestBody List<Map<String,Object>> jsonData){ public ResponseEntity<WnbtResponse> updatePuriOrder(@RequestBody List<Map<String,Object>> jsonData){
log.debug(" 검색 파라미터 확인 231: {}", jsonData); log.debug(" 검색 파라미터 확인 231: {}", jsonData);
return responseHandler.handleResponse( // 작성자 정보 할당
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/analytics/update/erp-goods", jsonData), AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
ReplyFromResrc::getReply DataMap content = new DataMap();
service.updateErpGoods(jsonData);
content.put("status", "success");
content.put("message", "제상품 정보가 성공적으로 업데이트 되었습니다.");
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(content))
.build()
); );
} }

View File

@@ -1,10 +1,17 @@
package com.wb.domainserver.domain.mngr.api.controller; package com.wb.domainserver.domain.mngr.api.controller;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.wb.domainserver.domain.gcone.api.service.BOApiService;
import com.wb.domainserver.domain.gcone.common.service.BOCommonService;
import com.wb.domainserver.domain.mngr.api.service.ApiService; import com.wb.domainserver.domain.mngr.api.service.ApiService;
import com.wb.domainserver.response.ApiResponse;
import com.wb.domainserver.response.WnbtResponse; import com.wb.domainserver.response.WnbtResponse;
import com.wb.domainserver.response.WnbtResponseBody;
import com.wb.domainserver.response.WnbtWebClientResponseHandler; 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.AuthPolicy;
import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.communicate.RESRC; import com.wb.domainserver.util.communicate.RESRC;
@@ -16,12 +23,18 @@ import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.server.ResponseStatusException;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
@Controller @Controller
@@ -39,6 +52,18 @@ public class ApiController {
@Autowired @Autowired
private ApiService service; private ApiService service;
@Autowired
private BOApiService boservice;
@Autowired
private BOCommonService commonService;
@Value("${api.AES_KEY}")
private String AES_KEY;
@Value("${api.DATA_ENCRYPT_AES_KEY}")
private String DATA_ENCRYPT_AES_KEY;
/** /**
* Order Api * Order Api
* 주문내역 api * 주문내역 api
@@ -70,13 +95,14 @@ public class ApiController {
requestBody.put("authSopmalCd", authSopmalCd); requestBody.put("authSopmalCd", authSopmalCd);
String listStr = ""; String listStr = "";
String clearDataStr = ""; String clearDataStr = "";
ResponseEntity<WnbtResponse> boResponse = responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/api/select/selectOrderList", requestBody),
ReplyFromResrc::getReply
);
// CSV 추출 // CSV 추출
Object resultObj = boResponse.getBody().getResBody().getResult(); Object resultObj = selectOrdrList(requestBody, response, request);
// ResponseEntity<WnbtResponse> boResponse = responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/api/select/selectOrderList", requestBody),
// ReplyFromResrc::getReply
// );
if (resultObj instanceof String) { if (resultObj instanceof String) {
ObjectMapper mapper = new ObjectMapper(); ObjectMapper mapper = new ObjectMapper();
JsonNode outerJson = mapper.readTree((String) resultObj); JsonNode outerJson = mapper.readTree((String) resultObj);
@@ -102,4 +128,134 @@ public class ApiController {
service.insertMngrApiAccessLog(request,response,"Y","",responseData); service.insertMngrApiAccessLog(request,response,"Y","",responseData);
return listStr; return listStr;
} }
private WnbtResponseBody selectOrdrList(Map<String, Object> requestBody, HttpServletResponse response, HttpServletRequest request){
// 1. 작성자 정보 할당
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if ("01".equals(user.getSysDvCd())) {
requestBody.put("sopmalCd", user.getSopmalCd());
}
String hashEqual = "";
String csvString = "";
String clearData = "";
DataMap paramMap = new DataMap();
paramMap.put("aesKey", AES_KEY);
paramMap.put("timeStamp", requestBody.get("timeStamp"));
paramMap.put("data", requestBody.get("data"));
paramMap.put("hashData", requestBody.get("hash"));
paramMap.put("dataAesKey", DATA_ENCRYPT_AES_KEY);
log.debug("파라미터 총 체크 : {}", paramMap);
DataMap content = new DataMap();
List<DataMap> list = new ArrayList<>();
// 2. 타임스탬프 검증
try {
boservice.isValidTimestamp((String) requestBody.get("timeStamp"));
} catch (RuntimeException e) {
log.warn("⛔ 타임스탬프 검증 실패: {}", e.getMessage(), e);
boservice.insertMngrApiAccessLog(request,response,"N",e.getMessage());
throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "요청 시간이 유효하지 않습니다.", e);
}
// 3. 파라미터 복호화
String param = boservice.aesParamDecrypt(paramMap);
log.debug("📦 디코딩된 API 파라미터: {}", param);
// 4. 해시값 검증
try {
hashEqual = boservice.isValidHash(paramMap);
log.debug("✅ 해쉬코드 검증 완료: {}", hashEqual);
} catch (RuntimeException e) {
log.debug("client hash: {}", paramMap.get("hashData"));
log.debug("server hash: {}", e.getMessage());
log.warn("⛔ 해쉬 코드 검증 실패: {}", e.getMessage(), e);
boservice.insertMngrApiAccessLog(request,response,"N",e.getMessage());
content.put("result", "FAIL");
content.put("message", "해쉬값 불일치");
throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "해쉬값 불일치", e);
}
// 5. 복호화된 파라미터 파싱 및 리스트 조회
int totalSize = 0;
Map<String, Object> map = new HashMap<>();
try {
ObjectMapper objectMapper = new ObjectMapper();
map = objectMapper.readValue(param, new TypeReference<Map<String, Object>>() {});
} catch (Exception e) {
boservice.insertMngrApiAccessLog(request,response,"N",e.getMessage());
log.warn("⛔ 파라미터 파싱 또는 리스트 조회 중 오류 발생", e);
map = new HashMap<>();
}
log.debug("복호화 파라미터 : " + map);
map.put("secretkey",commonService.selectSecretkey());
// total 사이즈
totalSize = boservice.selectTableTotalSize(map);
int pageSize = 10000;
int pageIndex = 1;
try {
pageIndex = Integer.parseInt((String) map.get("pageIndex"));
} catch (NumberFormatException e) {
log.warn("pageIndex 파싱 실패, 기본값 사용: {}", pageIndex);
pageIndex = 1;
}
int offset = (pageIndex - 1) * pageSize;
int lastPageIndex = (int) Math.ceil((double) totalSize / pageSize);
lastPageIndex = Math.max(1, lastPageIndex);
if (offset >= totalSize) {
pageIndex = lastPageIndex;
offset = (pageIndex - 1) * pageSize;
}
if (totalSize <= pageSize) {
offset = 0;
map.put("limit", pageSize);
}
map.put("limit", pageSize);
map.put("offset", offset);
map.put("totalSize", totalSize);
long queryStart = System.currentTimeMillis();
list = boservice.selectTableList(map);
long queryEnd = System.currentTimeMillis();
System.out.println("쿼리 실행 시간(ms): " + (queryEnd - queryStart)/ 1000.0 + "초");
if (list == null) {
list = new ArrayList<>();
}
Map<String, Object> result = new HashMap<>();
result.put("list", list);
result.put("pageIndex", pageIndex);
result.put("lastPageIndex", lastPageIndex);
result.put("totalSize", totalSize);
long start = System.currentTimeMillis();
clearData = list.toString();
// 6. 응답 구성
csvString = boservice.convertCsv(result);
long afterConvert = System.currentTimeMillis();
log.debug("CSV 변환 시간: " + (afterConvert - start)/ 1000.0 + "초");
paramMap.put("csvString", csvString);
// csv text -> AES 암호화 전송
csvString = boservice.encryptCsv(paramMap);
long afterEncrypt = System.currentTimeMillis();
log.debug("CSV 암호화 시간: " + (afterEncrypt - afterConvert)/ 1000.0 + "초");
/*content.put("totalSize", totalSize);
content.put("pageIndex", pageIndex);
content.put("lastPageIndex", lastPageIndex);*/
log.debug("총 후처리 시간: " + (afterEncrypt - start)/ 1000.0 + "초");
content.put("list", csvString);
content.put("clearData", clearData);
return new WnbtResponseBody(content);
}
} }

View File

@@ -2,23 +2,35 @@ package com.wb.domainserver.domain.mngr.bbs.bbsmngr.controller;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.wb.domainserver.common.msg.GconeMessageSource; 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.bbs.bbs.service.BOBbsService;
import com.wb.domainserver.domain.gcone.bbs.bbs.vo.BOBbsSetupVO;
import com.wb.domainserver.domain.gcone.bbs.bbs.vo.BOBbsVO;
import com.wb.domainserver.domain.mngr.bbs.bbsmngr.vo.BbsmngrVO; import com.wb.domainserver.domain.mngr.bbs.bbsmngr.vo.BbsmngrVO;
import com.wb.domainserver.exception.WnbtRestException; import com.wb.domainserver.exception.WnbtRestException;
import com.wb.domainserver.exception.code.ErrorCode;
import com.wb.domainserver.response.WnbtResponse; import com.wb.domainserver.response.WnbtResponse;
import com.wb.domainserver.response.WnbtResponseBody;
import com.wb.domainserver.response.WnbtWebClientResponseHandler; 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.AuthPolicy;
import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.communicate.RESRC; import com.wb.domainserver.util.communicate.RESRC;
import com.wb.domainserver.util.communicate.ReplyFromResrc; import com.wb.domainserver.util.communicate.ReplyFromResrc;
import com.wb.domainserver.util.communicate.SendToResrc; import com.wb.domainserver.util.communicate.SendToResrc;
import com.wb.domainserver.util.communicate.ValidateResultConverter; import com.wb.domainserver.util.communicate.ValidateResultConverter;
import com.wb.domainserver.util.dataaccess.DataMap;
import com.wb.domainserver.util.string.StringUtil; import com.wb.domainserver.util.string.StringUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
import org.springframework.util.ObjectUtils;
import org.springframework.validation.BindingResult; import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.CookieValue; import org.springframework.web.bind.annotation.CookieValue;
@@ -71,143 +83,344 @@ public class BbsmngrController {
@Value("${mngrfo.common.board.nc.ntcntalkSndngFormInnb02}") @Value("${mngrfo.common.board.nc.ntcntalkSndngFormInnb02}")
private String ntcntalkSndngFormInnb2; private String ntcntalkSndngFormInnb2;
@Autowired
private BOBbsService service;
@Autowired
private PaginationProperties paginationProperties;
/** /**
* 게시판 화면 * 게시판 화면
* @param BbsmngrVO 게시판 등록 파라미터 VO * @param vo 게시판 등록 파라미터 VO
* @return String JSP 경로 * @return String JSP 경로
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectBbsListInqireForm") @RequestMapping(value="/selectBbsListInqireForm")
public String selectBbsListInqireForm(BbsmngrVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ public String selectBbsListInqireForm(BOBbsVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd); vo.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOBbsListInqireFrom", vo), // 작성자 정보 할당
model, AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
"resultMap" if("01".equals(user.getSysDvCd())){
); vo.setSopmalCd(user.getSopmalCd());
}
log.debug(" 검색 파라미터 확인 : {}", vo);
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> formList = new ArrayList<>();
DataMap fromMap = new DataMap();
fromMap = service.selectBOBbsListInqireFrom(vo);
formList.add(fromMap);
List<DataMap> srchList = new ArrayList<>();
DataMap srchData = new DataMap();
srchData.put("srchWord", vo.getSrchWord());
srchData.put("srchBbsTyCd", vo.getSrchBbsTyCd());
srchData.put("srchSknTyCd", vo.getSrchSknTyCd());
srchData.put("pageUnit", vo.getPageUnit());
srchData.put("pageIndex", vo.getPageIndex());
srchData.put("pageDv", vo.getPageDv());
srchList.add(srchData);
content.put("srchList", srchList);
content.put("formList", formList);
content.put("boBbsVo", vo);
model.addAttribute("resultMap", content);
return "mngr/bbs/bbsmngr/BbsListRForm"; return "mngr/bbs/bbsmngr/BbsListRForm";
} }
/** /**
* 게시판 목록 조회 * 게시판 목록 조회
* @param BbsmngrVO 게시판 등록 파라미터 VO * @param vo 게시판 등록 파라미터 VO
* @return String JSP 경로 * @return String JSP 경로
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectBbsListInqire") @RequestMapping(value="/selectBbsListInqire")
public String selectBbsListInqire(BbsmngrVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ public String selectBbsListInqire(BOBbsVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd); vo.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOBbsListInqire", vo), // 작성자 정보 할당
model, AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
"resultMap" 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());
DataMap srchMap = new DataMap();
if (!ObjectUtils.isEmpty(vo.getSrchSknTyCdArr())) {
srchMap.put("srchSknTyCd", String.join(",", vo.getSrchSknTyCdArr()));
} else {
srchMap.put("srchSknTyCd", "");
}
if (!ObjectUtils.isEmpty(vo.getSrchBbsTyCdArr())) {
srchMap.put("srchBbsTyCd", String.join(",", vo.getSrchBbsTyCdArr()));
} else {
srchMap.put("srchBbsTyCd", "");
}
if (!StringUtil.isEmpty(vo.getSrchWord())) {
srchMap.put("srchWord", vo.getSrchWord());
} else {
srchMap.put("srchWord", "");
}
List<DataMap> srchList = new ArrayList<>();
srchList.add(srchMap);
content.put("srchList", srchList);
List<DataMap> bbsList = new ArrayList<>();
bbsList = service.selectBOBbsListInqire(vo);
content.put("bbsList", bbsList);
content.put("boBbsVo", vo);
content.put("paginationInfo", vo.getPaginationInfo());
model.addAttribute("resultMap",content);
return "mngr/bbs/bbsmngr/BbsListR"; return "mngr/bbs/bbsmngr/BbsListR";
} }
/** /**
* 안내 허용 도메인 파일 팝업 * 안내 허용 도메인 파일 팝업
* @param BbsmngrVO 게시판 등록 파라미터 VO * @param vo 게시판 등록 파라미터 VO
* @param model 모델객체
* @return String JSP 경로 * @return String JSP 경로
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectGuidancePermDomnFilPopup", method = RequestMethod.GET) @RequestMapping(value="/selectGuidancePermDomnFilPopup", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> selectGuidancePermDomnFilPopup(BbsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){ public ResponseEntity<WnbtResponse> selectGuidancePermDomnFilPopup(BOBbsVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd); vo.setSopmalCd(authSopmalCd);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOSlangDftSetupPopupForm", vo), // 작성자 정보 할당
ReplyFromResrc::getReply AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
} // 쇼핑몰코드
DataMap content = new DataMap();
BOBbsSetupVO stVo = new BOBbsSetupVO();
stVo = service.selectBOSlangDftSetupPopupForm(vo);
content.put("boBbsSetupVo", stVo);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(content))
.build()
); );
} }
/** /**
* 안내 허용 도메인 파일 수정 * 안내 허용 도메인 파일 수정
* @param BbsmngrVO 게시판 등록 파라미터 VO * @param vo 게시판 등록 파라미터 VO
* @return * @return
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/updateGuidancePermDomnFil" , method = RequestMethod.POST) @RequestMapping(value="/updateGuidancePermDomnFil" , method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> updateGuidancePermDomnFil(BbsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){ public ResponseEntity<WnbtResponse> updateGuidancePermDomnFil(BOBbsVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd); vo.setSopmalCd(authSopmalCd);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/updateBOSlangSetupRegist", vo), // 작성자 정보 할당
ReplyFromResrc::getReply AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
} // 쇼핑몰코드
vo.setRegusr(user.getUserInnb()); // 등록자
vo.setUpdusr(user.getUserInnb()); // 수정자
DataMap content = new DataMap();
String message = service.updateBOSlangSetupRegist(vo);
BOBbsSetupVO stVo = new BOBbsSetupVO();
stVo = service.selectBOSlangDftSetupPopupForm(vo);
content.put("boBbsSetupVo", stVo);
content.put("message", message);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(content))
.build()
); );
} }
/** /**
* 비속어 기본 설정 팝업 * 비속어 기본 설정 팝업
* @param BbsmngrVO 게시판 등록 파라미터 VO * @param vo 게시판 등록 파라미터 VO
* @return * @return
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectSlangDftSetupPopupForm", method = RequestMethod.GET) @RequestMapping(value="/selectSlangDftSetupPopupForm", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> selectSlangDftSetupPopupForm(BbsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){ public ResponseEntity<WnbtResponse> selectSlangDftSetupPopupForm(BOBbsVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd); vo.setSopmalCd(authSopmalCd);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOSlangDftSetupPopupForm", vo), // 작성자 정보 할당
ReplyFromResrc::getReply AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
} // 쇼핑몰코드
DataMap content = new DataMap();
BOBbsSetupVO stVo = new BOBbsSetupVO();
stVo = service.selectBOSlangDftSetupPopupForm(vo);
content.put("boBbsSetupVo", stVo);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(content))
.build()
); );
} }
/** /**
* 비속어 설정 저장 * 비속어 설정 저장
* @param BbsmngrVO 게시판 등록 파라미터 VO * @param vo 게시판 등록 파라미터 VO
* @return * @return
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/updateSlangSetupRegist" , method = RequestMethod.POST) @RequestMapping(value="/updateSlangSetupRegist" , method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> updateSlangSetupRegist(BbsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){ public ResponseEntity<WnbtResponse> updateSlangSetupRegist(BOBbsVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd); vo.setSopmalCd(authSopmalCd);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/updateBOSlangSetupRegist", vo), // 작성자 정보 할당
ReplyFromResrc::getReply AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
} // 쇼핑몰코드
vo.setRegusr(user.getUserInnb()); // 등록자
vo.setUpdusr(user.getUserInnb()); // 수정자
DataMap content = new DataMap();
String message = service.updateBOSlangSetupRegist(vo);
BOBbsSetupVO stVo = new BOBbsSetupVO();
stVo = service.selectBOSlangDftSetupPopupForm(vo);
content.put("boBbsSetupVo", stVo);
content.put("message", message);
content.put("boBbsSetupVo", stVo);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(content))
.build()
); );
} }
/** /**
* 게시판 등록화면 * 게시판 등록화면
* @param BbsmngrVO 게시판 등록 파라미터 VO * @param vo 게시판 등록 파라미터 VO
* @return String JSP 경로 * @return String JSP 경로
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectBbsRegistForm") @RequestMapping(value="/selectBbsRegistForm")
public String selectBbsRegistForm(BbsmngrVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ public String selectBbsRegistForm(BOBbsVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setNtcntalkSndngFormInnbArr(new String[] {ntcntalkSndngFormInnb1, ntcntalkSndngFormInnb2}); vo.setNtcntalkSndngFormInnbArr(new String[] {ntcntalkSndngFormInnb1, ntcntalkSndngFormInnb2});
vo.setSopmalCd(authSopmalCd); vo.setSopmalCd(authSopmalCd);
Map<String,Object> resultMap = responseHandler.handleResponseAsMap( // 작성자 정보 할당
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOBbsRegistForm",vo) AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
); if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}
// 쇼핑몰코드
vo.setRegusr(user.getUserInnb()); // 등록자
vo.setUpdusr(user.getUserInnb()); // 수정자
DataMap codeMap = new DataMap();
codeMap = service.selectCommonCode();
List<DataMap> codeList = new ArrayList<>();
codeList.add(codeMap);
List<DataMap> mbrGradList = new ArrayList<>();
vo.setMbrGradGroupInnb("1");
mbrGradList = service.selectBOBbsRegistForm(vo);
List<DataMap> updBbsList = new ArrayList<>();
updBbsList = service.selectUpdBbsList(vo);
List<DataMap> messageList = new ArrayList<>();
DataMap sms = new DataMap();
sms = service.selectBOBbsSmsFormList(vo);
DataMap kakao = new DataMap();
kakao = service.selectBOBbsKakaoFormList(vo);
List<DataMap> srchList = new ArrayList<>();
DataMap srchData = new DataMap();
srchData.put("pageIndex", vo.getPageIndex());
srchData.put("pageUnit", vo.getPageUnit());
srchData.put("srchWord", vo.getSrchWord());
srchData.put("srchSknTyCd", vo.getSrchSknTyCd());
srchData.put("srchBbsTyCd", vo.getSrchBbsTyCd());
srchList.add(srchData);
DataMap content = new DataMap();
content.put("mbrGradList", mbrGradList);
content.put("codeContent", codeList);
content.put("bOBbsVo", vo);
content.put("srchList", srchList);
content.put("updBbsList", updBbsList);
content.put("sms", sms);
content.put("kakao", kakao);
// Map<String,Object> resultMap = responseHandler.handleResponseAsMap(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOBbsRegistForm",vo)
// );
//
ObjectMapper objectMapper = new ObjectMapper(); ObjectMapper objectMapper = new ObjectMapper();
try { try {
resultMap.put("updBbsList", objectMapper.writeValueAsString(resultMap.get("updBbsList"))); content.put("updBbsList", objectMapper.writeValueAsString(content.get("updBbsList")));
} catch (WnbtRestException wre){ } catch (WnbtRestException wre){
throw new WnbtRestException(wre.getMessage()); log.error(wre.getMessage(), wre);
throw new WnbtRestException(ErrorCode.INTERNAL_SERVER_ERROR);
} catch(Exception e) { } catch(Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
throw new WnbtRestException(ErrorCode.INTERNAL_SERVER_ERROR);
} }
model.addAttribute("resultMap", resultMap);
model.addAttribute("resultMap", content);
return "mngr/bbs/bbsmngr/BbsRegistC"; return "mngr/bbs/bbsmngr/BbsRegistC";
} }
/** /**
* 게시판 등록 * 게시판 등록
* @param BbsmngrVO 게시판 등록 파라미터 VO * @param vo 게시판 등록 파라미터 VO
* @param bindingResult 바인딩 및 정합성 점검결과 객체 * @param bindingResult 바인딩 및 정합성 점검결과 객체
* @return * @return
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/insertBbsRegist", method = RequestMethod.POST) @RequestMapping(value="/insertBbsRegist", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> insertBbsRegist(@Validated BbsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd, BindingResult bindingResult){ public ResponseEntity<WnbtResponse> insertBbsRegist(@Validated BOBbsVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd, BindingResult bindingResult){
if(bindingResult.hasErrors()) { if(bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
} }
List<Map<String, String>> errorList = new ArrayList<>(); List<Map<String, String>> errorList = new ArrayList<>();
if (vo.getPgeVtcCnt() <= 0) { if (vo.getPgeVtcCnt() == null || Integer.parseInt(vo.getPgeVtcCnt() )<= 0) {
errorList.add(ValidateResultConverter.setErrorMap("pgeVtcCnt", gconeMessageSource.getMessage("errors.required", new Object[]{"페이지세로건수는 최소 1 입니다."}))); errorList.add(ValidateResultConverter.setErrorMap("pgeVtcCnt", gconeMessageSource.getMessage("errors.required", new Object[]{"페이지세로건수는 최소 1 입니다."})));
} }
//메시지 문자 내용 없을 시 //메시지 문자 내용 없을 시
@@ -238,20 +451,34 @@ public class BbsmngrController {
throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList)); throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList));
} }
vo.setSopmalCd(authSopmalCd); vo.setSopmalCd(authSopmalCd);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/insertBOBbsRegist", vo), // 작성자 정보 할당
ReplyFromResrc::getReply AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}// 쇼핑몰코드
vo.setRegusr(user.getUserInnb()); // 등록자
vo.setUpdusr(user.getUserInnb()); // 수정자
DataMap content = new DataMap();
content = service.insertBOBbsRegist(vo);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(content))
.build()
); );
} }
/** /**
* 게시판 아이디 중복확인 * 게시판 아이디 중복확인
* @param BbsmngrVO 게시판 등록 파라미터 VO * @param vo 게시판정보 VO
* @param bindingResult 바인딩 및 정합성 점검결과 객체 * @param authSopmalCd 몰코드
* @return * @return
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectBbsIdDplctCnfirm", method = RequestMethod.GET) @RequestMapping(value="/selectBbsIdDplctCnfirm", method = RequestMethod.GET)
public ResponseEntity<WnbtResponse> selectBbsIdDplctCnfirm(BbsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){ public ResponseEntity<WnbtResponse> selectBbsIdDplctCnfirm(BOBbsVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
List<Map<String, String>> errorList = new ArrayList<>(); List<Map<String, String>> errorList = new ArrayList<>();
final String REGEX_ID = "^[A-Za-z[0-9]-_$]{6,30}$"; final String REGEX_ID = "^[A-Za-z[0-9]-_$]{6,30}$";
@@ -263,14 +490,22 @@ public class BbsmngrController {
throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList)); throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList));
} }
vo.setSopmalCd(authSopmalCd); vo.setSopmalCd(authSopmalCd);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOBbsIdDplctCnfirm", vo), String result = service.selectBOBbsIdDplctCnfirm(vo);
ReplyFromResrc::getReply
DataMap content = new DataMap();
content.put("paramVO", vo);
content.put("message", result);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(content))
.build()
); );
} }
/** /**
* 게시판 수정 폼 * 게시판 수정 폼
* @param BbsmngrVO 게시판 등록 파라미터 VO * @param vo 게시판 등록 파라미터 VO
* @param model 모델객체 * @param model 모델객체
* @return String JSP 경로 * @return String JSP 경로
*/ */
@@ -285,6 +520,8 @@ public class BbsmngrController {
Map<String,Object> resultMap = responseHandler.handleResponseAsMap( Map<String,Object> resultMap = responseHandler.handleResponseAsMap(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOBbsDtlUpdtForm",vo) sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOBbsDtlUpdtForm",vo)
); );
ObjectMapper objectMapper = new ObjectMapper(); ObjectMapper objectMapper = new ObjectMapper();
try { try {
resultMap.put("updBbsList", objectMapper.writeValueAsString(resultMap.get("updBbsList"))); resultMap.put("updBbsList", objectMapper.writeValueAsString(resultMap.get("updBbsList")));
@@ -298,14 +535,15 @@ public class BbsmngrController {
return "mngr/bbs/bbsmngr/BbsDtlUpdtU"; return "mngr/bbs/bbsmngr/BbsDtlUpdtU";
} }
/** /**
* 게시판 수정 * 게시판 수정
* @param BbsmngrVO 게시판 등록 파라미터 VO * @param vo 게시판 등록 파라미터 VO
* @return * @return
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/updateBbsUpdt") @RequestMapping(value="/updateBbsUpdt", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> updateBbsUpdt(@Validated BbsmngrVO vo, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){ public ResponseEntity<WnbtResponse> updateBbsUpdt(@Validated BOBbsVO vo, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){
if(bindingResult.hasErrors()) { if(bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
} }
@@ -349,36 +587,107 @@ public class BbsmngrController {
} }
vo.setSopmalCd(authSopmalCd); vo.setSopmalCd(authSopmalCd);
return responseHandler.handleResponse( // 작성자 정보 할당
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/updateBOBbsUpdt", vo), AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
ReplyFromResrc::getReply if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}// 쇼핑몰코드
vo.setRegusr(user.getUserInnb()); // 등록자
vo.setUpdusr(user.getUserInnb()); // 수정자
log.debug(" 게시판 수정 파라미터 확인 : {}", vo);
DataMap content = new DataMap();
content = service.updateBOBbsUpdt(vo);
List<DataMap> srchList = new ArrayList<>();
DataMap srchData = new DataMap();
srchData.put("srchWord", vo.getSrchWord());
srchData.put("srchBbsTyCd", vo.getSrchBbsTyCd());
srchData.put("srchSknTyCd", vo.getSrchSknTyCd());
srchData.put("pageUnit", vo.getPageUnit());
srchData.put("pageIndex", vo.getPageIndex());
srchData.put("pageDv", vo.getPageDv());
srchList.add(srchData);
content.put("srchList", srchList);
content.put("vo", vo);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(content))
.build()
); );
} }
/** /**
* 게시판 복사 폼 * 게시판 복사 폼
* @param BbsmngrVO 게시판 등록 파라미터 VO * @param vo 게시판 등록 파라미터 VO
* @param model 모델객체 * @param model 모델객체
* @return String JSP 경로 * @return String JSP 경로
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectBbsCopyForm") @RequestMapping(value="/selectBbsCopyForm")
public String selectBbsCopyForm(BbsmngrVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ public String selectBbsCopyForm(BOBbsVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setNtcntalkSndngFormInnbArr(new String[] {ntcntalkSndngFormInnb1, ntcntalkSndngFormInnb2}); vo.setNtcntalkSndngFormInnbArr(new String[] {ntcntalkSndngFormInnb1, ntcntalkSndngFormInnb2});
vo.setSopmalCd(authSopmalCd); vo.setSopmalCd(authSopmalCd);
Map<String,Object> resultMap = responseHandler.handleResponseAsMap( // 작성자 정보 할당
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOBbsDtlUpdtForm",vo) AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
); if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
} // 쇼핑몰코드
vo.setRegusr(user.getUserInnb()); // 등록자
vo.setUpdusr(user.getUserInnb()); // 수정자
DataMap codeMap = new DataMap();
codeMap = service.selectCommonCode(); // 공통 코드
List<DataMap> codeList = new ArrayList<>();
codeList.add(codeMap);
List<DataMap> mbrGradList = new ArrayList<>();
mbrGradList = service.selectBOBbsRegistForm(vo); //해당 쇼핑몰 회원 등급 조회
List<DataMap> updBbsList = new ArrayList<>();
updBbsList = service.selectUpdBbsList(vo); // 해당 쇼핑몰 게시판 목록 조회
List<DataMap> messageList = new ArrayList<>();
DataMap sms = new DataMap();
sms = service.selectBOBbsSmsFormList(vo); // 메시지 폼
DataMap kakao = new DataMap();
kakao = service.selectBOBbsKakaoFormList(vo); // 카카오 폼
List<DataMap> srchList = new ArrayList<>();
DataMap srchData = new DataMap();
srchData.put("srchWord", vo.getSrchWord());
srchData.put("srchBbsTyCd", vo.getSrchBbsTyCd());
srchData.put("srchSknTyCd", vo.getSrchSknTyCd());
srchData.put("pageUnit", vo.getPageUnit());
srchData.put("pageIndex", vo.getPageIndex());
srchData.put("pageDv", vo.getPageDv());
srchList.add(srchData);
DataMap resultMap = new DataMap();
resultMap = service.selectBOBbsDtlUpdtInqire(vo); // 게시판 상세 조회
resultMap.put("mbrGradList", mbrGradList);
resultMap.put("codeContent", codeList);
resultMap.put("srchList", srchList);
resultMap.put("updBbsList", updBbsList);
resultMap.put("sms", sms);
resultMap.put("kakao", kakao);
ObjectMapper objectMapper = new ObjectMapper(); ObjectMapper objectMapper = new ObjectMapper();
try { try {
resultMap.put("updBbsList", objectMapper.writeValueAsString(resultMap.get("updBbsList"))); resultMap.put("updBbsList", objectMapper.writeValueAsString(resultMap.get("updBbsList")));
} catch (WnbtRestException wre){ } catch (WnbtRestException wre){
log.error(wre.getMessage(), wre);
throw new WnbtRestException(wre.getMessage()); throw new WnbtRestException(wre.getMessage());
} catch(Exception e) { } catch(Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
throw new WnbtRestException(ErrorCode.INTERNAL_SERVER_ERROR);
} }
model.addAttribute("resultMap", resultMap); model.addAttribute("resultMap", resultMap);
@@ -386,34 +695,57 @@ public class BbsmngrController {
} }
/** /**
* 게시판 삭제 * 게시판 삭제
* @param BbsmngrVO 게시판 등록 파라미터 VO * @param vo 게시판 정보 VO
* @return String JSP 경로 * @return String JSP 경로
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/deleteBbsDel") @RequestMapping(value="/deleteBbsDel", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> deleteBbsDel(BbsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){ public ResponseEntity<WnbtResponse> deleteBbsDel(BOBbsVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd); vo.setSopmalCd(authSopmalCd);
return responseHandler.handleResponse( // 작성자 정보 할당
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/updateBOBbsDel", vo), AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
ReplyFromResrc::getReply if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
} // 쇼핑몰코드
vo.setRegusr(user.getUserInnb()); // 등록자
vo.setUpdusr(user.getUserInnb()); // 수정자
String result = service.updateBOBbsDel(vo);
DataMap content = new DataMap();
content.put("paramVO", vo);
content.put("message", result);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(content))
.build()
); );
} }
/** /**
* 게시글 대시보드 조회폼 * 게시글 대시보드 조회폼
* @param BbsmngrVO 게시판 등록 파라미터 VO * @param vo 게시판 등록 파라미터 VO
* @param model 모델객체 * @param model 모델객체
* @return String JSP 경로 * @return String JSP 경로
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectBbscttDshboardInqireForm") @RequestMapping(value="/selectBbscttDshboardInqireForm")
public String selectBbscttDshboardInqireForm(BbsmngrVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ public String selectBbscttDshboardInqireForm(BOBbsVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd); vo.setSopmalCd(authSopmalCd);
Map<String,Object> resultMap = responseHandler.handleResponseAsMap( // 작성자 정보 할당
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOBbscttDshboardInqireForm",vo) AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
); if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}
// 쇼핑몰코드
vo.setRegusr(user.getUserInnb()); // 등록자
vo.setUpdusr(user.getUserInnb()); // 수정자
DataMap resultMap = new DataMap();
resultMap = service.selectBOBbscttDshboardInqireForm(vo);
ObjectMapper objectMapper = new ObjectMapper(); ObjectMapper objectMapper = new ObjectMapper();
@@ -421,9 +753,11 @@ public class BbsmngrController {
resultMap.put("updBbsList", objectMapper.writeValueAsString(resultMap.get("updBbsList"))); resultMap.put("updBbsList", objectMapper.writeValueAsString(resultMap.get("updBbsList")));
} catch (WnbtRestException wre){ } catch (WnbtRestException wre){
log.error(wre.getMessage(), wre);
throw new WnbtRestException(wre.getMessage()); throw new WnbtRestException(wre.getMessage());
} catch(Exception e) { } catch(Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
throw new WnbtRestException(ErrorCode.INTERNAL_SERVER_ERROR);
} }
model.addAttribute("resultMap", resultMap); model.addAttribute("resultMap", resultMap);
@@ -431,53 +765,97 @@ public class BbsmngrController {
} }
/** /**
* 게시글 대시보드 조회 * 게시글 대시보드 조회
* @param BbsmngrVO 게시판 등록 파라미터 VO * @param vo 게시판 등록 파라미터 VO
* @param model 모델객체 * @param model 모델객체
* @return String JSP 경로 * @return String JSP 경로
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectBbscttDshboardInqire") @RequestMapping(value="/selectBbscttDshboardInqire")
public String selectBbscttDshboardInqire(BbsmngrVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ public String selectBbscttDshboardInqire(BOBbsVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd); vo.setSopmalCd(authSopmalCd);
responseHandler.handleResponse( // 작성자 정보 할당
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOBbscttDshboardInqire", vo), AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
model, if("01".equals(user.getSysDvCd())){
"resultMap" vo.setSopmalCd(user.getSopmalCd());
); } // 쇼핑몰코드
vo.setRegusr(user.getUserInnb()); // 등록자
vo.setUpdusr(user.getUserInnb()); // 수정자
DataMap content = new DataMap();
content = service.selectBOBbscttDshboardInqire(vo);
model.addAttribute("resultMap",content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOBbscttDshboardInqire", vo),
// model,
// "resultMap"
// );
return "mngr/bbs/bbsmngr/BbscttDshboardR"; return "mngr/bbs/bbsmngr/BbscttDshboardR";
} }
/** /**
* 주요 게시판 보기 설정 팝업 * 주요 게시판 보기 설정 팝업
* @param BbsmngrVO * @param vo
* @return * @return
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectMainBbsExpsrSetupPopupForm") @RequestMapping(value="/selectMainBbsExpsrSetupPopupForm", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> selectMainBbsExpsrSetupPopupForm(BbsmngrVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ public ResponseEntity<WnbtResponse> selectMainBbsExpsrSetupPopupForm(BOBbsVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd); vo.setSopmalCd(authSopmalCd);
// 작성자 정보 할당
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
} // 쇼핑몰코드
vo.setRegusr(user.getUserInnb()); // 등록자
vo.setUpdusr(user.getUserInnb()); // 수정자
return responseHandler.handleResponse( DataMap content = new DataMap();
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOMainBbsExpsrSetupPopupForm", vo),
ReplyFromResrc::getReply content = service.selectBOMainBbsExpsrSetupPopupForm(vo);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(content))
.build()
); );
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOMainBbsExpsrSetupPopupForm", vo),
// ReplyFromResrc::getReply
// );
} }
/** /**
* 주요 게시판 보기 설정 수정 * 주요 게시판 보기 설정 수정
* @param BbsmngrVO 게시판 등록 파라미터 VO * @param vo 게시판 등록 파라미터 VO
* @return * @return
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/updateMainBbsExpsrSetupUpdt" , method = RequestMethod.POST) @RequestMapping(value="/updateMainBbsExpsrSetupUpdt" , method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> updateMainBbsExpsrSetupUpdt(BbsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){ public ResponseEntity<WnbtResponse> updateMainBbsExpsrSetupUpdt(BOBbsVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd); vo.setSopmalCd(authSopmalCd);
// 작성자 정보 할당
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
} // 쇼핑몰코드
vo.setRegusr(user.getUserInnb()); // 등록자
vo.setUpdusr(user.getUserInnb()); // 수정자
return responseHandler.handleResponse( DataMap content = new DataMap();
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/updateBOMainBbsExpsrSetupUpdt", vo),
ReplyFromResrc::getReply content = service.updateBOMainBbsExpsrSetupUpdt(vo);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(content))
.build()
); );
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/updateBOMainBbsExpsrSetupUpdt", vo),
// ReplyFromResrc::getReply
// );
} }
} }

View File

@@ -1,15 +1,27 @@
package com.wb.domainserver.domain.mngr.bbs.cnslt.controller; package com.wb.domainserver.domain.mngr.bbs.cnslt.controller;
import com.wb.domainserver.common.msg.GconeMessageSource; 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.service.BOMaComncdService;
import com.wb.domainserver.domain.admin.sys.comncd.vo.BOMaComncdVO;
import com.wb.domainserver.domain.gcone.bbs.cnslt.service.BOCnsltService;
import com.wb.domainserver.domain.gcone.bbs.cnslt.vo.BOCnsltVO;
import com.wb.domainserver.domain.gcone.common.service.BOCommonService;
import com.wb.domainserver.domain.mngr.bbs.cnslt.vo.CnsltVO; import com.wb.domainserver.domain.mngr.bbs.cnslt.vo.CnsltVO;
import com.wb.domainserver.exception.WnbtRestException; import com.wb.domainserver.exception.WnbtRestException;
import com.wb.domainserver.response.WnbtResponse; import com.wb.domainserver.response.WnbtResponse;
import com.wb.domainserver.response.WnbtResponseBody;
import com.wb.domainserver.response.WnbtWebClientResponseHandler; 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.AuthPolicy;
import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.communicate.*; import com.wb.domainserver.util.communicate.*;
import com.wb.domainserver.util.dataaccess.DataMap;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
@@ -19,6 +31,7 @@ import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -38,6 +51,17 @@ public class CnsltController {
@Autowired @Autowired
private GconeMessageSource gconeMessageSource; private GconeMessageSource gconeMessageSource;
@Autowired
private BOCnsltService service;
@Autowired
private BOMaComncdService bOMaComncdService;
@Autowired
private PaginationProperties paginationProperties;
@Autowired
private BOCommonService boCommonService;
/** /**
* 고객상담 통합게시판 목록 이동 * 고객상담 통합게시판 목록 이동
@@ -45,13 +69,26 @@ public class CnsltController {
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectCstmrCnsltUnityBbscttListInqireForm") @RequestMapping(value="/selectCstmrCnsltUnityBbscttListInqireForm")
public String selectCstmrCnsltUnityBbscttListInqireForm(CnsltVO cnsltVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { public String selectCstmrCnsltUnityBbscttListInqireForm(BOCnsltVO cnsltVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
cnsltVO.setSopmalCd(authSopmalCd); cnsltVO.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cnslt/selectBOCstmrCnsltUnityBbscttListInqireForm", cnsltVO), Map<String, Object> content = new HashMap<>();
model,
"resultMap" // 공통코드 호출
); BOMaComncdVO bOMaComncdVO = new BOMaComncdVO();
bOMaComncdVO.setGroupCd("COUNSEL_PROCS_STTUS"); // 상담처리상태
List<?> procsSttusCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
// 공통코드와 리스트를 넣어줌
content.put("paramVO", cnsltVO);
content.put("procsSttusCdList", procsSttusCdList);
model.addAttribute("resultMap",content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cnslt/selectBOCstmrCnsltUnityBbscttListInqireForm", cnsltVO),
// model,
// "resultMap"
// );
return "mngr/bbs/cnslt/CstmrCnsltUnityBbscttListRForm"; return "mngr/bbs/cnslt/CstmrCnsltUnityBbscttListRForm";
} }
@@ -65,13 +102,48 @@ public class CnsltController {
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectCstmrCnsltUnityBbscttListInqire") @RequestMapping(value="/selectCstmrCnsltUnityBbscttListInqire")
public String selectCstmrCnsltUnityBbscttListInqire(CnsltVO cnsltVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { public String selectCstmrCnsltUnityBbscttListInqire(BOCnsltVO cnsltVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
cnsltVO.setSopmalCd(authSopmalCd); cnsltVO.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cnslt/selectBOCstmrCnsltUnityBbscttListInqire", cnsltVO), // 작성자 정보 할당
model, AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
"resultMap" if("01".equals(user.getSysDvCd())){
); cnsltVO.setSopmalCd(user.getSopmalCd());
}
Map<String, Object> content = new HashMap<>();
// 페이징 객체 생성 & 페이징정보 할당
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(cnsltVO.getPageIndex());
paginationInfo.setRecordCountPerPage(cnsltVO.getPageUnit());
paginationInfo.setPageSize(paginationProperties.getPageSize());
cnsltVO.setPaginationInfo(paginationInfo);
cnsltVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
cnsltVO.setLastIndex(paginationInfo.getLastRecordIndex());
cnsltVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
// 공통코드 호출
BOMaComncdVO bOMaComncdVO = new BOMaComncdVO();
bOMaComncdVO.setGroupCd("COUNSEL_PROCS_STTUS"); // 상담처리상태
List<?> procsSttusCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
cnsltVO.setSecretKey(boCommonService.selectSecretkey());
List<DataMap> resultList = service.selectBOCstmrCnsltUnityBbscttListInqire(cnsltVO);
// 맵에 페이징 정보와 리스트를 넣어줌
content.put("paramVO", cnsltVO);
content.put("resultList", resultList);
content.put("paginationInfo", cnsltVO.getPaginationInfo());
content.put("procsSttusCdList", procsSttusCdList); // 상담처리상태
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cnslt/selectBOCstmrCnsltUnityBbscttListInqire", cnsltVO),
// model,
// "resultMap"
// );
return "mngr/bbs/cnslt/CstmrCnsltUnityBbscttListR"; return "mngr/bbs/cnslt/CstmrCnsltUnityBbscttListR";
} }
@@ -83,13 +155,39 @@ public class CnsltController {
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectCstmrCnsltDtlUpdtInqirePopup") @RequestMapping(value="/selectCstmrCnsltDtlUpdtInqirePopup")
public String selectCstmrCnsltDtlUpdtInqirePopup(CnsltVO cnsltVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { public String selectCstmrCnsltDtlUpdtInqirePopup(BOCnsltVO cnsltVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
cnsltVO.setSopmalCd(authSopmalCd); cnsltVO.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cnslt/selectBOCnsltDtlUpdtInqirePopup", cnsltVO), // 작성자 정보 할당
model, AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
"resultMap" if("01".equals(user.getSysDvCd())){
); cnsltVO.setSopmalCd(user.getSopmalCd());
} // 쇼핑몰코드
Map<String, Object> content = new HashMap<>();
// 공통코드 호출
BOMaComncdVO bOMaComncdVO = new BOMaComncdVO();
bOMaComncdVO.setGroupCd("COUNSEL_PROCS_STTUS"); // 상담처리상태
List<?> procsSttusCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
bOMaComncdVO.setGroupCd("TELNB_DV"); // 인콜/아웃콜
List<?> telnbDvCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
//시크릿키 set
cnsltVO.setSecretKey(boCommonService.selectSecretkey());
DataMap result = new DataMap();
result = service.selectBOCnsltDtlUpdtInqirePopup(cnsltVO);
content.put("cnsltVO", result);
content.put("procsSttusCdList", procsSttusCdList);
content.put("telnbDvCdList", telnbDvCdList);
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cnslt/selectBOCnsltDtlUpdtInqirePopup", cnsltVO),
// model,
// "resultMap"
// );
return "mngr/bbs/cnslt/CstmrCnsltDtlUpdtPopupU"; return "mngr/bbs/cnslt/CstmrCnsltDtlUpdtPopupU";
} }
@@ -100,8 +198,8 @@ public class CnsltController {
* @return * @return
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/updateCstmrCnsltUpdt") @RequestMapping(value = "/updateCstmrCnsltUpdt", produces= MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> updateCstmrCnsltUpdt(@Validated CnsltVO cnsltVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) { public ResponseEntity<WnbtResponse> updateCstmrCnsltUpdt(@Validated BOCnsltVO cnsltVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
// 정합성 검사 // 정합성 검사
if(bindingResult.hasErrors()) { if(bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
@@ -134,10 +232,27 @@ public class CnsltController {
cnsltVO.setGoodsRvwBbscttNb(null); cnsltVO.setGoodsRvwBbscttNb(null);
} }
cnsltVO.setSopmalCd(authSopmalCd); cnsltVO.setSopmalCd(authSopmalCd);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cnslt/updateBOCnsltUpdt", cnsltVO), // 작성자 정보 할당
ReplyFromResrc::getReply AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
cnsltVO.setSopmalCd(user.getSopmalCd());
} // 쇼핑몰코드
cnsltVO.setUpdusr(user.getUserInnb()); // 수정자
Map<String, Object> message = new HashMap<>();
message = service.updateBOCnsltUpdt(cnsltVO);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(message))
.build()
); );
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cnslt/updateBOCnsltUpdt", cnsltVO),
// ReplyFromResrc::getReply
// );
} }

View File

@@ -1,21 +1,34 @@
package com.wb.domainserver.domain.mngr.goods.banner.controller; package com.wb.domainserver.domain.mngr.goods.banner.controller;
import com.wb.domainserver.common.msg.GconeMessageSource; 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.domain.mngr.goods.banner.vo.BannerVO;
import com.wb.domainserver.exception.WnbtRestException; 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.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.AuthPolicy;
import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.communicate.RESRC; import com.wb.domainserver.util.communicate.RESRC;
import com.wb.domainserver.util.communicate.ReplyFromResrc; import com.wb.domainserver.util.communicate.ReplyFromResrc;
import com.wb.domainserver.util.communicate.SendToResrc; import com.wb.domainserver.util.communicate.SendToResrc;
import com.wb.domainserver.util.communicate.ValidateResultConverter; 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.FileMngUtil;
import com.wb.domainserver.util.file.service.FileStorageService; import com.wb.domainserver.util.file.service.FileStorageService;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
@@ -28,6 +41,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
@Slf4j @Slf4j
@Controller @Controller
@@ -51,6 +65,13 @@ public class BannerController {
@Autowired @Autowired
private WnbtWebClientResponseHandler responseHandler; private WnbtWebClientResponseHandler responseHandler;
@Autowired
private BOBannerService service;
@Autowired
private BOMaCtgryService boMaCtgryService;
@Autowired
private PaginationProperties paginationProperties;
/** /**
* 배너목록조회 * 배너목록조회
* @param vo * @param vo
@@ -59,15 +80,51 @@ public class BannerController {
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectBannerListR") @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); vo.setSopmalCd(authSopmalCd);
responseHandler.handleResponse( //사용자 정보 추출 및 적용
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/selectBOBannerList", vo), AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
model, if("01".equals(user.getSysDvCd())){
"resultMap" 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"; return "mngr/goods/banner/BannerListR";
} }
@@ -80,15 +137,52 @@ public class BannerController {
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectBannerRegistForm") @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); vo.setSopmalCd(authSopmalCd);
responseHandler.handleResponse( //사용자 정보 추출 및 적용
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/selectBOBannerRegistForm", vo), AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
model, if("01".equals(user.getSysDvCd())){
"resultMap" 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"; return "mngr/goods/banner/BannerC";
} }
@@ -96,14 +190,14 @@ public class BannerController {
/** /**
* 배너 등록 * 배너 등록
* @param vo * @param vo
* @param model
* @param bindingResult * @param bindingResult
* @param request * @param request
* @param authSopmalCd
* @return * @return
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/insertBanner" , method = RequestMethod.POST) @RequestMapping(value="/insertBanner" , method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> insertBanner(@Validated BannerVO vo, BindingResult bindingResult, public ResponseEntity<?> insertBanner(@Validated BOBannerVO vo, BindingResult bindingResult,
HttpServletRequest request, HttpServletRequest request,
@CookieValue(value = "authSopmalCd") String authSopmalCd){ @CookieValue(value = "authSopmalCd") String authSopmalCd){
if(bindingResult.hasErrors()) { if(bindingResult.hasErrors()) {
@@ -126,10 +220,25 @@ public class BannerController {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
} }
return responseHandler.handleResponse( //사용자 정보 추출 및 적용
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/insertBOBanner", vo), AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
ReplyFromResrc::getReply 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) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectBannerDtlForm" , method = RequestMethod.POST) @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); vo.setSopmalCd(authSopmalCd);
responseHandler.handleResponse( //사용자 정보 추출 및 적용
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/selectBOBannerDtlForm", vo), AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
model, if("01".equals(user.getSysDvCd())){
"resultMap" 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"; return "mngr/goods/banner/BannerDtlU";
} }
@@ -159,14 +304,14 @@ public class BannerController {
/** /**
* 배너 수정 * 배너 수정
* @param vo * @param vo
* @param model
* @param bindingResult * @param bindingResult
* @param request * @param request
* @param authSopmalCd
* @return * @return
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/updateBannerDtl") @RequestMapping(value="/updateBannerDtl", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> updateBannerDtl(@Validated BannerVO vo, BindingResult bindingResult, HttpServletRequest request, @CookieValue(value = "authSopmalCd") String authSopmalCd){ public ResponseEntity<?> updateBannerDtl(@Validated BOBannerVO vo, BindingResult bindingResult, HttpServletRequest request, @CookieValue(value = "authSopmalCd") String authSopmalCd){
if(bindingResult.hasErrors()) { if(bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
} }
@@ -187,10 +332,25 @@ public class BannerController {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
} }
return responseHandler.handleResponse( //사용자 정보 추출 및 적용
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/updateBOBannerDtl", vo), AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
ReplyFromResrc::getReply 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 * @return
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/deleteBanner" , method = RequestMethod.POST) @RequestMapping(value="/deleteBanner" , method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> deleteBanner(BannerVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){ public ResponseEntity<?> deleteBanner(BOBannerVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd); vo.setSopmalCd(authSopmalCd);
return responseHandler.handleResponse( //사용자 정보 추출 및 적용
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/deleteBOBanner", vo), AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
ReplyFromResrc::getReply 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) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectBannerOrdrPopup" , method = RequestMethod.POST) @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); vo.setSopmalCd(authSopmalCd);
responseHandler.handleResponse( Map<String, Object> content = new HashMap<>();
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/selectBOBannerOrdrPopup", vo), //사용자 정보 추출 및 적용
model, AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
"resultMap" 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"; return "mngr/goods/banner/BannerOrdrPopupR";
} }
@@ -237,18 +418,36 @@ public class BannerController {
* @return * @return
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/updateBannerOrdr" , method = RequestMethod.POST) @RequestMapping(value="/updateBannerOrdr" , method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> updateBannerOrdr( @RequestBody List<BannerVO> vo, public ResponseEntity<?> updateBannerOrdr( @RequestBody List<BOBannerVO> vo,
@CookieValue(value = "authSopmalCd") String authSopmalCd){ @CookieValue(value = "authSopmalCd") String authSopmalCd){
for(BannerVO bannerVO : vo){ for(BOBannerVO bannerVO : vo){
bannerVO.setSopmalCd(authSopmalCd); bannerVO.setSopmalCd(authSopmalCd);
} }
return responseHandler.handleResponse( //사용자 정보 추출 및 적용
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/updateBOBannerOrdr", vo), AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
ReplyFromResrc::getReply
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; package com.wb.domainserver.domain.mngr.goods.cmnuse.controller;
import com.wb.domainserver.common.msg.GconeMessageSource; 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.domain.mngr.goods.cmnuse.vo.CmnuseVO;
import com.wb.domainserver.response.WnbtResponse; import com.wb.domainserver.response.WnbtResponse;
import com.wb.domainserver.response.WnbtResponseBody;
import com.wb.domainserver.response.WnbtWebClientResponseHandler; 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.AuthPolicy;
import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.communicate.RESRC; import com.wb.domainserver.util.communicate.RESRC;
import com.wb.domainserver.util.communicate.ReplyFromResrc; import com.wb.domainserver.util.communicate.ReplyFromResrc;
import com.wb.domainserver.util.communicate.SendToResrc; import com.wb.domainserver.util.communicate.SendToResrc;
import com.wb.domainserver.util.dataaccess.DataMap;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; 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.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
import java.util.List;
/** /**
* Cmnuse Controller Class (front) * Cmnuse Controller Class (front)
* *
@@ -51,114 +60,179 @@ public class CmnuseController {
@Autowired @Autowired
private WnbtWebClientResponseHandler responseHandler; private WnbtWebClientResponseHandler responseHandler;
@Autowired
private BOCmnuseService service;
/** /**
* 공용 정보 목록 조회 * 공용 정보 목록 조회
* @param CmnuseVO * @param vo
* @param model 모델객체 * @param model 모델객체
* @return String JSP 경로 * @return String JSP 경로
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectCmnuseInfoList") @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); vo.setSopmalCd(authSopmalCd);
responseHandler.handleResponse( //사용자 정보 추출 및 적용
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/cmnuse/selectBOCmnuseInfoList", vo), AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
model, if("01".equals(user.getSysDvCd())){
"resultMap" 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"; return "mngr/goods/cmnuse/CmnuseInfoListR";
} }
/** /**
* 공용 정보 등록 * 공용 정보 등록
* @param CmnuseVO * @param vo
* @return ResponseEntity * @return ResponseEntity
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/insertCmnuseInfo" , method = RequestMethod.POST) @RequestMapping(value="/insertCmnuseInfo" , method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> insertCmnuseInfo(CmnuseVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){ public ResponseEntity<WnbtResponse> insertCmnuseInfo(BOCmnuseVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd); vo.setSopmalCd(authSopmalCd);
return responseHandler.handleResponse( //사용자 정보 추출 및 적용
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/cmnuse/insertBOCmnuseInfo", vo), AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
ReplyFromResrc::getReply 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 vo
* @param model 모델객체 * @param authSopmalCd
* @return String JSP 경로 * @return String JSP 경로
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectCmnuseInfoForm") @RequestMapping(value="/selectCmnuseInfoForm")
public String selectCmnuseInfoForm(CmnuseVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){ public String selectCmnuseInfoForm(CmnuseVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd); vo.setSopmalCd(authSopmalCd);
return "mngr/goods/cmnuse/CmnuseInfoFormR"; return "mngr/goods/cmnuse/CmnuseInfoFormR";
} }
/** /**
* 공용 정보 수정 * 공용 정보 수정
* @param CmnuseVO * @param vo
* @return ResponseEntity * @return ResponseEntity
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/updateCmnuseInfoDtl", method = RequestMethod.POST) @RequestMapping(value="/updateCmnuseInfoDtl", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> updateCmnuseInfoDtl(CmnuseVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){ public ResponseEntity<WnbtResponse> updateCmnuseInfoDtl(BOCmnuseVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd); vo.setSopmalCd(authSopmalCd);
return responseHandler.handleResponse( //사용자 정보 추출 및 적용
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/cmnuse/updateBOCmnuseInfoDtl", vo), AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
ReplyFromResrc::getReply 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 모델객체 * @param model 모델객체
* @return String JSP 경로 * @return String JSP 경로
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectCmnuseInfoDtlForm") @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); vo.setSopmalCd(authSopmalCd);
//사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}
responseHandler.handleResponse( DataMap content = service.selectBOCmnuseInfoDtl(vo);
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/cmnuse/selectBOCmnuseInfoDtlForm", vo),
model,
"resultMap"
);
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/cmnuse/selectBOCmnuseInfoDtlForm", vo),
// model,
// "resultMap"
// );
return "mngr/goods/cmnuse/CmnuseInfoDtlFormR"; return "mngr/goods/cmnuse/CmnuseInfoDtlFormR";
} }
/** /**
* 공용 정보 삭제 * 공용 정보 삭제
* @param CmnuseVO * @param vo
* @return ResponseEntity * @return ResponseEntity
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/deleteCmnuseInfo", method = RequestMethod.POST) @RequestMapping(value="/deleteCmnuseInfo", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> deleteCmnuseInfo(CmnuseVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){ public ResponseEntity<WnbtResponse> deleteCmnuseInfo(BOCmnuseVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd); vo.setSopmalCd(authSopmalCd);
return responseHandler.handleResponse( //사용자 정보 추출 및 적용
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/cmnuse/deleteBOCmnuseInfo", vo), AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
ReplyFromResrc::getReply 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; package com.wb.domainserver.domain.mngr.goods.goodsinfo.controller;
import com.wb.domainserver.common.msg.GconeMessageSource; 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.domain.mngr.goods.goodsinfo.vo.GoodsInfoVO;
import com.wb.domainserver.exception.WnbtRestException; import com.wb.domainserver.exception.WnbtRestException;
import com.wb.domainserver.response.WnbtResponse; import com.wb.domainserver.response.WnbtResponse;
import com.wb.domainserver.response.WnbtResponseBody;
import com.wb.domainserver.response.WnbtWebClientResponseHandler; 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.AuthPolicy;
import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.communicate.RESRC; import com.wb.domainserver.util.communicate.RESRC;
import com.wb.domainserver.util.communicate.ReplyFromResrc; import com.wb.domainserver.util.communicate.ReplyFromResrc;
import com.wb.domainserver.util.communicate.SendToResrc; import com.wb.domainserver.util.communicate.SendToResrc;
import com.wb.domainserver.util.communicate.ValidateResultConverter; import com.wb.domainserver.util.communicate.ValidateResultConverter;
import com.wb.domainserver.util.dataaccess.DataMap;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; 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.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
import java.util.ArrayList;
import java.util.List;
/** /**
* GoodsInfoController Controller Class (front) * GoodsInfoController Controller Class (front)
* *
@@ -57,29 +69,58 @@ public class GoodsInfoController {
@Autowired @Autowired
private WnbtWebClientResponseHandler responseHandler; private WnbtWebClientResponseHandler responseHandler;
@Autowired
private BOGoodsinfoService service;
@Autowired
private PaginationProperties paginationProperties;
/** /**
* 상품 정보 목록 조회 * 상품 정보 목록 조회
* @param GoodsInfoVO * @param vo
* @return GoodsInfoListR.jsp * @return GoodsInfoListR.jsp
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectGoodsInfoList") @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); vo.setSopmalCd(authSopmalCd);
responseHandler.handleResponse( //사용자 정보 추출 및 적용
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goodsinfo/selectBOGoodsInfoList", vo), AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
model, if("01".equals(user.getSysDvCd())){
"resultMap" 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"; return "mngr/goods/goodsinfo/GoodsInfoListR";
} }
/** /**
* 상품 정보 등록화면 * 상품 정보 등록화면
* @param GoodsInfoVO * @param vo
* @return GoodsInfoFormR.jsp * @return GoodsInfoFormR.jsp
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@@ -95,86 +136,133 @@ public class GoodsInfoController {
/** /**
* 상품 정보 등록 * 상품 정보 등록
* @param GoodsInfoVO * @param vo
* @param bindingResult 바인딩 및 정합성 점검결과 객체 * @param bindingResult 바인딩 및 정합성 점검결과 객체
* @return * @return
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/insertGoodsInfo", method = RequestMethod.POST) @RequestMapping(value="/insertGoodsInfo", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> insertGoodsInfo(@Validated GoodsInfoVO vo, BindingResult bindingResult, public ResponseEntity<WnbtResponse> insertGoodsInfo(@Validated BOGoodsInfoVO vo, BindingResult bindingResult,
@CookieValue(value = "authSopmalCd") String authSopmalCd){ @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd); vo.setSopmalCd(authSopmalCd);
if(bindingResult.hasErrors()) { if(bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
} }
return responseHandler.handleResponse( //사용자 정보 추출 및 적용
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goodsinfo/insertBOGoodsInfo", vo), AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
ReplyFromResrc::getReply 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 모델객체 * @param model 모델객체
* @return GoodsInfoDtlFormR.jsp * @return GoodsInfoDtlFormR.jsp
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectGoodsInfoDtlForm") @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); vo.setSopmalCd(authSopmalCd);
responseHandler.handleResponse( //사용자 정보 추출 및 적용
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goodsinfo/selectBOGoodsInfoDtlForm", vo), AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
model, if("01".equals(user.getSysDvCd())){
"resultMap" 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"; return "mngr/goods/goodsinfo/GoodsInfoDtlFormR";
} }
/** /**
* 상품 정보 수정 * 상품 정보 수정
* @param GoodsInfoVO * @param vo
* @return * @return
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/updateGoodsInfoDtl") @RequestMapping(value="/updateGoodsInfoDtl", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> updateGoodsInfoDtl(@Validated GoodsInfoVO vo, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){ public ResponseEntity<WnbtResponse> updateGoodsInfoDtl(@Validated BOGoodsInfoVO vo, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd); vo.setSopmalCd(authSopmalCd);
if(bindingResult.hasErrors()) { if(bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); 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( DataMap message = new DataMap();
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goodsinfo/updateBOGoodsInfoDtl", vo), message = service.updateBOGoodsInfoDtl(vo);
ReplyFromResrc::getReply
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 * @return
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/deleteGoodsInfo") @RequestMapping(value="/deleteGoodsInfo", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> deleteGoodsInfo(GoodsInfoVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){ public ResponseEntity<WnbtResponse> deleteGoodsInfo(BOGoodsInfoVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd); vo.setSopmalCd(authSopmalCd);
return responseHandler.handleResponse( //사용자 정보 추출 및 적용
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goodsinfo/updateBOGoodsInfoDel", vo), AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
ReplyFromResrc::getReply 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; package com.wb.domainserver.domain.mngr.goods.prsnt.controller;
import com.wb.domainserver.common.msg.GconeMessageSource; 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.domain.mngr.goods.goodsmngr.vo.GoodsmngrVO;
import com.wb.domainserver.exception.WnbtRestException; import com.wb.domainserver.exception.WnbtRestException;
import com.wb.domainserver.response.WnbtResponse; import com.wb.domainserver.response.WnbtResponse;
import com.wb.domainserver.response.WnbtResponseBody;
import com.wb.domainserver.response.WnbtWebClientResponseHandler; 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.AuthPolicy;
import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.communicate.RESRC; import com.wb.domainserver.util.communicate.RESRC;
import com.wb.domainserver.util.communicate.ReplyFromResrc; import com.wb.domainserver.util.communicate.ReplyFromResrc;
import com.wb.domainserver.util.communicate.SendToResrc; import com.wb.domainserver.util.communicate.SendToResrc;
import com.wb.domainserver.util.communicate.ValidateResultConverter; import com.wb.domainserver.util.communicate.ValidateResultConverter;
import com.wb.domainserver.util.dataaccess.DataMap;
import com.wb.domainserver.util.file.service.FileStorageService; import com.wb.domainserver.util.file.service.FileStorageService;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
@@ -27,6 +44,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
@Controller @Controller
@RequestMapping("/mngr/goods/prsnt") @RequestMapping("/mngr/goods/prsnt")
@@ -48,75 +66,223 @@ public class PrsntController {
@Autowired @Autowired
private WnbtWebClientResponseHandler responseHandler; 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 * @return String
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectPrsntListForm") @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); vo.setSopmalCd(authSopmalCd);
responseHandler.handleResponse( //사용자 정보 추출 및 적용
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOPrsntListForm", vo), AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
model, if("01".equals(user.getSysDvCd())){
"resultMap" 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"; return "mngr/goods/prsnt/PrsntListRForm";
} }
/** /**
* 사은품 목록 조회 * 사은품 목록 조회
* @param prsntSrchVO * @param vo
* @return String * @return String
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectPrsntList") @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); vo.setSopmalCd(authSopmalCd);
responseHandler.handleResponse( //사용자 정보 추출 및 적용
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOPrsntList", vo), AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
model, if("01".equals(user.getSysDvCd())){
"resultMap" 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"; return "mngr/goods/prsnt/PrsntListR";
} }
/** /**
* 사은품 등록 폼 * 사은품 등록 폼
* @param prsntSrchVO * @param vo
* @return String * @return String
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/insertPrsntForm") @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); vo.setSopmalCd(authSopmalCd);
responseHandler.handleResponse( AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOGoodsListForm", vo),
model, if("01".equals(user.getSysDvCd())){
"resultMap" 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"; return "mngr/goods/prsnt/PrsntC";
} }
/** /**
* 사은품 등록 * 사은품 등록
* @param prsntVO * @param vo
* @return ResponseEntity * @return ResponseEntity
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/insertPrsnt" , method = RequestMethod.POST) @RequestMapping(value="/insertPrsnt" , method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> insertPrsnt(@Validated GoodsmngrVO vo, BindingResult bindingResult , HttpServletRequest request, @CookieValue(value = "authSopmalCd") String authSopmalCd){ public ResponseEntity<WnbtResponse> insertPrsnt(@Validated BOGoodsVO vo, BindingResult bindingResult , HttpServletRequest request, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd); vo.setSopmalCd(authSopmalCd);
@@ -132,47 +298,112 @@ public class PrsntController {
ulpladFileMap = filestore.fileUpload(request); ulpladFileMap = filestore.fileUpload(request);
vo.setFileInfo(ulpladFileMap); vo.setFileInfo(ulpladFileMap);
} catch (WnbtRestException wre){ } catch (WnbtRestException wre){
log.error(wre.getMessage(), wre);
throw new WnbtRestException("파일 업로드에 실패했습니다."+ wre.getMessage()); throw new WnbtRestException("파일 업로드에 실패했습니다."+ wre.getMessage());
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
throw new WnbtRestException("파일 업로드에 실패했습니다."+ e.getMessage());
} }
return responseHandler.handleResponse( //사용자 정보 추출 및 적용
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/insertBOPrsnt", vo), AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
ReplyFromResrc::getReply 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 * @return String
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectPrsntDtlForm") @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); vo.setSopmalCd(authSopmalCd);
responseHandler.handleResponse( //사용자 정보 추출 및 적용
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOPrsntDtl", vo), AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
model, if("01".equals(user.getSysDvCd())){
"resultMap" 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"; return "mngr/goods/prsnt/PrsntDtlU";
} }
/** /**
* 사은품 수정 * 사은품 수정
* @param prsntVO * @param vo
* @return ResponseEntity * @return ResponseEntity
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/updatePrsntDtl" , method = RequestMethod.POST) @RequestMapping(value="/updatePrsntDtl" , method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> updatePrsntDtl(@Validated GoodsmngrVO vo, BindingResult bindingResult , HttpServletRequest request, @CookieValue(value = "authSopmalCd") String authSopmalCd){ public ResponseEntity<WnbtResponse> updatePrsntDtl(@Validated BOGoodsVO vo, BindingResult bindingResult , HttpServletRequest request, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd); vo.setSopmalCd(authSopmalCd);
@@ -188,36 +419,72 @@ public class PrsntController {
ulpladFileMap = filestore.fileUpload(request); ulpladFileMap = filestore.fileUpload(request);
vo.setFileInfo(ulpladFileMap); vo.setFileInfo(ulpladFileMap);
} catch (WnbtRestException wre){ } catch (WnbtRestException wre){
log.error(wre.getMessage(), wre);
throw new WnbtRestException("파일 업로드에 실패했습니다."+ wre.getMessage()); throw new WnbtRestException("파일 업로드에 실패했습니다."+ wre.getMessage());
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), 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 * @return ResponseEntity
*/ */
@Policy(AuthPolicy.RESTRICTED) @Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/deletePrsnt" , method = RequestMethod.POST) @RequestMapping(value="/deletePrsnt" , method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> deletePrsnt(GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){ public ResponseEntity<WnbtResponse> deletePrsnt(BOGoodsVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
vo.setSopmalCd(authSopmalCd); vo.setSopmalCd(authSopmalCd);
return responseHandler.handleResponse( //사용자 정보 추출 및 적용
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/deleteBOGoods", vo), AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
ReplyFromResrc::getReply 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
// );
}
} }

View File

@@ -37,6 +37,7 @@ import org.springframework.web.util.UriUtils;
import java.io.IOException; import java.io.IOException;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
@Slf4j @Slf4j
@@ -124,6 +125,7 @@ public class MngrLoginController {
loginUser = service.mngrLogin(loginRequest); loginUser = service.mngrLogin(loginRequest);
log.debug("loginUser :: {}", loginUser); log.debug("loginUser :: {}", loginUser);
service.createLoginToken(loginUser, request, response); service.createLoginToken(loginUser, request, response);
@@ -155,14 +157,15 @@ public class MngrLoginController {
//쇼핑몰 테마 등 정보 조회 //쇼핑몰 테마 등 정보 조회
Shop shopInfo = bomaSopmalService.selectSopmalInfo(sopmalCd); Shop shopInfo = bomaSopmalService.selectSopmalInfo(sopmalCd);
List<DataMap> siteList = bomaSopmalService.selectSopmalList();
model.addAttribute("redirectUri", redirectUri); model.addAttribute("redirectUri", redirectUri);
model.addAttribute("accessUrl", accessUrl); model.addAttribute("accessUrl", accessUrl);
model.addAttribute("sopmalCd", sopmalCd); model.addAttribute("sopmalCd", sopmalCd);
model.addAttribute("realm", RealmContextHolder.getRealm().toLowerCase()); model.addAttribute("realm", RealmContextHolder.getRealm().toLowerCase());
model.addAttribute("shopInfo", shopInfo); model.addAttribute("shopInfo", shopInfo);
model.addAttribute("siteList", siteList);
//디바이스 타입에 따라 조절
return "login/login-MNGR"; return "login/login-MNGR";
} }

View File

@@ -65,13 +65,10 @@ public class MngrMainController {
*/ */
@Policy(AuthPolicy.PUBLIC) @Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/main") @RequestMapping(value = "/main")
public String selectMngrMainInqire(ModelMap model, HttpServletRequest request) { public String selectMngrMainInqire(@CookieValue(value = "authSopmalCd") String authSopmalCd, ModelMap model, HttpServletRequest request) {
// 응답 메세지 객체
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
DataMap vo = new DataMap(); DataMap vo = new DataMap();
vo.put("sopmalCd", user.getSopmalCd()); vo.put("sopmalCd", authSopmalCd);
Map<String, Object> content = service.selectBOMngrMainInqire(vo); Map<String, Object> content = service.selectBOMngrMainInqire(vo);
model.addAttribute("resultMap", content); model.addAttribute("resultMap", content);
return "mngr/index"; return "mngr/index";

View File

@@ -40,17 +40,20 @@ public class MngrAuthInterceptor implements HandlerInterceptor{
//쿠키 쇼핑몰 코드 없을 경우 쿠키 생성 및 쇼핑몰코드 변수저장 //쿠키 쇼핑몰 코드 없을 경우 쿠키 생성 및 쇼핑몰코드 변수저장
if(!StringUtils.hasText(cookieAuthSopmalCd)){ if (!StringUtils.hasText(cookieAuthSopmalCd)) {
//통합관리자인경우 //통합관리자인경우
if("ADMIN".equals(RealmContextHolder.getSopmalCdRealm())){ if ("ADMIN".equals(RealmContextHolder.getSopmalCdRealm())) {
CookieUtils.createCookie("authSopmalCd", "SYS", "/admin", true, request, response); CookieUtils.createCookie("authSopmalCd", "SYS", "/", true, request, response);
cookieAuthSopmalCd = "SYS"; cookieAuthSopmalCd = "SYS";
}else{ } else {
CookieUtils.createCookie("authSopmalCd", RealmContextHolder.getSopmalCdRealm(), "/mngr", true, request, response); /*쿠키에 authSopmalCd가 없으면 초기화*/
if(StringUtil.isEmpty(cookieAuthSopmalCd)){
CookieUtils.createCookie("authSopmalCd", RealmContextHolder.getSopmalCdRealm(), "/", true, request, response);
cookieAuthSopmalCd = RealmContextHolder.getSopmalCdRealm(); cookieAuthSopmalCd = RealmContextHolder.getSopmalCdRealm();
} }
} }
}
AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
@@ -60,7 +63,7 @@ public class MngrAuthInterceptor implements HandlerInterceptor{
//해당 페이지에 접근권한이 없으면 alert //해당 페이지에 접근권한이 없으면 alert
boolean result = false; boolean result = false;
if(authChk){ if (authChk) {
AuthVO authVO = new AuthVO(); AuthVO authVO = new AuthVO();
authVO.setMngrInnb(user.getUserInnb()); authVO.setMngrInnb(user.getUserInnb());
authVO.setSopmalCd(cookieAuthSopmalCd); authVO.setSopmalCd(cookieAuthSopmalCd);
@@ -68,21 +71,19 @@ public class MngrAuthInterceptor implements HandlerInterceptor{
String url = request.getRequestURI(); String url = request.getRequestURI();
authVO.setFnctUri(url.equals("/") ? url + RealmContextHolder.getRealm().toLowerCase() : url); authVO.setFnctUri(url.equals("/") ? url + RealmContextHolder.getRealm().toLowerCase() : url);
// if("itrnt".equalsIgnoreCase(cookieAuthSopmalCd)){ //인트라넷 일 경우 if ("itrnt".equalsIgnoreCase(cookieAuthSopmalCd)) { //인트라넷 일 경우
// authVO.setStrOperDv(user.getStrOperDv()); authVO.setStrOperDv(user.getStrOperDv());
// authVO.setTentGroup(user.getTentGroup()); authVO.setTentGroup(user.getTentGroup());
// authVO.setReprsntBrand(user.getReprsntBrand()); authVO.setReprsntBrand(user.getReprsntBrand());
//
// result = authService.selectItrntAuthorSiteAt(authVO); result = authService.selectItrntAuthorSiteAt(authVO);
// }else{ } else {
//관리자 + 통합관리자 일 경우 //관리자 + 통합관리자 일 경우
result = authService.selectAuthorSiteAt(authVO); result = authService.selectAuthorSiteAt(authVO);
// } }
} }
if (!result) {
if(!result){
response.setStatus(HttpServletResponse.SC_FORBIDDEN); response.setStatus(HttpServletResponse.SC_FORBIDDEN);
response.setContentType("text/html;charset=utf-8"); response.setContentType("text/html;charset=utf-8");
response.getWriter().write("<script>alert('해당페이지에 접근 권한이 없습니다. 관리자에게 문의하세요.'); window.history.back();</script>"); response.getWriter().write("<script>alert('해당페이지에 접근 권한이 없습니다. 관리자에게 문의하세요.'); window.history.back();</script>");
@@ -91,8 +92,6 @@ public class MngrAuthInterceptor implements HandlerInterceptor{
return false; return false;
} }
return true; return true;
} }
@@ -102,7 +101,7 @@ public class MngrAuthInterceptor implements HandlerInterceptor{
* @param response res * @param response res
* @param user 유저정보 * @param user 유저정보
*/ */
private boolean mngrAuthChk(HttpServletRequest request, HttpServletResponse response, AnonymousUser user){ private boolean mngrAuthChk (HttpServletRequest request, HttpServletResponse response, AnonymousUser user){
//권한 리스트 조회 //권한 리스트 조회
AuthVO authVO = new AuthVO(); AuthVO authVO = new AuthVO();
authVO.setMngrInnb(user.getUserInnb()); authVO.setMngrInnb(user.getUserInnb());
@@ -120,16 +119,16 @@ public class MngrAuthInterceptor implements HandlerInterceptor{
} else { } else {
//쿠키에 권한 리스트중 첫번째 쇼핑몰 param 저장 //쿠키에 권한 리스트중 첫번째 쇼핑몰 param 저장
if(!sopmalList.isEmpty()){ if (!sopmalList.isEmpty()) {
authSopmalCd = sopmalList.get(0); authSopmalCd = sopmalList.get(0);
}else{ } else {
return false; return false;
} }
} }
CookieUtils.createCookie("authSopmalCd", authSopmalCd, "/mngr", true, request, response); CookieUtils.createCookie("authSopmalCd", authSopmalCd, "/", true, request, response);
return true; return true;
} }
} }

View File

@@ -87,12 +87,14 @@ public class UrlExtractor {
String host = url.replaceFirst("https?://", ""); String host = url.replaceFirst("https?://", "");
// 로컬 혹은 개발 서브도메인 제거 // 로컬 혹은 개발 서브도메인 제거
/* 서브도메인 구분
if (host.startsWith("loc.")) { if (host.startsWith("loc.")) {
host = host.replaceFirst("loc\\.", ""); host = host.replaceFirst("loc\\.", "");
} }
if (host.startsWith("dev.")) { if (host.startsWith("dev.")) {
host = host.replaceFirst("dev\\.", ""); host = host.replaceFirst("dev\\.", "");
} }
*/
// 포트번호 제거 // 포트번호 제거
int portIndex = host.indexOf(":"); int portIndex = host.indexOf(":");

View File

@@ -1,9 +1,9 @@
package com.wb.domainserver.security.config; package com.wb.domainserver.security.config;
import com.wb.domainserver.common.msg.GconeMessageSource; import com.wb.domainserver.common.msg.GconeMessageSource;
import com.wb.domainserver.common.ui.pagination.DefaultPaginationManager; import com.wb.domainserver.common.mvc.tags.ui.pagination.DefaultPaginationManager;
import com.wb.domainserver.common.ui.pagination.ImagePaginationRenderer; import com.wb.domainserver.common.mvc.tags.ui.pagination.ImagePaginationRenderer;
import com.wb.domainserver.common.ui.pagination.PaginationRenderer; import com.wb.domainserver.common.mvc.tags.ui.pagination.PaginationRenderer;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.ReloadableResourceBundleMessageSource; import org.springframework.context.support.ReloadableResourceBundleMessageSource;

View File

@@ -89,7 +89,8 @@ public abstract class CookieUtils {
public static Map<String, String> loginCookiePath(){ public static Map<String, String> loginCookiePath(){
String realm = RealmContextHolder.getRealm().toLowerCase(); String realm = RealmContextHolder.getRealm().toLowerCase();
String ACTPath = "sopmal".equals(realm) ? "/" : "/" + realm; // String ACTPath = "sopmal".equals(realm) ? "/" : "/" + realm;
String ACTPath = "/";
String RFTPath = "/" + realm + "/tokens/refresh"; String RFTPath = "/" + realm + "/tokens/refresh";
return Map.of("ACTPath", ACTPath, "RFTPath", RFTPath); return Map.of("ACTPath", ACTPath, "RFTPath", RFTPath);

View File

@@ -1510,5 +1510,21 @@
AND GD.USE_AT = 'Y' AND GD.USE_AT = 'Y'
</select> </select>
<!--쇼핑몰 정보 테마 포함 조회-->
<select id="selectSopmalList" resultType="DataMap">
SELECT GS.SOPMAL_CD ,
GS.SOPMAL_NM,
GS.SOPMAL_TY_CD ,
GD.TOP_FIL_COURS ,
GD.TOP_SYS_FIL_NM
FROM GC_SHOP GS
LEFT JOIN GC_DESIGN GD
ON GS.SOPMAL_CD = GD.SOPMAL_CD
WHERE 1=1
AND GS.OPER_AT = 'Y'
AND GD.SETUP_DV_CD = '01'
AND GD.USE_AT = 'Y'
</select>
</mapper> </mapper>

View File

@@ -190,10 +190,13 @@
data: JSON.stringify(data), data: JSON.stringify(data),
dataType:"json", dataType:"json",
success: function (data) { success: function (data) {
const result = data.resBody.result.result console.log(data);
console.log(data.resBody.result);
console.log(JSON.parse(data.resBody.result));
const result = JSON.parse(data.resBody.result).result;
if(result ==='success'){ if(result ==='success'){
location.href='/mngr/main' location.href='/mngr/main';
} }
} }
}); });

View File

@@ -50,15 +50,18 @@
<div class="login__logoWrapper"> <div class="login__logoWrapper">
<a href="javascript:void(0);"> <a href="javascript:void(0);">
<img class="login__logo active" src="/login/mngr/images/logo_default.png" alt="gcone"> <img class="login__logo active" src="/login/mngr/images/logo_default.png" alt="gcone">
<img class="login__logo" th:each="site : ${siteList}" th:data-brand="${site.sopmalCd}" <c:forEach var="site" items="${siteList}">
th:src="@{${cdnurl}+${site.topFilCours}+'/'+${site.topSysFilNm}}" th:alt="${site.sopmalNm}"> <img class="login__logo" data-brand="${site.sopmalCd}" src="@{${cdnurl}+${site.topFilCours}+'/'+${site.topSysFilNm}}" alt="${site.sopmalNm}">
</c:forEach>
</a> </a>
<div class="header__siteSelectArrow"><span class="visually-hidden">사이트 선택</span></div> <div class="header__siteSelectArrow"><span class="visually-hidden">사이트 선택</span></div>
<div class="siteSelect"> <div class="siteSelect">
<ul class="siteSelect__list" style="width: 300%"> <ul class="siteSelect__list" style="width: 300%">
<li th:each="site : ${siteList}"> <c:forEach var="site" items="${siteList}">
<button class="siteSelect__btn" th:id="${site.sopmalCd}" th:text="${site.sopmalNm}"></button> <li>
<button class="siteSelect__btn" id="${site.sopmalCd}">${site.sopmalNm}</button>
</li> </li>
</c:forEach>
</ul> </ul>
</div> </div>
</div> </div>
@@ -72,7 +75,7 @@
<input type="hidden" id="sopmalCd" value="${sopmalCd}"> <input type="hidden" id="sopmalCd" value="${sopmalCd}">
<input type="hidden" id="authSopmalCd" value=""> <input type="hidden" id="authSopmalCd" value="">
<input autofocus class="input-text full" name="username" id="username" type="text" title="아이디" placeholder="아이디" <input autofocus class="input-text full" name="username" id="username" type="text" title="아이디" placeholder="아이디"
oninput="fn_hide_alertTxt('username','mbrIdAlertText');"> oninput="fn_hide_alertTxt('username','mbrIdAlertText',event);">
<p class="login__inputBox__alertText" id="mbrIdAlertText">아이디를 입력해 주세요.</p> <p class="login__inputBox__alertText" id="mbrIdAlertText">아이디를 입력해 주세요.</p>
<input class="input-text full" name="password" id="password" type="password" title="패스워드" <input class="input-text full" name="password" id="password" type="password" title="패스워드"
placeholder="비밀번호" onkeyup="fn_hide_alertTxt('password','mbrPwAlertText',event);"> placeholder="비밀번호" onkeyup="fn_hide_alertTxt('password','mbrPwAlertText',event);">
@@ -276,12 +279,12 @@
password: password, password: password,
redirectUri: redirectUri, redirectUri: redirectUri,
accessUrl: accessUrl, accessUrl: accessUrl,
sopmalCd: sopmalCd sopmalCd: sopmalCd,
authSopmalCd:authSopmalCd
}) })
}) })
.then((response) => { .then((response) => {
if (response.ok) { if (response.ok) {
console.log('response', response)
return response.json(); return response.json();
}else{ }else{
switch(response.status){ switch(response.status){
@@ -297,28 +300,27 @@
} }
}) })
.then((data) => { .then((data) => {
console.log('Login successful', data);
let moveTo = redirectUri; let moveTo = redirectUri;
// 로그아웃 상태에서 redirectUri 가 crm 인경우 안먹는 문제 해결 // 로그아웃 상태에서 redirectUri 가 crm 인경우 안먹는 문제 해결
const firstPath = moveTo.split('/')[3]; // "/"를 기준으로 분리 const firstPath = moveTo.split('/')[3]; // "/"를 기준으로 분리
if (firstPath === 'crm') { if (firstPath === 'crm') {
console.log('CRM 페이지로 리다이렉션 처리'); console.debug('CRM 페이지로 리다이렉션 처리');
if(redirectUri === '') moveTo = '/mngr/main?authSopmalCd=\'+authSopmalCd' if(redirectUri === '') moveTo = '/mngr/main?authSopmalCd=\'+authSopmalCd'
const encodedRedirectURL = encodeURIComponent(moveTo); const encodedRedirectURL = encodeURIComponent(moveTo);
window.location.href = '/sso/'+realm+'?redirectUrl='+encodedRedirectURL; window.location.href = '/sso/'+realm+'?redirectUrl='+encodedRedirectURL;
}else{ }else{
if(moveTo.endsWith("/mngr")){ if(authSopmalCd !== '') {
if (moveTo.endsWith("/mngr")) {
moveTo = '/main'; moveTo = '/main?authSopmalCd=' + authSopmalCd;
} else {
moveTo = '/mngr/main?authSopmalCd=' + authSopmalCd;
}else{
moveTo = '/mngr/main';
} }
}else{
window.location.href = moveTo; moveTo = '/mngr/main';
}
const encodedRedirectURL = encodeURIComponent(moveTo);
const encodedAccessUrl = encodeURIComponent(accessUrl);
window.location.href = '/mngr/tokens/refresh?redirect_uri='+encodedRedirectURL+'&authSopmalCd='+authSopmalCd+'&accessUrl='+encodedAccessUrl;
} }
}) })
.catch(error => { .catch(error => {