diff --git a/src/main/java/com/wb/domainserver/domain/admin/user/mngr/vo/BOJobUserVO.java b/src/main/java/com/wb/domainserver/domain/admin/user/mngr/vo/BOJobUserVO.java index d7d26f94..3a9986bd 100644 --- a/src/main/java/com/wb/domainserver/domain/admin/user/mngr/vo/BOJobUserVO.java +++ b/src/main/java/com/wb/domainserver/domain/admin/user/mngr/vo/BOJobUserVO.java @@ -5,8 +5,10 @@ import java.util.List; import com.wb.domainserver.domain.comm.vo.AbstractVO; +import jakarta.validation.constraints.NotBlank; import lombok.Data; import lombok.EqualsAndHashCode; +import org.hibernate.validator.constraints.Length; @Data @EqualsAndHashCode(callSuper = false) @@ -20,6 +22,8 @@ public class BOJobUserVO extends AbstractVO { /** 업무사용자 고유번호 */ private BigInteger mngrInnb; /** 사용자명(관리자명) */ + @NotBlank(message="사용자명") + @Length(min = 1, max = 20, message = "사용자명") private String mngrNm; /** 부서명 */ private String partnm; @@ -31,8 +35,18 @@ public class BOJobUserVO extends AbstractVO { private String email; /** 전화번호 */ private String telnb; + /** 휴대전화번호 */ + @NotBlank(message="휴대전화번호") private String mbtlnb; + + // 데이터 처리 + @NotBlank(message="이메일 아이디") + private String email1; + + @NotBlank(message="이메일 도메인") + private String email2; + /** 사용자구분 01 업무사용자 | 02 시스템운영자 */ private String mngrDv; /** 사용자구분이름 */ @@ -75,10 +89,6 @@ public class BOJobUserVO extends AbstractVO { // 데이터 처리 - /** 앞 이메일 */ - private String email1; - /** 뒤 이메일 */ - private String email2; /** 접속IP 배열 */ private String[] lmttIps; diff --git a/src/main/java/com/wb/domainserver/domain/gcone/ordr/selngpruf/vo/BOSelngprufVO.java b/src/main/java/com/wb/domainserver/domain/gcone/ordr/selngpruf/vo/BOSelngprufVO.java index 473adf57..ade785bf 100644 --- a/src/main/java/com/wb/domainserver/domain/gcone/ordr/selngpruf/vo/BOSelngprufVO.java +++ b/src/main/java/com/wb/domainserver/domain/gcone/ordr/selngpruf/vo/BOSelngprufVO.java @@ -35,6 +35,8 @@ public class BOSelngprufVO extends AbstractVO { /** 현금영수증 취소 구분(전체취소(STSC) / 부분취소(STPC)) */ private String modType; + /** 팝업 플래그 */ + private String flag; /** 리스트 체크박스 선택한 매출증빙고유번호 값 */ private String selngPrufInnbArr[]; diff --git a/src/main/java/com/wb/domainserver/domain/gcone/promtn/coupon/service/BOCouponService.java b/src/main/java/com/wb/domainserver/domain/gcone/promtn/coupon/service/BOCouponService.java index 04b55e73..959e6a5d 100644 --- a/src/main/java/com/wb/domainserver/domain/gcone/promtn/coupon/service/BOCouponService.java +++ b/src/main/java/com/wb/domainserver/domain/gcone/promtn/coupon/service/BOCouponService.java @@ -820,7 +820,7 @@ public class BOCouponService { * @param couponPkSndngVO * @return */ - public Map selectBOCouponPkSndngDtlUpdtInqire(BOCouponPkSndngVO couponPkSndngVO) throws Exception { + public Map selectBOCouponPkSndngDtlUpdtInqire(BOCouponPkSndngVO couponPkSndngVO) { Map content = new HashMap<>(); List couponList = null; BOCouponPkSndngVO result = mapper.selectBOCouponPkSndngDtlUpdtInqire(couponPkSndngVO); diff --git a/src/main/java/com/wb/domainserver/domain/gcone/promtn/coupon/vo/BOCouponPkSndngVO.java b/src/main/java/com/wb/domainserver/domain/gcone/promtn/coupon/vo/BOCouponPkSndngVO.java index 4d921adc..52c0fe5d 100644 --- a/src/main/java/com/wb/domainserver/domain/gcone/promtn/coupon/vo/BOCouponPkSndngVO.java +++ b/src/main/java/com/wb/domainserver/domain/gcone/promtn/coupon/vo/BOCouponPkSndngVO.java @@ -2,6 +2,7 @@ package com.wb.domainserver.domain.gcone.promtn.coupon.vo; import com.wb.domainserver.domain.comm.vo.AbstractVO; +import jakarta.validation.constraints.NotBlank; import lombok.Data; import lombok.EqualsAndHashCode; @@ -54,8 +55,10 @@ public class BOCouponPkSndngVO extends AbstractVO { /** 쿠폰발송유형 */ private String couponSndngTy; /** 쿠폰발송명 */ + @NotBlank(message = "쿠폰발송명") private String couponSndngNm; /** 쿠폰발송설명 */ + @NotBlank(message = "쿠폰발송설명") private String couponSndngDc; /** 쿠폰발송 사용여부 */ private String couponSndngUseAt; diff --git a/src/main/java/com/wb/domainserver/domain/gcone/promtn/coupon/vo/BOCouponVO.java b/src/main/java/com/wb/domainserver/domain/gcone/promtn/coupon/vo/BOCouponVO.java index 1e7ddc56..cc6b6467 100644 --- a/src/main/java/com/wb/domainserver/domain/gcone/promtn/coupon/vo/BOCouponVO.java +++ b/src/main/java/com/wb/domainserver/domain/gcone/promtn/coupon/vo/BOCouponVO.java @@ -1,6 +1,7 @@ package com.wb.domainserver.domain.gcone.promtn.coupon.vo; import com.wb.domainserver.domain.comm.vo.AbstractVO; +import jakarta.validation.constraints.NotBlank; import lombok.Data; import lombok.EqualsAndHashCode; @@ -52,8 +53,10 @@ public class BOCouponVO extends AbstractVO { /** 쇼핑몰 코드 */ private String sopmalCd; /** 쿠폰명 */ + @NotBlank(message = "쿠폰명") private String coupNm; /** 쿠폰 설명 */ + @NotBlank(message = "쿠폰설명") private String couponDc; /** 사용환경코드 */ private String useEnvrnCd; diff --git a/src/main/java/com/wb/domainserver/domain/gcone/promtn/coupon/vo/BOCupnpkVO.java b/src/main/java/com/wb/domainserver/domain/gcone/promtn/coupon/vo/BOCupnpkVO.java index d4da2e17..fa846610 100644 --- a/src/main/java/com/wb/domainserver/domain/gcone/promtn/coupon/vo/BOCupnpkVO.java +++ b/src/main/java/com/wb/domainserver/domain/gcone/promtn/coupon/vo/BOCupnpkVO.java @@ -2,6 +2,7 @@ package com.wb.domainserver.domain.gcone.promtn.coupon.vo; import com.wb.domainserver.domain.comm.vo.AbstractVO; +import jakarta.validation.constraints.NotBlank; import lombok.Data; import lombok.EqualsAndHashCode; @@ -42,8 +43,10 @@ public class BOCupnpkVO extends AbstractVO { private String couponSopmalCd; /** 쿠폰팩 명 */ + @NotBlank(message = "쿠폰팩명") private String cupnpkNm; /** 쿠폰팩 설명 */ + @NotBlank(message = "쿠폰팩설명") private String cupnpkDc; /** 쿠폰팩 사용여부 */ private String cupnpkUseAt; diff --git a/src/main/java/com/wb/domainserver/domain/gcone/promtn/purchs/vo/BOPurchsEvtVO.java b/src/main/java/com/wb/domainserver/domain/gcone/promtn/purchs/vo/BOPurchsEvtVO.java index eb23648c..de96ad94 100644 --- a/src/main/java/com/wb/domainserver/domain/gcone/promtn/purchs/vo/BOPurchsEvtVO.java +++ b/src/main/java/com/wb/domainserver/domain/gcone/promtn/purchs/vo/BOPurchsEvtVO.java @@ -5,6 +5,7 @@ import java.util.List; import com.wb.domainserver.domain.comm.vo.AbstractVO; +import jakarta.validation.constraints.NotBlank; import lombok.Data; import lombok.EqualsAndHashCode; @@ -45,9 +46,10 @@ public class BOPurchsEvtVO extends AbstractVO { private String bbscttInnb; /** 이벤트 구분 */ private String evtDv; - /** 이벤트명 */ + /** 이벤트명 */ + @NotBlank(message = "이벤트명") private String evtnm; - /** 이벤트시작일시 */ + /** 이벤트시작일시 */ private String evtBgnDt; /** 이벤트종료일시 */ private String evtEndDt; diff --git a/src/main/java/com/wb/domainserver/domain/gcone/setup/dlvygrp/vo/BODlvygrpVO.java b/src/main/java/com/wb/domainserver/domain/gcone/setup/dlvygrp/vo/BODlvygrpVO.java index 88225916..a82c4287 100644 --- a/src/main/java/com/wb/domainserver/domain/gcone/setup/dlvygrp/vo/BODlvygrpVO.java +++ b/src/main/java/com/wb/domainserver/domain/gcone/setup/dlvygrp/vo/BODlvygrpVO.java @@ -2,8 +2,10 @@ package com.wb.domainserver.domain.gcone.setup.dlvygrp.vo; import com.wb.domainserver.domain.comm.vo.AbstractVO; +import jakarta.validation.constraints.NotBlank; import lombok.Data; import lombok.EqualsAndHashCode; +import org.hibernate.validator.constraints.Length; @Data @EqualsAndHashCode(callSuper = false) @@ -19,8 +21,10 @@ public class BODlvygrpVO extends AbstractVO { /** 배송그룹 구분 */ private String dlvyGroupDvCd; - + /** 배송그룹 이름 */ + @NotBlank(message = "배송그룹명(명칭)") + @Length(min=1, max=50, message = "배송그룹명(명칭)") private String dlvyGroupNm; /** 기본배송비 */ @@ -62,6 +66,7 @@ public class BODlvygrpVO extends AbstractVO { private String rtnlcAdres; /** 반송지 상세주소 */ + @Length(min=0, max=100, message = "반송지(상세주소)") private String rtnlcDtlAdres; /** 반송지 전화번호 */ diff --git a/src/main/java/com/wb/domainserver/domain/gcone/setup/gradbnef/vo/BOGradbnefVO.java b/src/main/java/com/wb/domainserver/domain/gcone/setup/gradbnef/vo/BOGradbnefVO.java index 49666039..a94f4187 100644 --- a/src/main/java/com/wb/domainserver/domain/gcone/setup/gradbnef/vo/BOGradbnefVO.java +++ b/src/main/java/com/wb/domainserver/domain/gcone/setup/gradbnef/vo/BOGradbnefVO.java @@ -4,6 +4,7 @@ import com.wb.domainserver.domain.comm.vo.AbstractVO; import lombok.Data; import lombok.EqualsAndHashCode; +import org.hibernate.validator.constraints.Length; import java.util.List; @@ -41,10 +42,13 @@ public class BOGradbnefVO extends AbstractVO { /** 등급명 */ private String gradNm; /** 마일리지적립금액 */ + @Length(min=0, max=13) private String mlgAccmlAmt; /** 마일리지최대적립금액 */ + @Length(min=0, max=13) private String mlgMxmmAccmlAmt; /** 마일리지 유효 월 수 */ + @Length(min=0, max=2) private String mlgValidMtCnt; /** 구매건수 */ private String purchsCnt; diff --git a/src/main/java/com/wb/domainserver/domain/gcone/setup/nbkk/vo/BOSetupNbkkVO.java b/src/main/java/com/wb/domainserver/domain/gcone/setup/nbkk/vo/BOSetupNbkkVO.java index e65fbbd4..c49e9fb9 100644 --- a/src/main/java/com/wb/domainserver/domain/gcone/setup/nbkk/vo/BOSetupNbkkVO.java +++ b/src/main/java/com/wb/domainserver/domain/gcone/setup/nbkk/vo/BOSetupNbkkVO.java @@ -5,7 +5,9 @@ import java.util.List; import com.wb.domainserver.domain.comm.vo.AbstractVO; +import jakarta.validation.Valid; import lombok.Data; +import lombok.EqualsAndHashCode; /** * 무통장 설정 VO @@ -25,6 +27,7 @@ import lombok.Data; * */ @Data +@EqualsAndHashCode(callSuper=false) public class BOSetupNbkkVO extends AbstractVO { private static final long serialVersionUID = 1L; /** 쇼핑몰 코드 */ @@ -42,6 +45,7 @@ public class BOSetupNbkkVO extends AbstractVO { /*사용여부*/ private String useAt; + @Valid private List nbkkInfo; /*무통장설정 고유번호*/ private BigInteger acntSetupInnb; diff --git a/src/main/java/com/wb/domainserver/domain/gcone/setup/popup/vo/BOPopupVO.java b/src/main/java/com/wb/domainserver/domain/gcone/setup/popup/vo/BOPopupVO.java index be4c83ea..89d41592 100644 --- a/src/main/java/com/wb/domainserver/domain/gcone/setup/popup/vo/BOPopupVO.java +++ b/src/main/java/com/wb/domainserver/domain/gcone/setup/popup/vo/BOPopupVO.java @@ -5,6 +5,8 @@ import java.util.List; import com.wb.domainserver.domain.comm.vo.AbstractVO; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import lombok.Data; import lombok.EqualsAndHashCode; @@ -12,40 +14,56 @@ import lombok.EqualsAndHashCode; @EqualsAndHashCode(callSuper = false) public class BOPopupVO extends AbstractVO { - /** 타이머 노출 여부 */ + /** 타이머 노출 여부 */ + @NotNull(message = "타이머 노출 여부") private String tmeSetupAt; + // "타이머" + private String datepicker_3; /** 시간설정 */ private String tmeSetup; - /** 모바일 팝업크기 가로 */ + + /** 모바일 팝업크기 가로 */ + @NotNull(message = "모바일 팝업크기 가로") private Integer mblPopupMgWth; /** 모바일 팝업크기 세로 */ + @NotNull(message = "모바일 팝업크기 세로") private Integer mblPopupMgVtc; /** 모바일 팝업위치 X */ + @NotNull(message = "모바일 팝업위치 X") private Integer mblPopupLcX; /** 모바일 팝업위치 Y */ + @NotNull(message = "모바일 팝업위치 Y") private Integer mblPopupLcY; /** 팝업 고유번호 */ private Integer popupInnb; - /** 쇼핑몰 코드*/ - private String sopmalCd; /** 팝업 이름 */ + @NotBlank(message = "팝업 제목") private String popupNm; + /** 쇼핑몰코드 */ + private String sopmalCd; /** 팝업노출 시작일시 */ + @NotBlank(message = "팝업 시작 기간") private String popupExpsrBgnDt; /** 팝업노출 종료일시 */ + @NotBlank(message = "팝업 종료 기간") private String popupExpsrEndDt; /** 연결URL */ private String cnncUrl; /** 팝업크기 가로 */ + @NotNull(message = "팝업크기 가로") private Integer popupMgWth; /** 팝업크기 세로 */ + @NotNull(message = "팝업크기 세로") private Integer popupMgVtc; /** 팝업위치 X */ + @NotNull(message = "팝업위치 X") private Integer popupLcX; /** 팝업위치 Y */ + @NotNull(message = "팝업위치 Y") private Integer popupLcY; + /** 노출여부 */ private String expsrAt; @@ -63,6 +81,11 @@ public class BOPopupVO extends AbstractVO { /** 파일정보 */ private List> fileInfo; + @NotBlank(message = "파일 시작 기간") + private String datepicker_1; + @NotBlank(message = "파일 종료 기간") + private String datepicker_2; + /*상품 추가 여부*/ private String fileAddAt; } diff --git a/src/main/java/com/wb/domainserver/domain/gcone/setup/site/service/BOSiteService.java b/src/main/java/com/wb/domainserver/domain/gcone/setup/site/service/BOSiteService.java index 93a7875f..8c262bb0 100644 --- a/src/main/java/com/wb/domainserver/domain/gcone/setup/site/service/BOSiteService.java +++ b/src/main/java/com/wb/domainserver/domain/gcone/setup/site/service/BOSiteService.java @@ -712,7 +712,7 @@ public class BOSiteService { * @return */ @Transactional - public Map updateBOSiteContentItemManage(BOSiteVO siteVO) throws Exception { + public Map updateBOSiteContentItemManage(BOSiteVO siteVO) { Map message = new HashMap<>(); diff --git a/src/main/java/com/wb/domainserver/domain/gcone/setup/site/vo/BOGoodsgrpVO.java b/src/main/java/com/wb/domainserver/domain/gcone/setup/site/vo/BOGoodsgrpVO.java index 941cbf49..6e6414a3 100644 --- a/src/main/java/com/wb/domainserver/domain/gcone/setup/site/vo/BOGoodsgrpVO.java +++ b/src/main/java/com/wb/domainserver/domain/gcone/setup/site/vo/BOGoodsgrpVO.java @@ -2,6 +2,7 @@ package com.wb.domainserver.domain.gcone.setup.site.vo; import com.wb.domainserver.domain.comm.vo.AbstractVO; +import jakarta.validation.constraints.NotBlank; import lombok.Data; import lombok.EqualsAndHashCode; @@ -12,9 +13,10 @@ public class BOGoodsgrpVO extends AbstractVO { private static final long serialVersionUID = 1L; /** 상품그룹 고유번호 */ - private Integer goodsGroupInnb; - - /** 상품그룹명 */ + private Integer goodsGroupInnb; + + /** 상품그룹명 */ + @NotBlank(message = "상품그룹명(명칭)") private String goodsGroupNm; /** 쇼핑몰코드 */ diff --git a/src/main/java/com/wb/domainserver/domain/gcone/setup/site/vo/BOSiteVO.java b/src/main/java/com/wb/domainserver/domain/gcone/setup/site/vo/BOSiteVO.java index 9f010823..9c350dd7 100644 --- a/src/main/java/com/wb/domainserver/domain/gcone/setup/site/vo/BOSiteVO.java +++ b/src/main/java/com/wb/domainserver/domain/gcone/setup/site/vo/BOSiteVO.java @@ -5,6 +5,7 @@ import java.util.List; import com.wb.domainserver.domain.comm.vo.AbstractVO; +import jakarta.validation.constraints.NotBlank; import lombok.Data; import lombok.EqualsAndHashCode; @@ -55,6 +56,7 @@ public class BOSiteVO extends AbstractVO { private String setupDvCd; /** 메인화면 중단 설정 명 */ + @NotBlank(message = "메인화면 설정 명") private String mainSiteNm; diff --git a/src/main/java/com/wb/domainserver/domain/mngr/ordr/selngpruf/controller/SelngprufController.java b/src/main/java/com/wb/domainserver/domain/mngr/ordr/selngpruf/controller/SelngprufController.java index 76ddc4be..7fc51ec3 100644 --- a/src/main/java/com/wb/domainserver/domain/mngr/ordr/selngpruf/controller/SelngprufController.java +++ b/src/main/java/com/wb/domainserver/domain/mngr/ordr/selngpruf/controller/SelngprufController.java @@ -1,19 +1,24 @@ package com.wb.domainserver.domain.mngr.ordr.selngpruf.controller; import com.wb.domainserver.common.msg.GconeMessageSource; -import com.wb.domainserver.domain.mngr.ordr.selngpruf.vo.SelngPrufVO; +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.ordr.selngpruf.service.BOSelngprufService; +import com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO; import com.wb.domainserver.exception.WnbtRestException; import com.wb.domainserver.response.WnbtResponse; -import com.wb.domainserver.response.WnbtWebClientResponseHandler; +import com.wb.domainserver.response.WnbtResponseBody; +import com.wb.domainserver.security.authentication.AnonymousUser; +import com.wb.domainserver.security.authentication.MemberJwtContextHolder; import com.wb.domainserver.security.authorization.annotation.AuthPolicy; import com.wb.domainserver.security.authorization.annotation.Policy; -import com.wb.domainserver.util.communicate.RESRC; -import com.wb.domainserver.util.communicate.ReplyFromResrc; import com.wb.domainserver.util.communicate.SendToResrc; +import com.wb.domainserver.util.dataaccess.DataMap; import com.wb.domainserver.util.excel.ExcelDownloadUtil; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -59,7 +64,11 @@ public class SelngprufController { private GconeMessageSource gconeMessageSource; @Autowired - private WnbtWebClientResponseHandler responseHandler;; + private BOSelngprufService service; + + @Autowired + private BOMaComncdService bOMaComncdService; + /** * 매출증빙 화면 이동 @@ -68,15 +77,39 @@ public class SelngprufController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectSelngPrufListInqireForm") - public String selectSelngPrufListInqireForm(SelngPrufVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { - + public String selectSelngPrufListInqireForm(BOSelngprufVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { vo.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/selngpruf/selectBOSelngPrufListInqireForm", vo), - model, - "resultMap" - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); +// log.debug("SopmalCd : "+user.getSopmalCd()); +// vo.setSopmalCd(user.getSopmalCd()); + + + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + + // 응답 메세지 객체 + Map content = new HashMap<>(); + + // 공통코드 호출 + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + bOMaComncdVO.setGroupCd("REQST_DV"); // 신청구분코드 + List reqstDvList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + bOMaComncdVO.setGroupCd("ISSU_STTUS"); // 발급상태코드 + List issuSttusList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + content.put("paramVO", vo); + content.put("reqstDvList", reqstDvList); + content.put("issuSttusList", issuSttusList); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/selngpruf/selectBOSelngPrufListInqireForm", vo), +// model, +// "resultMap" +// ); return "mngr/ordr/selngpruf/SelngPrufListInqireForm"; } @@ -88,15 +121,40 @@ public class SelngprufController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectSelngPrufListInqire") - public String selectSelngPrufListInqire(SelngPrufVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { + public String selectSelngPrufListInqire(BOSelngprufVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { vo.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/selngpruf/selectBOSelngPrufListInqire", vo), - model, - "resultMap" - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); +// log.debug("SopmalCd : "+user.getSopmalCd()); +// vo.setSopmalCd(user.getSopmalCd()); + + + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + + // 응답 메세지 객체 + Map content = new HashMap<>(); + + // 공통코드 호출 + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + bOMaComncdVO.setGroupCd("REQST_DV"); // 신청구분코드 + List reqstDvList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + bOMaComncdVO.setGroupCd("ISSU_STTUS"); // 발급상태코드 + List issuSttusList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + content.put("paramVO", vo); + content.put("reqstDvList", reqstDvList); + content.put("issuSttusList", issuSttusList); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/selngpruf/selectBOSelngPrufListInqire", vo), +// model, +// "resultMap" +// ); return "mngr/ordr/selngpruf/SelngPrufListInqire"; } @@ -108,15 +166,29 @@ public class SelngprufController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectSelngPrufMngrMemoRegistPopupForm" , method = RequestMethod.GET) - public String selectSelngPrufMngrMemoRegistPopupForm(SelngPrufVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + public String selectSelngPrufMngrMemoRegistPopupForm(BOSelngprufVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ vo.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/selngpruf/selectBOSelngPrufMngrMemoRegistPopupForm", vo), - model, - "resultMap" - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); +// log.debug("SopmalCd : "+user.getSopmalCd()); +// vo.setSopmalCd(user.getSopmalCd()); + + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + + DataMap result = service.selectBOSelngPrufMngrMemoRegistPopupForm(vo); + + Map content = new HashMap<>(); + content.put("result", result); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/selngpruf/selectBOSelngPrufMngrMemoRegistPopupForm", vo), +// model, +// "resultMap" +// ); return "mngr/ordr/selngpruf/SelngPrufMngrMemoRegistPopup"; } @@ -127,15 +199,31 @@ public class SelngprufController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/updateSelngPrufMngrMemoUpdt") - public ResponseEntity updateSelngPrufMngrMemoUpdt(SelngPrufVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){ - + @RequestMapping(value="/updateSelngPrufMngrMemoUpdt", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateSelngPrufMngrMemoUpdt(BOSelngprufVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){ vo.setSopmalCd(authSopmalCd); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/selngpruf/updateBOSelngPrufMngrMemoRegistPopup", vo), - ReplyFromResrc::getReply - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); +// log.debug("SopmalCd : "+user.getSopmalCd()); +// vo.setSopmalCd(user.getSopmalCd()); + + vo.setUpdusr(user.getUserInnb()); + + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + + Map message = service.updateBOSelngPrufMngrMemoRegistPopup(vo); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() + ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/selngpruf/updateBOSelngPrufMngrMemoRegistPopup", vo), +// ReplyFromResrc::getReply +// ); } /** @@ -145,15 +233,29 @@ public class SelngprufController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectSelngPrufTrnsmisLogPopupForm") - public String selectSelngPrufTrnsmisLogPopupForm(SelngPrufVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + public String selectSelngPrufTrnsmisLogPopupForm(BOSelngprufVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ vo.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/selngpruf/selectBOSelngPrufTrnsmisLogInqire", vo), - model, - "resultMap" - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); +// log.debug("SopmalCd : "+user.getSopmalCd()); +// vo.setSopmalCd(user.getSopmalCd()); + + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + + List resultList = service.selectBOSelngPrufTrnsmisLogInqire(vo); + + Map content = new HashMap<>(); + content.put("resultList", resultList); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/selngpruf/selectBOSelngPrufTrnsmisLogInqire", vo), +// model, +// "resultMap" +// ); return "mngr/ordr/selngpruf/SelngPrufTrnsmisLogPopupR"; } @@ -166,15 +268,29 @@ public class SelngprufController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectCshRcipt") - public String selectCshRcipt(SelngPrufVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + public String selectCshRcipt(BOSelngprufVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ vo.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/selngpruf/selectBOCshRcipt", vo), - model, - "resultMap" - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); +// log.debug("SopmalCd : "+user.getSopmalCd()); +// vo.setSopmalCd(user.getSopmalCd()); + + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + + DataMap result = service.selectBOCshRcipt(vo); + + Map content = new HashMap<>(); + content.put("result", result); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/selngpruf/selectBOCshRcipt", vo), +// model, +// "resultMap" +// ); return "mngr/ordr/selngpruf/CshRciptInqirePopupR"; } @@ -186,15 +302,28 @@ public class SelngprufController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectCshRciptRegistPopupForm" , method = RequestMethod.GET) - public String selectCshRciptRegistPopupForm(SelngPrufVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ - + public String selectCshRciptRegistPopupForm(BOSelngprufVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ vo.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/selngpruf/selectBOCshRcipt", vo), - model, - "resultMap" - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); +// log.debug("SopmalCd : "+user.getSopmalCd()); +// vo.setSopmalCd(user.getSopmalCd()); + + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + + DataMap result = service.selectBOCshRcipt(vo); + + Map content = new HashMap<>(); + content.put("result", result); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/selngpruf/selectBOCshRcipt", vo), +// model, +// "resultMap" +// ); model.addAttribute("flag", vo.getFlag()); @@ -207,15 +336,31 @@ public class SelngprufController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/updateCshRcipt" , method = RequestMethod.POST) - public ResponseEntity updateCshRcipt(SelngPrufVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){ - + @RequestMapping(value="/updateCshRcipt" , method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateCshRcipt(BOSelngprufVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){ vo.setSopmalCd(authSopmalCd); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/selngpruf/updateBOCshRcipt", vo), - ReplyFromResrc::getReply - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); +// log.debug("SopmalCd : "+user.getSopmalCd()); +// vo.setSopmalCd(user.getSopmalCd()); + + vo.setUpdusr(user.getUserInnb()); + + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + + Map message = service.updateBOCshRcipt(vo); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() + ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/selngpruf/updateBOCshRcipt", vo), +// ReplyFromResrc::getReply +// ); } /** @@ -224,15 +369,31 @@ public class SelngprufController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/insertCshRciptRegist", method = RequestMethod.POST) - public ResponseEntity insertCshRciptRegist(SelngPrufVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){ - + @RequestMapping(value="/insertCshRciptRegist", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity insertCshRciptRegist(BOSelngprufVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){ vo.setSopmalCd(authSopmalCd); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/selngpruf/insertBOCshRciptRegist", vo), - ReplyFromResrc::getReply - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); +// log.debug("SopmalCd : "+user.getSopmalCd()); +// vo.setSopmalCd(user.getSopmalCd()); + + vo.setUpdusr(user.getUserInnb()); + + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + + Map message = service.insertBOCshRciptRegist(vo); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() + ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/selngpruf/insertBOCshRciptRegist", vo), +// ReplyFromResrc::getReply +// ); } /** @@ -242,15 +403,27 @@ public class SelngprufController { * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value = "/updateCashReceiptRegist") - public ResponseEntity updateCashReceiptRegist(SelngPrufVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + @RequestMapping(value = "/updateCashReceiptRegist", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateCashReceiptRegist(BOSelngprufVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + vo.setSopmalCd(authSopmalCd); - vo.setSopmalCd(authSopmalCd); //인증번호, 주문번호 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/selngpruf/updateCashReceipt", vo), - ReplyFromResrc::getReply + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + + Map message = service.updateCashReceipt(vo); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/selngpruf/updateCashReceipt", vo), +// ReplyFromResrc::getReply +// ); } /** @@ -260,13 +433,25 @@ public class SelngprufController { */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value="/excelFileDownload", method = RequestMethod.POST) - public void excelFileDownload(SelngPrufVO vo, HttpServletResponse response, @CookieValue(value = "authSopmalCd") String authSopmalCd){ - + public void excelFileDownload(BOSelngprufVO vo, HttpServletResponse response, @CookieValue(value = "authSopmalCd") String authSopmalCd){ vo.setSopmalCd(authSopmalCd); - Map resultMap = responseHandler.handleResponseAsMap( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/selngpruf/excelFileDownload",vo) - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + + DataMap resultMap = new DataMap(); + List resExcelList = new ArrayList<>(); + + resExcelList = service.selectBOSopmalExcelList(vo); + + resultMap.put("excelList", resExcelList); + +// Map resultMap = responseHandler.handleResponseAsMap( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/selngpruf/excelFileDownload",vo) +// ); List> excelList = new ArrayList<>(); @@ -374,15 +559,32 @@ public class SelngprufController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/selectSopmalSetleSetup", method = RequestMethod.GET) - public ResponseEntity selectSopmalSetleSetup(SelngPrufVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + @RequestMapping(value="/selectSopmalSetleSetup", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity selectSopmalSetleSetup(BOSelngprufVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){ vo.setSopmalCd(authSopmalCd); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/selngpruf/selectBOSopmalSetleSetup", vo), - ReplyFromResrc::getReply - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + + BOSelngprufVO result = service.selectBOSopmalSetleSetup(vo); + + Map content = new HashMap<>(); + content.put("mid", result.getMid()); + content.put("pgCmpnyNm", result.getPgCmpnyNm()); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() + ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/selngpruf/selectBOSopmalSetleSetup", vo), +// ReplyFromResrc::getReply +// ); } diff --git a/src/main/java/com/wb/domainserver/domain/mngr/promtn/coupon/controller/CouponController.java b/src/main/java/com/wb/domainserver/domain/mngr/promtn/coupon/controller/CouponController.java index e2e62573..a0ce9cd7 100644 --- a/src/main/java/com/wb/domainserver/domain/mngr/promtn/coupon/controller/CouponController.java +++ b/src/main/java/com/wb/domainserver/domain/mngr/promtn/coupon/controller/CouponController.java @@ -1,6 +1,26 @@ package com.wb.domainserver.domain.mngr.promtn.coupon.controller; import com.wb.domainserver.common.msg.GconeMessageSource; +import com.wb.domainserver.common.mvc.tags.ui.pagination.PaginationInfo; +import com.wb.domainserver.common.prop.PaginationProperties; +import com.wb.domainserver.domain.admin.sys.comncd.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.common.service.BOCommonService; +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.ntcn.mssage.service.BOMssageService; +import com.wb.domainserver.domain.gcone.ntcn.tmplt.mapper.BOTmpltMapper; +import com.wb.domainserver.domain.gcone.ntcn.tmplt.vo.BOTmpltVO; +import com.wb.domainserver.domain.gcone.promtn.coupon.mapper.BOCouponMapper; +import com.wb.domainserver.domain.gcone.promtn.coupon.service.BOCouponService; +import com.wb.domainserver.domain.gcone.promtn.coupon.vo.BOCouponPkSndngVO; +import com.wb.domainserver.domain.gcone.promtn.coupon.vo.BOCouponVO; +import com.wb.domainserver.domain.gcone.promtn.coupon.vo.BOCupnpkVO; +import com.wb.domainserver.domain.gcone.promtn.coupon.vo.BODwldCouponVO; +import com.wb.domainserver.domain.gcone.setup.gradbnef.mapper.BOGradbnefMapper; +import com.wb.domainserver.domain.gcone.setup.gradbnef.service.BOGradbnefService; +import com.wb.domainserver.domain.gcone.setup.gradbnef.vo.BOGradbnefVO; import com.wb.domainserver.domain.mngr.goods.goodsmngr.vo.GoodsmngrVO; import com.wb.domainserver.domain.mngr.promtn.coupon.vo.CouponPkSndngVO; import com.wb.domainserver.domain.mngr.promtn.coupon.vo.CouponVO; @@ -8,17 +28,22 @@ import com.wb.domainserver.domain.mngr.promtn.coupon.vo.CupnpkVO; import com.wb.domainserver.domain.mngr.promtn.coupon.vo.DwldCouponVO; import com.wb.domainserver.exception.WnbtRestException; import com.wb.domainserver.response.WnbtResponse; +import com.wb.domainserver.response.WnbtResponseBody; import com.wb.domainserver.response.WnbtWebClientResponseHandler; +import com.wb.domainserver.security.authentication.AnonymousUser; +import com.wb.domainserver.security.authentication.MemberJwtContextHolder; import com.wb.domainserver.security.authorization.annotation.AuthPolicy; import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.util.communicate.RESRC; import com.wb.domainserver.util.communicate.ReplyFromResrc; import com.wb.domainserver.util.communicate.SendToResrc; import com.wb.domainserver.util.communicate.ValidateResultConverter; +import com.wb.domainserver.util.dataaccess.DataMap; import com.wb.domainserver.util.excel.ExcelDownloadUtil; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -65,6 +90,31 @@ public class CouponController { private GconeMessageSource gconeMessageSource; + @Autowired + private BOCouponService service; + + @Autowired + private BOCouponMapper mapper; + + @Autowired + private BOGradbnefService gradService; + + @Autowired + private BOTmpltMapper tmpltMapper; + + @Autowired + private BOMaComncdService bOMaComncdService; + + @Autowired + private PaginationProperties paginationProperties; + + @Autowired + private BOMaCtgryService boMaCtgryService; + + @Autowired + private BOCommonService commonService; + + /** * 쿠폰 목록 화면 이동 * @@ -74,13 +124,41 @@ public class CouponController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectCouponListInqireForm") - public String selectCouponListInqireForm(CouponVO couponVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + public String selectCouponListInqireForm(BOCouponVO couponVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ couponVO.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponListInqireForm", couponVO), - model, - "resultMap" - ); + + Map content = new HashMap<>(); + log.debug("*****pageunit : {}", paginationProperties.getPageUnit()); + log.debug("pageIndex is {}", couponVO.getPageIndex()); + log.debug("couponVO : {}", couponVO); + + // 공통코드 호출 + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + bOMaComncdVO.setGroupCd("BNEF_DV"); // 쿠폰 혜택 구분 코드 + List benfDvList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("USE_ENVRN"); // 쿠폰 사용환경 구분 코드 + List useEnvrnCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + log.debug("사용 환경 구분 코드 확인 : {}", useEnvrnCdList); + + // 쇼핑몰 이름 + List sopmalList = service.selectBOSopmalNmListInqire(couponVO); + content.put("sopmalList", sopmalList); + log.debug("BO C sopmalList is {}", sopmalList); + + // 맵에 페이징 정보와 리스트를 넣어줌 + content.put("paramVO", couponVO); + content.put("benfDvCdList", benfDvList); + content.put("useEnvrnCdList", useEnvrnCdList); + + log.debug("couponVO is {}", couponVO); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponListInqireForm", couponVO), +// model, +// "resultMap" +// ); return "mngr/promtn/coupon/CouponListRForm"; } @@ -89,19 +167,63 @@ public class CouponController { /** * 쿠폰 목록 조회 * - * @param CouponVO couponVO - * @param ModelMap model + * @param couponVO + * @param model * @return CouponListR.jsp ( 쿠폰 목록 ) */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectCouponListInqire") - public String selectCouponListInqire(CouponVO couponVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + public String selectCouponListInqire(BOCouponVO couponVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ couponVO.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponListInqire", couponVO), - model, - "resultMap" - ); + + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + couponVO.setSopmalCd(user.getSopmalCd()); + } + + Map content = new HashMap<>(); + log.debug("*****pageunit : {}", paginationProperties.getPageUnit()); + log.debug("couponVO : {}", couponVO); + log.debug("pageIndex is {}", couponVO.getPageIndex()); + + // 페이징 객체 생성 & 페이징정보 할당 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(couponVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(couponVO.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + + couponVO.setPaginationInfo(paginationInfo); + couponVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + couponVO.setLastIndex(paginationInfo.getLastRecordIndex()); + couponVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + // 쿠폰 목록 조회 + List resultList = service.selectBOCouponListInqire(couponVO); + log.debug("resultList is {}", resultList); + + // 공통코드 호출 + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + bOMaComncdVO.setGroupCd("BNEF_DV"); // 쿠폰 혜택 구분 코드 + List benfDvList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("USE_ENVRN"); // 쿠폰 사용환경 구분 코드 + List useEnvrnCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + + // 맵에 페이징 정보와 리스트를 넣어줌 + content.put("paramVO", couponVO); + content.put("resultList", resultList); + content.put("paginationInfo", couponVO.getPaginationInfo()); + content.put("benfDvCdList", benfDvList); + content.put("useEnvrnCdList", useEnvrnCdList); + + log.debug("couponVO is {}", couponVO); + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponListInqire", couponVO), +// model, +// "resultMap" +// ); return "mngr/promtn/coupon/CouponListR"; } @@ -110,37 +232,62 @@ public class CouponController { /** * 쿠폰 논리 삭제 * - * @param CouponVO couponVO + * @param couponVO * @return ResponseEntity 쿠폰 삭제 결과 */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/deleteCouponDel", method = RequestMethod.POST) - public ResponseEntity deleteCouponDel(CouponVO couponVO, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + @RequestMapping(value = "/deleteCouponDel", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity deleteCouponDel(BOCouponVO couponVO, @CookieValue(value = "authSopmalCd") String authSopmalCd){ couponVO.setSopmalCd(authSopmalCd); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/deleteBOCouponDel", couponVO), - ReplyFromResrc::getReply + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + couponVO.setSopmalCd(user.getSopmalCd()); + } + couponVO.setUpdusr(user.getUserInnb()); // 수정자 + + log.debug("deleteBOCouponDel() couponVO is {}", couponVO); + + // 삭제 결과 메시지 반환 + Map message = service.deleteBOCouponDel(couponVO); + log.debug("message", message); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/deleteBOCouponDel", couponVO), +// ReplyFromResrc::getReply +// ); } /** * 인증번호 보기 모달 목록 폼 * - * @param CouponVO couponVO - * @param ModelMap model + * @param couponVO + * @param model * @return CouponRegistC.jsp ( 쿠폰 등록 화면 ) */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectOfflineCouponCrtnbListInqireForm") - public String selectOfflineCouponCrtnbListInqireForm(CouponVO couponVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + public String selectOfflineCouponCrtnbListInqireForm(BOCouponVO couponVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ couponVO.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectOfflineCouponCrtnbListInqireForm", couponVO), - model, - "resultMap" - ); + + Map content = new HashMap<>(); + log.debug("couponVO : {}", couponVO); + + content.put("paramVO", couponVO); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectOfflineCouponCrtnbListInqireForm", couponVO), +// model, +// "resultMap" +// ); model.addAttribute("searchForm", couponVO); return "mngr/promtn/coupon/OfflineCouponListRForm"; @@ -150,19 +297,46 @@ public class CouponController { /** * 인증번호 보기 모달 목록 조회 * - * @param CouponVO couponVO - * @param ModelMap model + * @param couponVO + * @param model * @return CouponRegistC.jsp ( 쿠폰 등록 화면 ) */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectOfflineCouponCrtnbListInqire") - public String selectOfflineCouponCrtnbListInqire(CouponVO couponVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + public String selectOfflineCouponCrtnbListInqire(BOCouponVO couponVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ couponVO.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOOfflineCouponCrtnbListInqire", couponVO), - model, - "resultMap" - ); + + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + couponVO.setSopmalCd(user.getSopmalCd()); + } + + Map content = new HashMap<>(); + log.debug("couponVO : {}", couponVO); + + // 페이징 객체 생성 & 페이징정보 할당 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(couponVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(20); // 인증번호 목록 AS-IS 기준 20개 고정 + paginationInfo.setPageSize(paginationProperties.getPageSize()); + + couponVO.setPaginationInfo(paginationInfo); + couponVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + couponVO.setLastIndex(paginationInfo.getLastRecordIndex()); + couponVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + List resultList = service.selectBOOfflineCouponCrtnbListInqire(couponVO); + content.put("resultList", resultList); + content.put("paginationInfo", couponVO.getPaginationInfo()); + content.put("paramVO", couponVO); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOOfflineCouponCrtnbListInqire", couponVO), +// model, +// "resultMap" +// ); model.addAttribute("searchForm", couponVO); return "mngr/promtn/coupon/OfflineCouponListR"; @@ -171,43 +345,107 @@ public class CouponController { /** * 인증번호 생성 - * @param couponVO couponVO - * @param BindinResult bindingResult + * @param couponVO + * @param bindingResult * @return ResponseEntity 쿠폰 등록 결과 */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/insertMkCouponOflneCouponCrtnb", method = RequestMethod.POST) - public ResponseEntity insertMkCouponOflneCouponCrtnb(@Validated CouponVO couponVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + @RequestMapping(value = "/insertMkCouponOflneCouponCrtnb", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity insertMkCouponOflneCouponCrtnb(@Validated BOCouponVO couponVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){ couponVO.setSopmalCd(authSopmalCd); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/insertBOMkCouponOflneCouponCrtnb", couponVO), - ReplyFromResrc::getReply + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + couponVO.setSopmalCd(user.getSopmalCd()); + } + couponVO.setRegusr(user.getUserInnb()); // 등록자 + couponVO.setUpdusr(user.getUserInnb()); // 수정자 + log.debug("insertMkCouponOflneCouponCrtnb() couponVO is {}", couponVO); + + // 등록 결과 메시지 반환 + Map message = new HashMap<>(); + // message = service.insertBOMkCouponOflneCouponCrtnb(couponVO); + log.debug("message is {}", message.get("couponInnb")); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/insertBOMkCouponOflneCouponCrtnb", couponVO), +// ReplyFromResrc::getReply +// ); } /** * 쿠폰 등록화면 이동 * - * @param CouponVO couponVO - * @param ModelMap model + * @param couponVO + * @param model * @return CouponRegistC.jsp ( 쿠폰 등록 화면 ) */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectCouponRegistForm") - public String selectCouponRegistForm(CouponVO couponVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + public String selectCouponRegistForm(BOCouponVO couponVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ couponVO.setSopmalCd(authSopmalCd); - GoodsmngrVO vo = new GoodsmngrVO(); - vo.setUpperCtgryId("2"); couponVO.setUpperCtgryId("2"); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponRegistForm", couponVO), - model, - "resultMap" - ); + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + couponVO.setSopmalCd(user.getSopmalCd()); + } + couponVO.setRegusr(user.getUserInnb()); // 등록자 + couponVO.setUpdusr(user.getUserInnb()); // 수정자 + + Map resultMap = new HashMap<>(); + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + // 혜택 구분 코드 + bOMaComncdVO.setGroupCd("BNEF_DV"); // 쿠폰혜택구분 + List benfDvList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("POS_HDQRTRS"); // 매장입점구분 + List posCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("USE_ENVRN"); // 사용환경코드 + List useEnvrnCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("DLVY_AMT_DSCNT_DV"); // 쿠폰 배송혜택 종류 + List dlvyAmtDscntDvCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("DSCNT_UNIT_DV"); // 할인 단위 구분 + List goodsDscntDvCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("GOODS_APPLC_DV"); // 쿠폰 선정 기준 사용제한 + List goodsCtgryLmttDvCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("COUPON_VALIDPD_KND"); // 쿠폰 유효기간 종류 + List validpdKndCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + + BOGoodsVO vo = new BOGoodsVO(); + + vo.setUpperCtgryId(couponVO.getUpperCtgryId()); + vo.setSopmalCd(couponVO.getSopmalCd()); + List GoodsCategoryList = boMaCtgryService.selectGoodsCategoryList(vo); + + + resultMap.put("benfDvCdList", benfDvList); + resultMap.put("posCdList", posCdList); + resultMap.put("useEnvrnCdList", useEnvrnCdList); + resultMap.put("dlvyAmtDscntDvCdList", dlvyAmtDscntDvCdList); + resultMap.put("goodsDscntDvCdList", goodsDscntDvCdList); + resultMap.put("goodsCtgryLmttDvCdList", goodsCtgryLmttDvCdList); + resultMap.put("validpdKndCdList", validpdKndCdList); + + resultMap.put("goodsCategoryList", GoodsCategoryList); // 카테고리 depth1 + + resultMap.put("couponVO", couponVO); + + model.addAttribute("resultMap", resultMap); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponRegistForm", couponVO), +// model, +// "resultMap" +// ); model.addAttribute("searchForm", couponVO); return "mngr/promtn/coupon/CouponRegistC"; @@ -219,7 +457,7 @@ public class CouponController { * * @param couponVO */ - private void customValidateCoupon(CouponVO couponVO) { + private void customValidateCoupon(BOCouponVO couponVO) { List> errorList = new ArrayList<>(); // 온라인, 온/오프라인일 경우 @@ -348,13 +586,13 @@ public class CouponController { /** * 쿠폰 등록 * - * @param couponVO couponVO - * @param BindinResult bindingResult + * @param couponVO + * @param bindingResult * @return ResponseEntity 쿠폰 등록 결과 */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/insertCouponRegist", method = RequestMethod.POST) - public ResponseEntity insertCouponRegist(@Validated CouponVO couponVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + @RequestMapping(value = "/insertCouponRegist", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity insertCouponRegist(@Validated BOCouponVO couponVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){ couponVO.setSopmalCd(authSopmalCd); // 정합성 검사 if (bindingResult.hasErrors()) { @@ -363,32 +601,123 @@ public class CouponController { customValidateCoupon(couponVO); } - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/insertBOCouponRegist", couponVO), - ReplyFromResrc::getReply + log.debug("insertCouponRegist() couponVO is {}", couponVO); + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + couponVO.setSopmalCd(user.getSopmalCd()); + } + couponVO.setRegusr(user.getUserInnb()); // 등록자 + couponVO.setUpdusr(user.getUserInnb()); // 수정자 + + // 등록 결과 메시지 반환 + Map message = service.insertBOCouponRegist(couponVO); + log.debug("message is {}", message.get("couponInnb")); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/insertBOCouponRegist", couponVO), +// ReplyFromResrc::getReply +// ); } /** * 쿠폰 복사화면 이동 * - * @param CouponVO couponVO - * @param ModelMap model + * @param couponVO + * @param model * @return CouponCopyC.jsp ( 쿠폰 복사 화면 ) */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectCouponCopyForm") - public String selectCouponCopyForm(CouponVO couponVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + public String selectCouponCopyForm(BOCouponVO couponVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ couponVO.setSopmalCd(authSopmalCd); - Map paramMap = new HashMap<>(); - // paramMap에 쿠폰 고유번호 할당 - paramMap.put("couponInnb", couponVO.getCouponInnb()); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponDtlUpdtForm", couponVO), - model, - "resultMap" - ); + + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + couponVO.setSopmalCd(user.getSopmalCd()); + } + couponVO.setRegusr(user.getUserInnb()); // 등록자 + couponVO.setUpdusr(user.getUserInnb()); // 수정자 + + log.debug("selectCouponCopyForm vo is {}", couponVO); + // 쿠폰 상세 정보 조회 + BOCouponVO result = service.selectBOCouponDtlUpdtInqire(couponVO); + log.debug("result is {} " , result); + // 쿠폰 적용 상품 조회 + Map relatedGoods = service.selectBOCouponIssueGoodsInfoInqire(couponVO); + // 쿠폰 적용 카테고리 + List goodsCtgryList = service.selectBOCouponIssueCtgryInfoInqire(couponVO); + + + log.debug("GroupCd vo is {}", couponVO); + List posCodeList = null; + // 온라인 쿠폰이 아닐 경우에만 조회 + if (!"01".equals(result.getUseEnvrnCd())) { + couponVO.setGroupCd("POS_HDQRTRS"); // 입점매장구분 코드 : 확인 후 삭제 + // 등록된 매장 조회 + posCodeList = service.selectBOCouponPosCodeInqire(couponVO); + } + + Map content = new HashMap<>(); + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + // 혜택 구분 코드 + bOMaComncdVO.setGroupCd("BNEF_DV"); // 쿠폰혜택구분 + List benfDvList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("POS_HDQRTRS"); // 매장입점구분 + List posCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("USE_ENVRN"); // 사용환경코드 + List useEnvrnCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("DLVY_AMT_DSCNT_DV"); // 쿠폰 배송혜택 종류 + List dlvyAmtDscntDvCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("DSCNT_UNIT_DV"); // 할인 단위 구분 + List goodsDscntDvCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("GOODS_APPLC_DV"); // 쿠폰 선정 기준 사용제한 + List goodsCtgryLmttDvCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("COUPON_VALIDPD_KND"); // 쿠폰 유효기간 종류 + List validpdKndCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + + BOGoodsVO vo = new BOGoodsVO(); + + vo.setUpperCtgryId(couponVO.getUpperCtgryId()); + vo.setSopmalCd(couponVO.getSopmalCd()); + List GoodsCategoryList = boMaCtgryService.selectGoodsCategoryList(vo); + + + + content.put("benfDvCdList", benfDvList); + content.put("posCdList", posCdList); + content.put("useEnvrnCdList", useEnvrnCdList); + content.put("dlvyAmtDscntDvCdList", dlvyAmtDscntDvCdList); + content.put("goodsDscntDvCdList", goodsDscntDvCdList); + content.put("goodsCtgryLmttDvCdList", goodsCtgryLmttDvCdList); + content.put("validpdKndCdList", validpdKndCdList); + + content.put("couponVO", result); + content.put("posCodeList", posCodeList); + + + content.put("goodsCategoryList", GoodsCategoryList); // 카테고리 depth1 + content.put("relatedGoods", relatedGoods); // 관련상품 + content.put("goodsCtgryList", goodsCtgryList); + + content.put("searchForm", couponVO); + + log.debug("content is {}", content); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponDtlUpdtForm", couponVO), +// model, +// "resultMap" +// ); // 이전 화면 페이징 정보, 검색 조건 전달 model.addAttribute("searchForm", couponVO); @@ -399,29 +728,95 @@ public class CouponController { /** * 쿠폰 상세 수정 폼 * - * @param CouponVO couponVO - * @param ModelMap model + * @param couponVO + * @param model * @return CouponDtlUpdtU.jsp ( 쿠폰 상세 수정 화면 ) */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectCouponDtlUpdtForm") - public String selectCouponDtlUpdtForm(CouponVO couponVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + public String selectCouponDtlUpdtForm(BOCouponVO couponVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ couponVO.setSopmalCd(authSopmalCd); - - GoodsmngrVO vo = new GoodsmngrVO(); - vo.setUpperCtgryId("2"); - couponVO.setUpperCtgryId("2"); - Map paramMap = new HashMap<>(); - // paramMap에 쿠폰 고유번호 할당 - paramMap.put("couponInnb", couponVO.getCouponInnb()); + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + couponVO.setSopmalCd(user.getSopmalCd()); + } + couponVO.setRegusr(user.getUserInnb()); // 등록자 + couponVO.setUpdusr(user.getUserInnb()); // 수정자 - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponDtlUpdtForm", couponVO), - model, - "resultMap" - ); + log.debug("selectCouponDtlUpdtForm vo is {}", couponVO); + // 쿠폰 상세 정보 조회 + BOCouponVO result = service.selectBOCouponDtlUpdtInqire(couponVO); + log.debug("result is {} " , result); + // 쿠폰 적용 상품 조회 + Map relatedGoods = service.selectBOCouponIssueGoodsInfoInqire(couponVO); + // 쿠폰 적용 카테고리 + List goodsCtgryList = service.selectBOCouponIssueCtgryInfoInqire(couponVO); + + + log.debug("GroupCd vo is {}", couponVO); + List posCodeList = null; + // 온라인 쿠폰이 아닐 경우에만 조회 + if (!"01".equals(result.getUseEnvrnCd())) { + couponVO.setGroupCd("POS_HDQRTRS"); // 입점매장구분 코드 : 확인 후 삭제 + // 등록된 매장 조회 + posCodeList = service.selectBOCouponPosCodeInqire(couponVO); + } + + Map content = new HashMap<>(); + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + // 혜택 구분 코드 + bOMaComncdVO.setGroupCd("BNEF_DV"); // 쿠폰혜택구분 + List benfDvList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("POS_HDQRTRS"); // 매장입점구분 + List posCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("USE_ENVRN"); // 사용환경코드 + List useEnvrnCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("DLVY_AMT_DSCNT_DV"); // 쿠폰 배송혜택 종류 + List dlvyAmtDscntDvCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("DSCNT_UNIT_DV"); // 할인 단위 구분 + List goodsDscntDvCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("GOODS_APPLC_DV"); // 쿠폰 선정 기준 사용제한 + List goodsCtgryLmttDvCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("COUPON_VALIDPD_KND"); // 쿠폰 유효기간 종류 + List validpdKndCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + + BOGoodsVO vo = new BOGoodsVO(); + + vo.setUpperCtgryId(couponVO.getUpperCtgryId()); + vo.setSopmalCd(couponVO.getSopmalCd()); + List GoodsCategoryList = boMaCtgryService.selectGoodsCategoryList(vo); + + + + content.put("benfDvCdList", benfDvList); + content.put("posCdList", posCdList); + content.put("useEnvrnCdList", useEnvrnCdList); + content.put("dlvyAmtDscntDvCdList", dlvyAmtDscntDvCdList); + content.put("goodsDscntDvCdList", goodsDscntDvCdList); + content.put("goodsCtgryLmttDvCdList", goodsCtgryLmttDvCdList); + content.put("validpdKndCdList", validpdKndCdList); + + content.put("couponVO", result); + content.put("posCodeList", posCodeList); + + + content.put("goodsCategoryList", GoodsCategoryList); // 카테고리 depth1 + content.put("relatedGoods", relatedGoods); // 관련상품 + content.put("goodsCtgryList", goodsCtgryList); + + content.put("searchForm", couponVO); + + log.debug("content is {}", content); + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponDtlUpdtForm", couponVO), +// model, +// "resultMap" +// ); // 이전 화면 페이징 정보, 검색 조건 전달 model.addAttribute("searchForm", couponVO); @@ -432,13 +827,13 @@ public class CouponController { /** * 쿠폰 수정 * - * @param CouponVO couponVO - * @param BindingResult bindingResult + * @param couponVO + * @param bindingResult * @return ResponseEntity 쿠폰 수정 결과 */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/updateCouponUpdt", method = RequestMethod.POST) - public ResponseEntity updateCouponUpdt(@Validated CouponVO couponVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + @RequestMapping(value = "/updateCouponUpdt", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateCouponUpdt(@Validated BOCouponVO couponVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){ couponVO.setSopmalCd(authSopmalCd); // 정합성 검사 @@ -448,10 +843,30 @@ public class CouponController { customValidateCoupon(couponVO); } - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/updateBOCouponUpdt", couponVO), - ReplyFromResrc::getReply + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + couponVO.setSopmalCd(user.getSopmalCd()); + } + couponVO.setRegusr(user.getUserInnb()); // 등록자 + couponVO.setUpdusr(user.getUserInnb()); // 수정자 + log.debug("updateCouponUpdt couponVO is {}", couponVO); + + + // 수정 결과 메시지 반환 + Map message = service.updateBOCouponUpdt(couponVO); + + log.debug("updateCouponUpdt message is {}", message); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/updateBOCouponUpdt", couponVO), +// ReplyFromResrc::getReply +// ); } @@ -464,19 +879,29 @@ public class CouponController { /** * 쿠폰팩 목록 화면 이동 * - * @param CupnpkVO cupnpkVO - * @param ModelMap model + * @param cupnpkVO + * @param model * @return CupnpkListR.jsp ( 쿠폰팩 목록 화면 ) */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectCupnpkListInqireForm") - public String selectCupnpkListInqireForm(CupnpkVO cupnpkVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + public String selectCupnpkListInqireForm(BOCupnpkVO cupnpkVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ cupnpkVO.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCupnpkListInqireForm", cupnpkVO), - model, - "resultMap" - ); + + Map content = new HashMap<>(); + log.debug("*****pageunit : {}", paginationProperties.getPageUnit()); + + content.put("paramVO", cupnpkVO); + + content.put("paginationInfo", cupnpkVO.getPaginationInfo()); + log.debug("paramVO is {}", cupnpkVO); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCupnpkListInqireForm", cupnpkVO), +// model, +// "resultMap" +// ); return "mngr/promtn/coupon/CupnpkListRForm"; } @@ -485,19 +910,52 @@ public class CouponController { /** * 쿠폰팩 목록 조회 * - * @param CupnpkVO cupnpkVO - * @param ModelMap model + * @param cupnpkVO + * @param model * @return CupnpkListR.jsp ( 쿠폰팩 목록 화면 ) */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectCupnpkListInqire") - public String selectCupnpkListInqire(CupnpkVO cupnpkVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + public String selectCupnpkListInqire(BOCupnpkVO cupnpkVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ cupnpkVO.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCupnpkListInqire", cupnpkVO), - model, - "resultMap" - ); + + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + cupnpkVO.setSopmalCd(user.getSopmalCd()); + } + cupnpkVO.setRegusr(user.getUserInnb()); // 등록자 + cupnpkVO.setUpdusr(user.getUserInnb()); // 수정자 + + Map content = new HashMap<>(); + log.debug("*****pageunit : {}", paginationProperties.getPageUnit()); + + // 페이징 객체 생성 & 페이징정보 할당 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(cupnpkVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(cupnpkVO.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + + cupnpkVO.setPaginationInfo(paginationInfo); + cupnpkVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + cupnpkVO.setLastIndex(paginationInfo.getLastRecordIndex()); + cupnpkVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + // 쿠폰팩 목록 조회 + List resultList = service.selectBOCupnpkListInqire(cupnpkVO); + log.debug("resultList is {}", resultList); + + // 맵에 페이징 정보와 리스트를 넣어줌 + content.put("paramVO", cupnpkVO); + content.put("resultList", resultList); + content.put("paginationInfo", cupnpkVO.getPaginationInfo()); + log.debug("paramVO is {}", cupnpkVO); + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCupnpkListInqire", cupnpkVO), +// model, +// "resultMap" +// ); return "mngr/promtn/coupon/CupnpkListR"; } @@ -506,26 +964,45 @@ public class CouponController { /** * 쿠폰팩 논리 삭제 * - * @param CupnpkVO cupnpkVO + * @param cupnpkVO * @return ResponseEntity 쿠폰팩 삭제 결과 */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/deleteCupnpkDel", method = RequestMethod.POST) - public ResponseEntity deleteCupnpkDel(CupnpkVO cupnpkVO, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + @RequestMapping(value = "/deleteCupnpkDel", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity deleteCupnpkDel(BOCupnpkVO cupnpkVO, @CookieValue(value = "authSopmalCd") String authSopmalCd){ cupnpkVO.setSopmalCd(authSopmalCd); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/deleteBOCupnpkDel", cupnpkVO), - ReplyFromResrc::getReply + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + cupnpkVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드 + } + cupnpkVO.setRegusr(user.getUserInnb()); // 등록자 + cupnpkVO.setUpdusr(user.getUserInnb()); // 수정자 + log.debug("deleteBOCupnpkDel() cupnpkVO is {}", cupnpkVO); + + + // 삭제 결과 메시지 반환 + Map message = service.deleteBOCupnpkDel(cupnpkVO); + log.debug("message", message); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/deleteBOCupnpkDel", cupnpkVO), +// ReplyFromResrc::getReply +// ); } /** * 쿠폰팩 등록화면 이동 * - * @param CupnpkVO cupnpkVO - * @param ModelMap model + * @param cupnpkVO + * @param model * @return CupnpkRegistC.jsp ( 쿠폰팩 등록 화면 ) */ @Policy(AuthPolicy.RESTRICTED) @@ -544,7 +1021,7 @@ public class CouponController { * * @param cupnpkVO */ - private void customValidateCupnpk(CupnpkVO cupnpkVO) { + private void customValidateCupnpk(BOCupnpkVO cupnpkVO) { List> errorList = new ArrayList<>(); if (cupnpkVO.getPackedCouponInnbs() == null || cupnpkVO.getPackedCouponInnbs().isEmpty()) { @@ -562,13 +1039,13 @@ public class CouponController { /** * 쿠폰팩 등록 * - * @param CupnpkVO cupnpkVO - * @param BindingResult bindingResult + * @param cupnpkVO + * @param bindingResult * @return ResponseEntity 쿠폰팩 등록 결과 */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/insertCupnpkRegist", method = RequestMethod.POST) - public ResponseEntity insertCupnpkRegist(@Validated CupnpkVO cupnpkVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + @RequestMapping(value = "/insertCupnpkRegist", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity insertCupnpkRegist(@Validated BOCupnpkVO cupnpkVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){ cupnpkVO.setSopmalCd(authSopmalCd); // 정합성 검사 if (bindingResult.hasErrors()) { @@ -577,30 +1054,75 @@ public class CouponController { customValidateCupnpk(cupnpkVO); } - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/insertBOCupnpkRegist", cupnpkVO), - ReplyFromResrc::getReply + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + cupnpkVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드 + } + cupnpkVO.setRegusr(user.getUserInnb()); // 등록자 + cupnpkVO.setUpdusr(user.getUserInnb()); // 수정자 + log.debug("insertCupnpkRegist() cupnpkVO is {}", cupnpkVO); + + // 등록 메시지 반환 + Map message = service.insertBOCupnpkRegist(cupnpkVO); + log.debug("insertCupnpkRegist() cupnpkVO is {}", cupnpkVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/insertBOCupnpkRegist", cupnpkVO), +// ReplyFromResrc::getReply +// ); } /** * 쿠폰 선택 팝업화면 이동 * - * @param CouponVO couponVO - * @param ModelMap model + * @param couponVO + * @param model * @return CouponShoisePopupC.jsp ( 쿠폰 선택 팝업 화면 ) */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectCouponChoisePopupForm") - public String selectCouponChoisePopupForm(CouponVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { - vo.setSopmalCd(authSopmalCd); + public String selectCouponChoisePopupForm(BOCouponVO couponVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { + couponVO.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponChoisePopupForm", vo), - model, - "resultMap" - ); + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + couponVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드 + } + Map content = new HashMap<>(); + log.debug("couponVO 모달 폼 : {}", couponVO); + + // 공통코드 호출 + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + bOMaComncdVO.setGroupCd("BNEF_DV"); // 쿠폰 혜택 구분 코드 + List benfDvList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("USE_ENVRN"); // 쿠폰 사용환경 구분 코드 + List useEnvrnCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + // 쇼핑몰 이름 + List sopmalList = service.selectBOSopmalNmListInqire(couponVO); + content.put("sopmalList", sopmalList); + log.debug("BO C sopmalList is {}", sopmalList); + + // 맵에 페이징 정보와 리스트를 넣어줌 + content.put("paramVO", couponVO); + content.put("benfDvCdList", benfDvList); + content.put("useEnvrnCdList", useEnvrnCdList); + + log.debug("couponVO is {}", couponVO); + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponChoisePopupForm", vo), +// model, +// "resultMap" +// ); return "mngr/promtn/coupon/CouponChoisePopupC"; } @@ -609,18 +1131,54 @@ public class CouponController { /** * 쿠폰 선택 팝업 검색 ajax * - * @param CouponVO couponVO - * @param ModelMap model + * @param couponVO + * @param model * @return ResponseEntity 쿠폰 검색 결과 */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectCouponChoisePopupSearch") - public String selectCouponChoisePopupSearch(CouponVO couponVO, ModelMap model) { - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponChoiseListInqire", couponVO), - model, - "resultMap" - ); + public String selectCouponChoisePopupSearch(BOCouponVO couponVO, ModelMap model) { + + Map content = new HashMap<>(); + log.debug("couponVO 모달 목록 조회 : {}", couponVO); + + // 페이징 객체 생성 & 페이징정보 할당 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(couponVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(couponVO.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + couponVO.setPaginationInfo(paginationInfo); + + couponVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + couponVO.setLastIndex(paginationInfo.getLastRecordIndex()); + couponVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + // 쿠폰 목록 조회 + List resultList = service.selectBOCouponChoiseListInqire(couponVO); + log.debug("resultList is {}", resultList); + + // 공통코드 호출 + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + bOMaComncdVO.setGroupCd("BNEF_DV"); // 쿠폰 혜탞 구분 코드 + List benfDvList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("USE_ENVRN"); // 쿠폰 사용환경 구분 코드 + List useEnvrnCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + // 맵에 페이징 정보와 리스트를 넣어줌, 코드 + content.put("paramVO", couponVO); + content.put("resultList", resultList); + content.put("paginationInfo", couponVO.getPaginationInfo()); + content.put("benfDvCdList", benfDvList); + content.put("useEnvrnCdList", useEnvrnCdList); + + log.debug("couponVO is {}", couponVO); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponChoiseListInqire", couponVO), +// model, +// "resultMap" +// ); return "mngr/promtn/coupon/CouponChoisePopupListR"; } @@ -634,16 +1192,28 @@ public class CouponController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectCupnpkCopyForm") - public String selectCupnpkCopyForm(CupnpkVO cupnpkVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + public String selectCupnpkCopyForm(BOCupnpkVO cupnpkVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ cupnpkVO.setSopmalCd(authSopmalCd); Map paramMap = new HashMap<>(); // 쿠폰팩 고유번호 할당 paramMap.put("cupnpkInnb", cupnpkVO.getCupnpkInnb()); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCupnpkDtlUpdtForm", cupnpkVO), - model, - "resultMap" - ); + + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + cupnpkVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드 + } + log.debug("selectCupnpkCopyForm vo is {}", cupnpkVO); + // 상세 정보 반환 + Map content = service.selectBOCupnpkDtlUpdtInqire(cupnpkVO); + log.debug("content is {}", content); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCupnpkDtlUpdtForm", cupnpkVO), +// model, +// "resultMap" +// ); // 이전 화면 페이징 정보, 검색 조건 전달 model.addAttribute("searchForm", cupnpkVO); @@ -654,23 +1224,35 @@ public class CouponController { /** * 쿠폰팩 상세 수정 폼 * - * @param CupnpkVO cupnpkVO - * @param ModelMap model + * @param cupnpkVO + * @param model * @return CupnpkDtlUpdtU.jsp ( 쿠폰팩 상세 수정 화면 ) */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectCupnpkDtlUpdtForm") - public String selectCupnpkDtlUpdtForm(CupnpkVO cupnpkVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + public String selectCupnpkDtlUpdtForm(BOCupnpkVO cupnpkVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ cupnpkVO.setSopmalCd(authSopmalCd); // 새로운 map 객체 선언 Map paramMap = new HashMap<>(); // 쿠폰팩 고유번호 할당 paramMap.put("cupnpkInnb", cupnpkVO.getCupnpkInnb()); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCupnpkDtlUpdtForm", cupnpkVO), - model, - "resultMap" - ); + + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + cupnpkVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드 + } + log.debug("selectCupnpkDtlUpdtForm vo is {}", cupnpkVO); + // 상세 정보 반환 + Map content = service.selectBOCupnpkDtlUpdtInqire(cupnpkVO); + log.debug("content is {}", content); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCupnpkDtlUpdtForm", cupnpkVO), +// model, +// "resultMap" +// ); // 이전 화면 페이징 정보, 검색 조건 전달 model.addAttribute("searchForm", cupnpkVO); @@ -684,8 +1266,8 @@ public class CouponController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/updateCupnpkUpdt", method = RequestMethod.POST) - public ResponseEntity updateCupnpkUpdt(@Validated CupnpkVO cupnpkVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + @RequestMapping(value = "/updateCupnpkUpdt", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateCupnpkUpdt(@Validated BOCupnpkVO cupnpkVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){ cupnpkVO.setSopmalCd(authSopmalCd); // 정합성 검사 @@ -695,10 +1277,27 @@ public class CouponController { customValidateCupnpk(cupnpkVO); } - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/updateBOCupnpkUpdt", cupnpkVO), - ReplyFromResrc::getReply + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + cupnpkVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드 + } + cupnpkVO.setRegusr(user.getUserInnb()); // 등록자 + cupnpkVO.setUpdusr(user.getUserInnb()); // 수정자 + log.debug("updateBOCupnpkUpdt() cupnpkVO is {}", cupnpkVO); + // 등록 메시지 반환 + Map message = service.updateBOCupnpkUpdt(cupnpkVO); + log.debug("updateBOCupnpkUpdt() cupnpkVO is {}", cupnpkVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/updateBOCupnpkUpdt", cupnpkVO), +// ReplyFromResrc::getReply +// ); } @@ -715,13 +1314,42 @@ public class CouponController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectCouponPkSndngListInqireForm") - public String selectCouponPkSndngListInqireForm(CouponPkSndngVO couponPkSndngVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + public String selectCouponPkSndngListInqireForm(BOCouponPkSndngVO couponPkSndngVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ couponPkSndngVO.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponPkSndngListInqireForm", couponPkSndngVO), - model, - "resultMap" - ); + + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + couponPkSndngVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드 + } + couponPkSndngVO.setRegusr(user.getUserInnb()); // 등록자 + couponPkSndngVO.setUpdusr(user.getUserInnb()); // 수정자 + + Map content = new HashMap<>(); + log.debug("*****pageunit : {}", paginationProperties.getPageUnit()); + + // 공통코드 호출 + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + bOMaComncdVO.setGroupCd("COUPON_SNDNG_DV"); // 쿠폰발송구분 + List sndngDvCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("COUPON_SNDNG_TY"); // 발송유형 코드로 변경 + List couponSndngTyCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("SNDNG_DT_DV"); // 발송일시구분 코드로 변경 + List couponSndngDtDvCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + // 맵에 페이징 정보와 리스트를 넣어줌 + content.put("paramVO", couponPkSndngVO); + content.put("sndngDvCdList", sndngDvCdList); + content.put("couponSndngTyCdList", couponSndngTyCdList); + content.put("couponSndngDtDvCdList", couponSndngDtDvCdList); + + log.debug("paramVO is {}", couponPkSndngVO); + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponPkSndngListInqireForm", couponPkSndngVO), +// model, +// "resultMap" +// ); return "mngr/promtn/coupon/CouponPkSndngListRForm"; } @@ -734,13 +1362,47 @@ public class CouponController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectCouponPkSndngListInqire") - public String selectCouponPkSndngListInqire(CouponPkSndngVO couponPkSndngVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + public String selectCouponPkSndngListInqire(BOCouponPkSndngVO couponPkSndngVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ couponPkSndngVO.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponPkSndngListInqire", couponPkSndngVO), - model, - "resultMap" - ); + + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + couponPkSndngVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드 + } + + Map content = new HashMap<>(); + log.debug("couponPkSndngVO : {}", couponPkSndngVO); + log.debug("*****pageunit : {}", paginationProperties.getPageUnit()); + + // 페이징 객체 생성 & 페이징정보 할당 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(couponPkSndngVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(couponPkSndngVO.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + + couponPkSndngVO.setPaginationInfo(paginationInfo); + couponPkSndngVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + couponPkSndngVO.setLastIndex(paginationInfo.getLastRecordIndex()); + couponPkSndngVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + // 쿠폰발송 목록 조회 + List resultList = service.selectBOCouponPkSndngListInqire(couponPkSndngVO); + log.debug("resultList is {}", resultList); + + // 맵에 페이징 정보와 리스트를 넣어줌 + content.put("paramVO", couponPkSndngVO); + content.put("resultList", resultList); + content.put("paginationInfo", couponPkSndngVO.getPaginationInfo()); + + + log.debug("paramVO is {}", couponPkSndngVO); + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponPkSndngListInqire", couponPkSndngVO), +// model, +// "resultMap" +// ); model.addAttribute("searchForm", couponPkSndngVO); return "mngr/promtn/coupon/CouponPkSndngListR"; @@ -753,14 +1415,31 @@ public class CouponController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/deleteCouponPkSndngDel", method = RequestMethod.POST) - public ResponseEntity deleteCouponPkSndngDel(CouponPkSndngVO couponPkSndngVO, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + @RequestMapping(value = "/deleteCouponPkSndngDel", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity deleteCouponPkSndngDel(BOCouponPkSndngVO couponPkSndngVO, @CookieValue(value = "authSopmalCd") String authSopmalCd){ couponPkSndngVO.setSopmalCd(authSopmalCd); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/deleteBOCouponPkSndngDel", couponPkSndngVO), - ReplyFromResrc::getReply + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + couponPkSndngVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드 + } + couponPkSndngVO.setUpdusr(user.getUserInnb()); // 수정자 + + log.debug("deleteBOCouponPkSndngVODel() couponPkSndngVO is {}", couponPkSndngVO); + // 삭제 결과 메시지 반환 + Map message = service.deleteBOCouponPkSndngVODel(couponPkSndngVO); + log.debug("message", message); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/deleteBOCouponPkSndngDel", couponPkSndngVO), +// ReplyFromResrc::getReply +// ); } @@ -773,13 +1452,71 @@ public class CouponController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectCouponPkSndngRegistForm") - public String selectCouponPkSndngRegistForm(CouponPkSndngVO couponPkSndngVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + public String selectCouponPkSndngRegistForm(BOCouponPkSndngVO couponPkSndngVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ couponPkSndngVO.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponPkSndngRegistForm", couponPkSndngVO), - model, - "resultMap" - ); + + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + couponPkSndngVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드 + } + couponPkSndngVO.setRegusr(user.getUserInnb()); // 등록자 + couponPkSndngVO.setUpdusr(user.getUserInnb()); // 수정자 + + Map content = new HashMap<>(); + + // 쿠폰팩 목록 조회 + BOCupnpkVO cupnpkVO = new BOCupnpkVO(); + cupnpkVO.setSopmalCd(couponPkSndngVO.getSopmalCd()); + List cupnpkList = mapper.selectBOCupnpkListInqirePageIsNull(cupnpkVO); + log.debug("cupnpkList is {}", cupnpkList); + BOGradbnefVO gradVO = new BOGradbnefVO(); + gradVO.setSopmalCd(couponPkSndngVO.getSopmalCd()); + List mbrGroupList = gradService.selectBOMbrGradListInqireWithoutPaging(gradVO); + + BOTmpltVO tmpltVO = new BOTmpltVO(); + tmpltVO.setSopmalCd(couponPkSndngVO.getSopmalCd()); + List emailTmpltList = tmpltMapper.selectBOEmailAtmcSndngTmplatInqireForm(tmpltVO); + log.debug("emailTmpltList is {}", emailTmpltList); + + List smsTmpltList = tmpltMapper.selectBOMssageAtmcSndngTmplatInqireForm(tmpltVO); + log.debug("smsTmpltList is {}", smsTmpltList); + + List kakaoTmpltList = tmpltMapper.selectBONtcntalkAtmcSndngTmplatInqireForm(tmpltVO); + log.debug("kakaoTmpltList is {}", kakaoTmpltList); + + + // 공통코드 호출 + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + bOMaComncdVO.setGroupCd("COUPON_SNDNG_DV"); // 쿠폰발송구분 + List sndngDvCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("COUPON_SNDNG_TY"); // 쿠폰발송유형 + List couponSndngTyCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("SNDNG_DT_DV"); // 발송일시구분 + List sndngDtDvCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("SNDNG_TRGET_DV"); // 발송대상 구분 + List sndngTrgetDvCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("SNDNG_TRGET_TY"); // 발송대상 유형 + List sndngTrgetTyCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + log.debug("공통 코드 확인 : {}", sndngDvCdList); + + content.put("cupnpkList", cupnpkList); + content.put("mbrGroupList", mbrGroupList); + content.put("emailTmpltList", emailTmpltList); + content.put("smsTmpltList", smsTmpltList); + content.put("kakaoTmpltList", kakaoTmpltList); + content.put("sndngDvCdList", sndngDvCdList); + content.put("couponSndngTyCdList", couponSndngTyCdList); + content.put("sndngDtDvCdList", sndngDtDvCdList); + content.put("sndngTrgetDvCdList", sndngTrgetDvCdList); + content.put("sndngTrgetTyCdList", sndngTrgetTyCdList); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponPkSndngRegistForm", couponPkSndngVO), +// model, +// "resultMap" +// ); model.addAttribute("searchForm", couponPkSndngVO); return "mngr/promtn/coupon/CouponPkRegistC"; @@ -791,7 +1528,7 @@ public class CouponController { * * @param couponPkSndngVO */ - private void customValidateCouponPkSndng(CouponPkSndngVO couponPkSndngVO) { + private void customValidateCouponPkSndng(BOCouponPkSndngVO couponPkSndngVO) { List> errorList = new ArrayList<>(); log.debug("쿠폰발송 등록 수정 벨리데이션 체크 파라미터 : {}", couponPkSndngVO); @@ -914,8 +1651,8 @@ public class CouponController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/insertCouponPkSndngRegist", method = RequestMethod.POST) - public ResponseEntity insertCouponPkSndngRegist(@Validated CouponPkSndngVO couponPkSndngVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + @RequestMapping(value = "/insertCouponPkSndngRegist", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity insertCouponPkSndngRegist(@Validated BOCouponPkSndngVO couponPkSndngVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){ couponPkSndngVO.setSopmalCd(authSopmalCd); log.debug("couponPkSndngVO before is {}", couponPkSndngVO); // 정합성 검사 @@ -925,10 +1662,30 @@ public class CouponController { customValidateCouponPkSndng(couponPkSndngVO); } - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/insertBOCouponPkSndngRegist", couponPkSndngVO), - ReplyFromResrc::getReply + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + couponPkSndngVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드 + } + couponPkSndngVO.setRegusr(user.getUserInnb()); // 등록자 + couponPkSndngVO.setUpdusr(user.getUserInnb()); // 수정자 + couponPkSndngVO.setSecretKey(commonService.selectSecretkey()); + + log.debug("couponPkSndngVO is {}", couponPkSndngVO); + + // 등록 결과 반환 + Map message = service.insertBOCouponPkSndngRegist(couponPkSndngVO); + log.debug("insertCouponPkSndngRegist() cupnpkVO is {}", couponPkSndngVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/insertBOCouponPkSndngRegist", couponPkSndngVO), +// ReplyFromResrc::getReply +// ); } @@ -941,17 +1698,79 @@ public class CouponController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectCouponPkSndngDtlUpdtForm") - public String selectCouponPkSndngDtlUpdtForm(CouponPkSndngVO couponPkSndngVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + public String selectCouponPkSndngDtlUpdtForm(BOCouponPkSndngVO couponPkSndngVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ couponPkSndngVO.setSopmalCd(authSopmalCd); Map paramMap = new HashMap<>(); // paramMap에 쿠폰 고유번호 할당 paramMap.put("couponSndngInnb", couponPkSndngVO.getCouponSndngInnb()); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponPkSndngDtlUpdtForm", couponPkSndngVO), - model, - "resultMap" - ); + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + couponPkSndngVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드 + } + couponPkSndngVO.setRegusr(user.getUserInnb()); // 등록자 + couponPkSndngVO.setUpdusr(user.getUserInnb()); // 수정자 + couponPkSndngVO.setSecretKey(commonService.selectSecretkey()); + + // 쿠폰팩 목록 조회 + BOCupnpkVO cupnpkVO = new BOCupnpkVO(); + cupnpkVO.setSopmalCd(couponPkSndngVO.getSopmalCd()); + List cupnpkList = mapper.selectBOCupnpkListInqirePageIsNull(cupnpkVO); + + // 회원 등급 목록 조회 + BOGradbnefVO gradVO = new BOGradbnefVO(); + gradVO.setSopmalCd(couponPkSndngVO.getSopmalCd()); + List mbrGroupList = gradService.selectBOMbrGradListInqireWithoutPaging(gradVO); + + // 이메일,sms,알림톡 발송 템플릿 조회 + BOTmpltVO tmpltVO = new BOTmpltVO(); + tmpltVO.setSopmalCd(couponPkSndngVO.getSopmalCd()); + List emailTmpltList = tmpltMapper.selectBOEmailAtmcSndngTmplatInqireForm(tmpltVO); + List smsTmpltList = tmpltMapper.selectBOMssageAtmcSndngTmplatInqireForm(tmpltVO); + List kakaoTmpltList = tmpltMapper.selectBONtcntalkAtmcSndngTmplatInqireForm(tmpltVO); + + // 쿠폰팩 발송 정보 조회 + Map result = service.selectBOCouponPkSndngDtlUpdtInqire(couponPkSndngVO); + + // 공통코드 호출 + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + bOMaComncdVO.setGroupCd("COUPON_SNDNG_DV"); // 쿠폰발송구분 + List sndngDvCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("COUPON_SNDNG_TY"); // 쿠폰발송유형 + List couponSndngTyCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("SNDNG_TRGET_DV"); // 발송대상 구분 + List sndngTrgetDvCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("SNDNG_TRGET_TY"); // 발송대상 유형 + List sndngTrgetTyCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("SNDNG_DT_DV"); // 발송일시구분 + //쿠폰팩 발송 유형이 03일 경우 cdDv 값 입력 + BOCouponPkSndngVO tempVO = (BOCouponPkSndngVO) result.get("result"); + if ("03".equals(tempVO.getCouponSndngTy())) { + bOMaComncdVO.setCdDv(tempVO.getCouponSndngTy()); + } + List sndngDtDvCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + Map content = new HashMap<>(); + content.put("cupnpkList", cupnpkList); + content.put("mbrGroupList", mbrGroupList); + content.put("emailTmpltList", emailTmpltList); + content.put("smsTmpltList", smsTmpltList); + content.put("kakaoTmpltList", kakaoTmpltList); + content.put("sndngDvCdList", sndngDvCdList); + content.put("sndngDtDvCdList", sndngDtDvCdList); + content.put("couponSndngTyCdList", couponSndngTyCdList); + content.put("sndngTrgetDvCdList", sndngTrgetDvCdList); + content.put("sndngTrgetTyCdList", sndngTrgetTyCdList); + content.put("couponPkSndngVO", result); // 발송정보 + content.put("searchForm", couponPkSndngVO); // 검색조건 + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponPkSndngDtlUpdtForm", couponPkSndngVO), +// model, +// "resultMap" +// ); // 이전 화면 페이징 정보, 검색 조건 전달 model.addAttribute("searchForm", couponPkSndngVO); @@ -965,8 +1784,8 @@ public class CouponController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/updateCouponPkSndngUpdt") - public ResponseEntity updateCouponPkSndngUpdt(@Validated CouponPkSndngVO couponPkSndngVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + @RequestMapping(value = "/updateCouponPkSndngUpdt", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateCouponPkSndngUpdt(@Validated BOCouponPkSndngVO couponPkSndngVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){ couponPkSndngVO.setSopmalCd(authSopmalCd); log.debug("couponPkSndngVO before is {}", couponPkSndngVO); // 정합성 검사 @@ -976,28 +1795,57 @@ public class CouponController { customValidateCouponPkSndng(couponPkSndngVO); } - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/updateBOCouponPkSndngUpdt", couponPkSndngVO), - ReplyFromResrc::getReply + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + couponPkSndngVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드 + } + couponPkSndngVO.setUpdusr(user.getUserInnb()); // 수정자 + couponPkSndngVO.setSecretKey(commonService.selectSecretkey()); + + log.debug("couponPkSndngVO is {}", couponPkSndngVO); + + // 수정 결과 반환 + Map message = service.updateBOCouponPkSndngUpdt(couponPkSndngVO); + log.debug("updateCouponPkSndngUpdt() couponPKSndngVO is {}", couponPkSndngVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/updateBOCouponPkSndngUpdt", couponPkSndngVO), +// ReplyFromResrc::getReply +// ); } /** * 쿠폰 정보 조회 팝업 : 다운로드 된 쿠폰 ( 사용 가능 쿠폰, 사용한 쿠폰, 주문 사용 쿠폰 ) * - * @param CouponVO couponVO + * @param dwldCouponVO * @param model * @return */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectCouponInfoInqirePopup") - public String selectCouponInfoInqirePopup(DwldCouponVO dwldCouponVO, ModelMap model) { - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponInfoInqirePopup", dwldCouponVO), - model, - "resultMap" - ); + public String selectCouponInfoInqirePopup(BODwldCouponVO dwldCouponVO, ModelMap model) { + + Map content = new HashMap<>(); + + log.debug("vo is {}", dwldCouponVO); + + DataMap result = service.selectBOCouponInfoInqirePopup(dwldCouponVO); + log.debug("vo is {}", result); + content.put("dwldCouponVO", result); // 발송정보 + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponInfoInqirePopup", dwldCouponVO), +// model, +// "resultMap" +// ); return "mngr/promtn/coupon/CouponInfoInqirePopupR"; } @@ -1006,18 +1854,29 @@ public class CouponController { /** * 쿠폰 정보 조회 팝업 : 다운로드 된 쿠폰 ( 사용 가능 쿠폰, 사용한 쿠폰, 주문 사용 쿠폰 ) * - * @param CouponVO couponVO + * @param dwldCouponVO * @param model * @return */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectDwldYCouponInfoInqirePopup") - public String selectDwldYCouponInfoInqirePopup(DwldCouponVO dwldCouponVO, ModelMap model) { - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBODwldYCouponInfoInqirePopup", dwldCouponVO), - model, - "resultMap" - ); + public String selectDwldYCouponInfoInqirePopup(BODwldCouponVO dwldCouponVO, ModelMap model) { + + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + + Map content = new HashMap<>(); + log.debug("vo is {}", dwldCouponVO); + + DataMap result = service.selectBODwldYCouponInfoInqirePopup(dwldCouponVO); + log.debug("vo is {}", result); + content.put("dwldCouponVO", result); // 발송정보 + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBODwldYCouponInfoInqirePopup", dwldCouponVO), +// model, +// "resultMap" +// ); return "mngr/promtn/coupon/CouponInfoInqirePopupR"; } @@ -1025,7 +1884,7 @@ public class CouponController { /** * 쿠폰 발송 팝업 - * @param CouponVO couponVO + * @param dwldCouponVO * @param model * @return */ @@ -1045,33 +1904,60 @@ public class CouponController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/insertCouponPkIssu", method = RequestMethod.POST) - public ResponseEntity insertCouponPkIssu(DwldCouponVO dwldCouponVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + @RequestMapping(value = "/insertCouponPkIssu", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity insertCouponPkIssu(BODwldCouponVO dwldCouponVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){ dwldCouponVO.setSopmalCd(authSopmalCd); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/insertBOCouponPkIssu", dwldCouponVO), - ReplyFromResrc::getReply + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + dwldCouponVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드 + } + dwldCouponVO.setRegusr(user.getUserInnb()); // 등록자 + dwldCouponVO.setUpdusr(user.getUserInnb()); // 수정자 + dwldCouponVO.setSecretKey(commonService.selectSecretkey()); + + log.debug("쿠폰 발급 파라미터 확인 : {}", dwldCouponVO); + + Map message = new HashMap<>(); + message = service.insertBOCouponPkIssuRegist(dwldCouponVO); + log.debug("insert dwldCouponVO message is {}", message); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/insertBOCouponPkIssu", dwldCouponVO), +// ReplyFromResrc::getReply +// ); } /** * 쿠폰 사용 내역 팝업 폼 이동 * - * @param couponPkSndngVO - * @param model * @return */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectCouponIssuUseDtls") - public String selectCouponIssuUseDtls(DwldCouponVO dwldCouponVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + public String selectCouponIssuUseDtls(BODwldCouponVO dwldCouponVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ dwldCouponVO.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponIssuUseDtls", dwldCouponVO), - model, - "resultMap" - ); + + Map content = new HashMap<>(); + log.debug("vo is : {}", dwldCouponVO); + + // 맵에 페이징 정보와 리스트를 넣어줌 + content.put("paramVO", dwldCouponVO); + log.debug("paramVO is {}", dwldCouponVO); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponIssuUseDtls", dwldCouponVO), +// model, +// "resultMap" +// ); model.addAttribute("paramVO", dwldCouponVO); @@ -1082,19 +1968,47 @@ public class CouponController { /** * 쿠폰 사용 내역 팝업 목록 조회 * - * @param couponPkSndngVO * @param model * @return */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectCouponIssuUseDtlsInqire") - public String selectCouponIssuUseDtlsInqire(DwldCouponVO dwldCouponVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + public String selectCouponIssuUseDtlsInqire(BODwldCouponVO dwldCouponVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ dwldCouponVO.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponIssuUseDtlsInqire", dwldCouponVO), - model, - "resultMap" - ); + + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + dwldCouponVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드 + } + + Map content = new HashMap<>(); + log.debug("couponPkSndngVO : {}", dwldCouponVO); + + // 페이징 객체 생성 & 페이징정보 할당 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(dwldCouponVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(dwldCouponVO.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + dwldCouponVO.setPaginationInfo(paginationInfo); + + dwldCouponVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + dwldCouponVO.setLastIndex(paginationInfo.getLastRecordIndex()); + dwldCouponVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + List result = service.selectBOCouponIssuUseDtlsInqire(dwldCouponVO); + + // 맵에 페이징 정보와 리스트를 넣어줌 + content.put("paramVO", dwldCouponVO); + content.put("result", result); + content.put("paginationInfo", dwldCouponVO.getPaginationInfo()); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponIssuUseDtlsInqire", dwldCouponVO), +// model, +// "resultMap" +// ); return "mngr/promtn/coupon/CouponIssuUseDtlsR"; } @@ -1107,13 +2021,28 @@ public class CouponController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectOrderCouponUseDtlsPopupForm") - public String selectOrderCouponUseDtlsPopupForm(DwldCouponVO dwldCouponVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + public String selectOrderCouponUseDtlsPopupForm(BODwldCouponVO dwldCouponVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ dwldCouponVO.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectOrderCouponUseDtlsPopupForm", dwldCouponVO), - model, - "resultMap" - ); + + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + dwldCouponVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드 + } + + Map content = new HashMap<>(); + log.debug("ordrcouponuseDtls vo is : {}", dwldCouponVO); + + // 맵에 페이징 정보와 리스트를 넣어줌 + content.put("paramVO", dwldCouponVO); + log.debug("paramVO is {}", dwldCouponVO); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectOrderCouponUseDtlsPopupForm", dwldCouponVO), +// model, +// "resultMap" +// ); return "mngr/promtn/coupon/OrderCouponUseDtlsPopupRForm"; } @@ -1126,13 +2055,45 @@ public class CouponController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectOrderCouponUseDtlsPopup") - public String selectOrderCouponUseDtlsPopup(DwldCouponVO dwldCouponVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + public String selectOrderCouponUseDtlsPopup(BODwldCouponVO dwldCouponVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ dwldCouponVO.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectOrderCouponUseDtlsPopup", dwldCouponVO), - model, - "resultMap" - ); + + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + dwldCouponVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드 + } + + Map content = new HashMap<>(); + log.debug("ordrcouponuseDtls vo is : {}", dwldCouponVO); + + // 페이징 객체 생성 & 페이징정보 할당 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(dwldCouponVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(dwldCouponVO.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + dwldCouponVO.setPaginationInfo(paginationInfo); + + dwldCouponVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + dwldCouponVO.setLastIndex(paginationInfo.getLastRecordIndex()); + dwldCouponVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + List result = service.selectBOCouponIssuUseDtlsInqire(dwldCouponVO); + + // 맵에 페이징 정보와 리스트를 넣어줌 + content.put("paramVO", dwldCouponVO); + content.put("result", result); + content.put("paginationInfo", dwldCouponVO.getPaginationInfo()); + + log.debug("paramVO is {}", dwldCouponVO); + log.debug("couponVO.getPaginationInfo().getRecordCountPerPage() is {}", dwldCouponVO.getPaginationInfo().getRecordCountPerPage()); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectOrderCouponUseDtlsPopup", dwldCouponVO), +// model, +// "resultMap" +// ); return "mngr/promtn/coupon/OrderCouponUseDtlsPopupR"; } @@ -1144,13 +2105,37 @@ public class CouponController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/insertReSndngOflneCouponCrtnb", method = RequestMethod.POST) - public ResponseEntity insertReSndngOflneCouponCrtnb(DwldCouponVO dwldCouponVO, BindingResult bindingResult) { + @RequestMapping(value = "/insertReSndngOflneCouponCrtnb", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity insertReSndngOflneCouponCrtnb(BODwldCouponVO dwldCouponVO, BindingResult bindingResult) { - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/insertBOReSndngOflneCouponCrtnb", dwldCouponVO), - ReplyFromResrc::getReply + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + dwldCouponVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드 + dwldCouponVO.setMbrDvCd(user.getMbrDvCd()); // 회원 구분 코드 + dwldCouponVO.setMbrInnb(Integer.valueOf(user.getUserInnb())); // 회원 고유번호 + } + dwldCouponVO.setRegusr(user.getUserInnb()); // 등록자 + dwldCouponVO.setUpdusr(user.getUserInnb()); // 수정자 + dwldCouponVO.setSecretKey(commonService.selectSecretkey()); + + log.debug("인증번호 재발송 데이터 확인 : {}", dwldCouponVO); + Map message = new HashMap<>(); + + message = service.selectBOOfflineCouponReSndngingInqire(dwldCouponVO); + + message.put("result", "success"); + message.put("dwldCouponVO", dwldCouponVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/insertBOReSndngOflneCouponCrtnb", dwldCouponVO), +// ReplyFromResrc::getReply +// ); } @@ -1160,13 +2145,32 @@ public class CouponController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/updateUseCouponProcs", method = RequestMethod.POST) - public ResponseEntity updateUseCouponProcs(DwldCouponVO dwldCouponVO, BindingResult bindingResult) { + @RequestMapping(value = "/updateUseCouponProcs", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateUseCouponProcs(BODwldCouponVO dwldCouponVO, BindingResult bindingResult) { - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/updateBOUseCouponCollectProcs", dwldCouponVO), - ReplyFromResrc::getReply + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + dwldCouponVO.setMbrDvCd(user.getMbrDvCd()); // 회원 구분 코드 + dwldCouponVO.setMbrInnb(Integer.valueOf(user.getUserInnb())); // 회원 고유번호 + } + dwldCouponVO.setRegusr(user.getUserInnb()); // 등록자 + dwldCouponVO.setUpdusr(user.getUserInnb()); // 수정자 + + log.debug("쿠폰 회수처리 : {}", dwldCouponVO); + Map message = new HashMap<>(); + message = service.updateBOUseCouponCollectProcs(dwldCouponVO); + message.put("dwldCouponVO", dwldCouponVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/updateBOUseCouponCollectProcs", dwldCouponVO), +// ReplyFromResrc::getReply +// ); } @@ -1177,13 +2181,33 @@ public class CouponController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/updateUseCouponProcsAll", method = RequestMethod.POST) - public ResponseEntity updateUseCouponProcsAll(DwldCouponVO dwldCouponVO, BindingResult bindingResult) { + @RequestMapping(value = "/updateUseCouponProcsAll", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateUseCouponProcsAll(BODwldCouponVO dwldCouponVO, BindingResult bindingResult) { log.debug("쿠폰 전체 회수 처리 :{}", dwldCouponVO); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/updateBOUseCouponCollectProcsAll", dwldCouponVO), - ReplyFromResrc::getReply + + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + dwldCouponVO.setMbrDvCd(user.getMbrDvCd()); // 회원 구분 코드 + dwldCouponVO.setMbrInnb(Integer.valueOf(user.getUserInnb())); // 회원 고유번호 + } + dwldCouponVO.setRegusr(user.getUserInnb()); // 등록자 + dwldCouponVO.setUpdusr(user.getUserInnb()); // 수정자 + + log.debug("쿠폰 전체 회수처리 : {}", dwldCouponVO); + Map message = new HashMap<>(); + message = service.updateBOUseCouponCollectProcsAll(dwldCouponVO); + message.put("dwldCouponVO", dwldCouponVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/updateBOUseCouponCollectProcsAll", dwldCouponVO), +// ReplyFromResrc::getReply +// ); } @@ -1191,18 +2215,25 @@ public class CouponController { /** * 쿠폰 엑셀 다운로드 - * @param maComncdVO * @param response */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value = "/selectCouponListExcelDwld", method = RequestMethod.POST) - public void selectCouponListExcelDwld(DwldCouponVO dwldCouponVO, HttpServletResponse response, @CookieValue(value = "authSopmalCd") String authSopmalCd) { + public void selectCouponListExcelDwld(BODwldCouponVO dwldCouponVO, HttpServletResponse response, @CookieValue(value = "authSopmalCd") String authSopmalCd) { dwldCouponVO.setSopmalCd(authSopmalCd); log.debug("dwldCouponVO" + dwldCouponVO.getCouponSndngInnb()); - Map resultMap = responseHandler.handleResponseAsMap( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectCouponListExcelDwld", dwldCouponVO) - ); + DataMap resultMap = new DataMap(); + + List excelList = new ArrayList<>(); + log.debug("쿠폰 엑셀 다운로드 파라미터 : {}", dwldCouponVO); + excelList = service.selectCouponListExcelDwld(dwldCouponVO); + resultMap.put("excelList", excelList); + + +// Map resultMap = responseHandler.handleResponseAsMap( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectCouponListExcelDwld", dwldCouponVO) +// ); List> resultMapList = (List>) resultMap.get("excelList"); List> dataList = new ArrayList<>(); @@ -1250,13 +2281,5 @@ public class CouponController { }catch(IOException ioe) { throw new WnbtRestException("엑셀다운로드 중 오류가 발생하였습니다."); } - } - - - - - - - } diff --git a/src/main/java/com/wb/domainserver/domain/mngr/promtn/purchs/controller/PurchsEvtController.java b/src/main/java/com/wb/domainserver/domain/mngr/promtn/purchs/controller/PurchsEvtController.java index c564ff26..222ac8ff 100644 --- a/src/main/java/com/wb/domainserver/domain/mngr/promtn/purchs/controller/PurchsEvtController.java +++ b/src/main/java/com/wb/domainserver/domain/mngr/promtn/purchs/controller/PurchsEvtController.java @@ -1,25 +1,32 @@ package com.wb.domainserver.domain.mngr.promtn.purchs.controller; import com.wb.domainserver.common.msg.GconeMessageSource; -import com.wb.domainserver.domain.mngr.goods.goodsmngr.vo.GoodsmngrVO; -import com.wb.domainserver.domain.mngr.promtn.purchs.vo.PurchsEvtDiscountBnefVO; -import com.wb.domainserver.domain.mngr.promtn.purchs.vo.PurchsEvtVO; +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.admin.sys.ctgry.service.BOMaCtgryService; +import com.wb.domainserver.domain.gcone.goods.goods.vo.BOGoodsVO; +import com.wb.domainserver.domain.gcone.promtn.purchs.service.BOPurchsEvtService; +import com.wb.domainserver.domain.gcone.promtn.purchs.vo.BOPurchsEvtDiscountBnefVO; +import com.wb.domainserver.domain.gcone.promtn.purchs.vo.BOPurchsEvtVO; import com.wb.domainserver.exception.WnbtRestException; import com.wb.domainserver.response.WnbtResponse; +import com.wb.domainserver.response.WnbtResponseBody; import com.wb.domainserver.response.WnbtWebClientResponseHandler; +import com.wb.domainserver.security.authentication.AnonymousUser; +import com.wb.domainserver.security.authentication.MemberJwtContextHolder; import com.wb.domainserver.security.authorization.annotation.AuthPolicy; import com.wb.domainserver.security.authorization.annotation.Policy; -import com.wb.domainserver.util.communicate.RESRC; -import com.wb.domainserver.util.communicate.ReplyFromResrc; import com.wb.domainserver.util.communicate.SendToResrc; import com.wb.domainserver.util.communicate.ValidateResultConverter; -import com.wb.domainserver.util.file.FileMngUtil; +import com.wb.domainserver.util.dataaccess.DataMap; import com.wb.domainserver.util.file.service.FileStorageService; import jakarta.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; import org.apache.tika.utils.StringUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -66,18 +73,20 @@ public class PurchsEvtController { @Autowired private GconeMessageSource gconeMessageSource; - @Autowired - private FileMngUtil fileMngUtil; - @Autowired private FileStorageService filestore; - @Value("${mngrfo.common.fileupload.uploaddirs.goods}") - private String uploadFilePath; + @Autowired + private BOPurchsEvtService service; - @Value("${mngrfo.common.fileupload.extensions.images}") - private String whiteListFileUploadExtensions; + @Autowired + private BOMaCtgryService boMaCtgryService; + @Autowired + private PaginationProperties paginationProperties; + + @Autowired + private BOMaComncdService bOMaComncdService; /** @@ -87,13 +96,28 @@ public class PurchsEvtController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectPurchsEvtListInqireForm") - public String selectPurchsEvtListInqireForm(PurchsEvtVO purchsEvtVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { + public String selectPurchsEvtListInqireForm(BOPurchsEvtVO purchsEvtVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { purchsEvtVO.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/purchs/selectBOPurchsEvtListInqireForm", purchsEvtVO), - model, - "resultMap" - ); + + Map content = new HashMap<>(); + log.debug("*****pageunit : {}", paginationProperties.getPageUnit()); + + // 공통코드 호출 + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + bOMaComncdVO.setGroupCd("PURCHS_EVT_DV"); // 구매이벤트구분코드 + List purchsEvtDvList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + // 검색 값 할당 + content.put("paramVO", purchsEvtVO); + content.put("purchsEvtDvList", purchsEvtDvList); + log.debug("purchsVO is {}", purchsEvtVO); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/purchs/selectBOPurchsEvtListInqireForm", purchsEvtVO), +// model, +// "resultMap" +// ); return "mngr/promtn/purchs/PurchsEvtListInqireRForm"; } @@ -106,13 +130,61 @@ public class PurchsEvtController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectPurchsEvtListInqire") - public String selectPurchsEvtListInqire(PurchsEvtVO purchsEvtVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { + public String selectPurchsEvtListInqire(BOPurchsEvtVO purchsEvtVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { purchsEvtVO.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/purchs/selectBOPurchsEvtListInqire", purchsEvtVO), - model, - "resultMap" - ); + + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + purchsEvtVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드 + } + purchsEvtVO.setRegusr(user.getUserInnb()); // 등록자 + purchsEvtVO.setUpdusr(user.getUserInnb()); // 수정자 + + Map content = new HashMap<>(); + log.debug("*****pageunit : {}", paginationProperties.getPageUnit()); + + // 페이징 객체 생성 & 페이징정보 할당 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(purchsEvtVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(purchsEvtVO.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + + purchsEvtVO.setPaginationInfo(paginationInfo); + purchsEvtVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + purchsEvtVO.setLastIndex(paginationInfo.getLastRecordIndex()); + purchsEvtVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + // 구매이벤트 목록 조회 + List resultList = service.selectBOPurchsEvtListInqire(purchsEvtVO); + log.debug("resultList is {}", resultList); + + // 진행건수 + Integer ingCnt = service.selectBOPurchsEvtListIngCnt(purchsEvtVO); + // 종료건수 + Integer endCnt = service.selectBOPurchsEvtListEndCnt(purchsEvtVO); + + // 공통코드 호출 + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + bOMaComncdVO.setGroupCd("PURCHS_EVT_DV"); // 구매이벤트구분코드 + List purchsEvtDvList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + // 맵에 페이징 정보와 리스트를 넣어줌 + content.put("paramVO", purchsEvtVO); + content.put("resultList", resultList); + content.put("paginationInfo", purchsEvtVO.getPaginationInfo()); + content.put("purchsEvtDvList", purchsEvtDvList); + content.put("ingCnt", ingCnt); + content.put("endCnt", endCnt); + + log.debug("purchsVO is {}", purchsEvtVO); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/purchs/selectBOPurchsEvtListInqire", purchsEvtVO), +// model, +// "resultMap" +// ); model.addAttribute("purchsEvtVO", purchsEvtVO); return "mngr/promtn/purchs/PurchsEvtListInqireR"; @@ -125,13 +197,30 @@ public class PurchsEvtController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/deletePurchsEvtDel" , method = RequestMethod.POST) - public ResponseEntity deletePurchsEvtDel(PurchsEvtVO purchsEvtVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) { + @RequestMapping(value="/deletePurchsEvtDel" , method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity deletePurchsEvtDel(BOPurchsEvtVO purchsEvtVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) { purchsEvtVO.setSopmalCd(authSopmalCd); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/purchs/deleteBOPurchsEvtDel", purchsEvtVO), - ReplyFromResrc::getReply + + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + purchsEvtVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드 + } + purchsEvtVO.setUpdusr(user.getUserInnb()); // 수정자 + + // 구매이벤트 삭제 로직 + Map message = new HashMap<>(); + message = service.deleteBOPurchsEvtDel(purchsEvtVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/purchs/deleteBOPurchsEvtDel", purchsEvtVO), +// ReplyFromResrc::getReply +// ); } @@ -141,17 +230,67 @@ public class PurchsEvtController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectPurchsEvtRegistForm") - public String selectPurchsEvtRegistForm(PurchsEvtVO purchsEvtVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { + public String selectPurchsEvtRegistForm(BOPurchsEvtVO purchsEvtVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { purchsEvtVO.setSopmalCd(authSopmalCd); - GoodsmngrVO vo = new GoodsmngrVO(); - vo.setUpperCtgryId("2"); purchsEvtVO.setUpperCtgryId("2"); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/purchs/selectBOPurchsEvtRegistForm", purchsEvtVO), - model, - "resultMap" - ); + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + purchsEvtVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드 + } + + // 공통코드 호출 + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + bOMaComncdVO.setGroupCd("PURCHS_EVT_DV"); // 구매이벤트구분코드 + List purchsEvtDvList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("GOODS_APPLC_DV"); // 적용대상 제한구분코드 + List goodsCtgryLmttDvCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("BNEF_DV"); // 쿠폰혜택구분 + List benfDvList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("MLG_ACCML_UNIT_DV"); // 마일리지 금액비율 + List milageAmtRtDvList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("DSCNT_UNIT_DV"); // 할인단위구분 금액비율 + List discountAmtRtDvList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("DAY_DV"); // 요일코드 + List applcDowDvList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("EVT_TRGET_DV"); // 이벤트 대상구분코드 + List evtTrgetDvList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("DSCNT_BNEF_DV"); // 할인 혜택 구분 코드 + List dscntBnefDvCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + + BOGoodsVO vo = new BOGoodsVO(); + + vo.setUpperCtgryId(purchsEvtVO.getUpperCtgryId()); + vo.setSopmalCd(purchsEvtVO.getSopmalCd()); + List GoodsCategoryList = boMaCtgryService.selectGoodsCategoryList(vo); + + + + Map result = service.selectBOPurchsEvtRegistForm(purchsEvtVO); + + Map content = new HashMap<>(); + + content.put("purchsEvtDvList", purchsEvtDvList); + content.put("goodsCtgryLmttDvCdList", goodsCtgryLmttDvCdList); + content.put("benfDvList", benfDvList); + content.put("milageAmtRtDvList", milageAmtRtDvList); + content.put("discountAmtRtDvList", discountAmtRtDvList); + content.put("applcDowDvList", applcDowDvList); + content.put("evtTrgetDvList", evtTrgetDvList); + content.put("dscntBnefDvCdList", dscntBnefDvCdList); + + content.put("goodsCategoryList", GoodsCategoryList); // 카테고리 depth1 + + content.put("result", result); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/purchs/selectBOPurchsEvtRegistForm", purchsEvtVO), +// model, +// "resultMap" +// ); model.addAttribute("purchsEvtVO", purchsEvtVO); return "mngr/promtn/purchs/PurchsEvtRegistC"; @@ -162,7 +301,7 @@ public class PurchsEvtController { * Validate체크 등록, 수정 * @param purchsEvtVO */ - private void customValidatePurchsEvt(PurchsEvtVO purchsEvtVO) { + private void customValidatePurchsEvt(BOPurchsEvtVO purchsEvtVO) { List> errorList = new ArrayList<>(); @@ -234,7 +373,7 @@ public class PurchsEvtController { if (purchsEvtVO.getDiscountBnefVOList() != null && !purchsEvtVO.getDiscountBnefVOList().isEmpty()) { - for (PurchsEvtDiscountBnefVO tempVO : purchsEvtVO.getDiscountBnefVOList()) { + for (BOPurchsEvtDiscountBnefVO tempVO : purchsEvtVO.getDiscountBnefVOList()) { if ("".equals(tempVO.getDscntMxmmAmt())) { tempVO.setDscntMxmmAmt(null); } @@ -264,7 +403,7 @@ public class PurchsEvtController { } - for (PurchsEvtDiscountBnefVO tempVO : purchsEvtVO.getDiscountBnefVOList()) { + for (BOPurchsEvtDiscountBnefVO tempVO : purchsEvtVO.getDiscountBnefVOList()) { if ("0".equals(tempVO.getProvdCnt())) { errorList.add(ValidateResultConverter.setErrorMap("error", "사은품 증정 개수는 최소 1개 이상입니다.")); @@ -294,8 +433,8 @@ public class PurchsEvtController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/insertPurchsEvtRegist") - public ResponseEntity insertPurchsEvtRegist(@Validated PurchsEvtVO purchsEvtVO, BindingResult bindingResult, HttpServletRequest request, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + @RequestMapping(value="/insertPurchsEvtRegist", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity insertPurchsEvtRegist(@Validated BOPurchsEvtVO purchsEvtVO, BindingResult bindingResult, HttpServletRequest request, @CookieValue(value = "authSopmalCd") String authSopmalCd){ purchsEvtVO.setSopmalCd(authSopmalCd); log.debug("purchsEvtVO : {}", purchsEvtVO); // 정합성 검사 @@ -349,10 +488,30 @@ public class PurchsEvtController { } - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/purchs/insertBOPurchsEvtRegist", purchsEvtVO), - ReplyFromResrc::getReply + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + purchsEvtVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드 + } + purchsEvtVO.setRegusr(user.getUserInnb()); // 등록자 + purchsEvtVO.setUpdusr(user.getUserInnb()); // 수정자 + + log.debug("BO purchsEvtVO : {}", purchsEvtVO); + + // 구매이벤트 등록 로직 + Map message = new HashMap<>(); + message = service.insertBOPurchsEvtRegist(purchsEvtVO); + log.debug("message 성공 확인 : {}", message); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/purchs/insertBOPurchsEvtRegist", purchsEvtVO), +// ReplyFromResrc::getReply +// ); } @@ -385,18 +544,74 @@ public class PurchsEvtController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectPurchsEvtDtlUpdtInqire") - public String selectPurchsEvtDtlUpdtInqire(PurchsEvtVO purchsEvtVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + public String selectPurchsEvtDtlUpdtInqire(BOPurchsEvtVO purchsEvtVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ purchsEvtVO.setSopmalCd(authSopmalCd); - GoodsmngrVO vo = new GoodsmngrVO(); - vo.setUpperCtgryId("2"); purchsEvtVO.setUpperCtgryId("2"); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/purchs/selectBOPurchsEvtDtlUpdtInqire", purchsEvtVO), - model, - "resultMap" - ); + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + purchsEvtVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드 + } + purchsEvtVO.setRegusr(user.getUserInnb()); // 등록자 + purchsEvtVO.setUpdusr(user.getUserInnb()); // 수정자 + + Map result = new HashMap<>(); + result = service.selectBOPurchsEvtDtlUpdtInqire(purchsEvtVO); + + Map relatedGoods = service.selectBOEvtIssueGoodsInfoInqire(purchsEvtVO); + log.debug("relatedGoods = {}", relatedGoods); + + List goodsCtgryList = service.selectBOEvtIssueCtgryInfoInqire(purchsEvtVO); + + // 공통코드 호출 + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + bOMaComncdVO.setGroupCd("PURCHS_EVT_DV"); // 구매이벤트구분코드 + List purchsEvtDvList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("GOODS_APPLC_DV"); // 적용대상 제한구분코드 + List goodsCtgryLmttDvCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("BNEF_DV"); // 쿠폰혜택구분 + List benfDvList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("MLG_ACCML_UNIT_DV"); // 마일리지 금액비율 + List milageAmtRtDvList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("DSCNT_UNIT_DV"); // 할인단위구분 금액비율 + List discountAmtRtDvList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("DAY_DV"); // 요일코드 + List applcDowDvList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("EVT_TRGET_DV"); // 이벤트 대상구분코드 + List evtTrgetDvList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("DSCNT_BNEF_DV"); // 할인 혜택 구분 코드 + List dscntBnefDvCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + BOGoodsVO vo = new BOGoodsVO(); + + vo.setUpperCtgryId(purchsEvtVO.getUpperCtgryId()); + vo.setSopmalCd(purchsEvtVO.getSopmalCd()); + List GoodsCategoryList = boMaCtgryService.selectGoodsCategoryList(vo); + + Map content = new HashMap<>(); + content.put("purchsEvtDvList", purchsEvtDvList); + content.put("goodsCtgryLmttDvCdList", goodsCtgryLmttDvCdList); + content.put("benfDvList", benfDvList); + content.put("milageAmtRtDvList", milageAmtRtDvList); + content.put("discountAmtRtDvList", discountAmtRtDvList); + content.put("applcDowDvList", applcDowDvList); + content.put("evtTrgetDvList", evtTrgetDvList); + content.put("dscntBnefDvCdList", dscntBnefDvCdList); + + content.put("goodsCategoryList", GoodsCategoryList); // 카테고리 depth1 + content.put("relatedGoods", relatedGoods); + content.put("goodsCtgryList", goodsCtgryList); + + content.put("result", result); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/purchs/selectBOPurchsEvtDtlUpdtInqire", purchsEvtVO), +// model, +// "resultMap" +// ); model.addAttribute("purchsEvtVO", purchsEvtVO); return "mngr/promtn/purchs/PurchsEvtDtlUpdtU"; @@ -411,13 +626,72 @@ public class PurchsEvtController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectPurchsEvtCopyForm") - public String selectPurchsEvtCopyForm(PurchsEvtVO purchsEvtVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + public String selectPurchsEvtCopyForm(BOPurchsEvtVO purchsEvtVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ purchsEvtVO.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/purchs/selectBOPurchsEvtDtlUpdtInqire", purchsEvtVO), - model, - "resultMap" - ); + + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + purchsEvtVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드 + } + purchsEvtVO.setRegusr(user.getUserInnb()); // 등록자 + purchsEvtVO.setUpdusr(user.getUserInnb()); // 수정자 + + Map result = new HashMap<>(); + result = service.selectBOPurchsEvtDtlUpdtInqire(purchsEvtVO); + + Map relatedGoods = service.selectBOEvtIssueGoodsInfoInqire(purchsEvtVO); + log.debug("relatedGoods = {}", relatedGoods); + + List goodsCtgryList = service.selectBOEvtIssueCtgryInfoInqire(purchsEvtVO); + + // 공통코드 호출 + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + bOMaComncdVO.setGroupCd("PURCHS_EVT_DV"); // 구매이벤트구분코드 + List purchsEvtDvList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("GOODS_APPLC_DV"); // 적용대상 제한구분코드 + List goodsCtgryLmttDvCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("BNEF_DV"); // 쿠폰혜택구분 + List benfDvList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("MLG_ACCML_UNIT_DV"); // 마일리지 금액비율 + List milageAmtRtDvList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("DSCNT_UNIT_DV"); // 할인단위구분 금액비율 + List discountAmtRtDvList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("DAY_DV"); // 요일코드 + List applcDowDvList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("EVT_TRGET_DV"); // 이벤트 대상구분코드 + List evtTrgetDvList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("DSCNT_BNEF_DV"); // 할인 혜택 구분 코드 + List dscntBnefDvCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + BOGoodsVO vo = new BOGoodsVO(); + + vo.setUpperCtgryId(purchsEvtVO.getUpperCtgryId()); + vo.setSopmalCd(purchsEvtVO.getSopmalCd()); + List GoodsCategoryList = boMaCtgryService.selectGoodsCategoryList(vo); + + Map content = new HashMap<>(); + content.put("purchsEvtDvList", purchsEvtDvList); + content.put("goodsCtgryLmttDvCdList", goodsCtgryLmttDvCdList); + content.put("benfDvList", benfDvList); + content.put("milageAmtRtDvList", milageAmtRtDvList); + content.put("discountAmtRtDvList", discountAmtRtDvList); + content.put("applcDowDvList", applcDowDvList); + content.put("evtTrgetDvList", evtTrgetDvList); + content.put("dscntBnefDvCdList", dscntBnefDvCdList); + + content.put("goodsCategoryList", GoodsCategoryList); // 카테고리 depth1 + content.put("relatedGoods", relatedGoods); + content.put("goodsCtgryList", goodsCtgryList); + + content.put("result", result); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/purchs/selectBOPurchsEvtDtlUpdtInqire", purchsEvtVO), +// model, +// "resultMap" +// ); model.addAttribute("purchsEvtVO", purchsEvtVO); return "mngr/promtn/purchs/PurchsEvtCopyC"; @@ -430,8 +704,8 @@ public class PurchsEvtController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/updatePurchsEvtUpdt") - public ResponseEntity updatePurchsEvtUpdt(@Validated PurchsEvtVO purchsEvtVO, BindingResult bindingResult, HttpServletRequest request, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + @RequestMapping(value="/updatePurchsEvtUpdt", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updatePurchsEvtUpdt(@Validated BOPurchsEvtVO purchsEvtVO, BindingResult bindingResult, HttpServletRequest request, @CookieValue(value = "authSopmalCd") String authSopmalCd){ purchsEvtVO.setSopmalCd(authSopmalCd); // 정합성 검사 if (bindingResult.hasErrors()) { @@ -453,10 +727,28 @@ public class PurchsEvtController { } purchsEvtVO.setFileInfo(ulpladFileMap); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/purchs/updateBOPurchsEvtUpdt", purchsEvtVO), - ReplyFromResrc::getReply + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + purchsEvtVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드 + } + purchsEvtVO.setUpdusr(user.getUserInnb()); // 수정자 + + log.debug("BO purchsEvtVO : {}", purchsEvtVO); + + // 구매이벤트 등록 로직 + Map message = new HashMap<>(); + message = service.updateBOPurchsEvtUpdt(purchsEvtVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/purchs/updateBOPurchsEvtUpdt", purchsEvtVO), +// ReplyFromResrc::getReply +// ); } @@ -468,7 +760,7 @@ public class PurchsEvtController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectEvtBannerSortPopupForm") - public String selectEvtBannerSortForm(PurchsEvtVO purchsEvtVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + public String selectEvtBannerSortForm(BOPurchsEvtVO purchsEvtVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ purchsEvtVO.setSopmalCd(authSopmalCd); /*진행 중인 이벤트와 배너 이미지 있는 이벤트 조건 부여*/ String[] srchStatus = {"i"}; @@ -477,11 +769,59 @@ public class PurchsEvtController { purchsEvtVO.setSortDv("banner"); purchsEvtVO.setPageIndex(1); purchsEvtVO.setPageUnit(50); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/purchs/selectBOPurchsEvtListInqire", purchsEvtVO), - model, - "resultMap" - ); + + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + purchsEvtVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드 + } + purchsEvtVO.setRegusr(user.getUserInnb()); // 등록자 + purchsEvtVO.setUpdusr(user.getUserInnb()); // 수정자 + + Map content = new HashMap<>(); + log.debug("*****pageunit : {}", paginationProperties.getPageUnit()); + + // 페이징 객체 생성 & 페이징정보 할당 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(purchsEvtVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(purchsEvtVO.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + + purchsEvtVO.setPaginationInfo(paginationInfo); + purchsEvtVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + purchsEvtVO.setLastIndex(paginationInfo.getLastRecordIndex()); + purchsEvtVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + // 구매이벤트 목록 조회 + List resultList = service.selectBOPurchsEvtListInqire(purchsEvtVO); + log.debug("resultList is {}", resultList); + + // 진행건수 + Integer ingCnt = service.selectBOPurchsEvtListIngCnt(purchsEvtVO); + // 종료건수 + Integer endCnt = service.selectBOPurchsEvtListEndCnt(purchsEvtVO); + + // 공통코드 호출 + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + bOMaComncdVO.setGroupCd("PURCHS_EVT_DV"); // 구매이벤트구분코드 + List purchsEvtDvList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + // 맵에 페이징 정보와 리스트를 넣어줌 + content.put("paramVO", purchsEvtVO); + content.put("resultList", resultList); + content.put("paginationInfo", purchsEvtVO.getPaginationInfo()); + content.put("purchsEvtDvList", purchsEvtDvList); + content.put("ingCnt", ingCnt); + content.put("endCnt", endCnt); + + log.debug("purchsVO is {}", purchsEvtVO); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/purchs/selectBOPurchsEvtListInqire", purchsEvtVO), +// model, +// "resultMap" +// ); return "mngr/promtn/purchs/PurchsEvtBannerPopupForm"; } @@ -491,8 +831,8 @@ public class PurchsEvtController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/updateEvtBannerSort") - public ResponseEntity updateEvtBannerSort(PurchsEvtVO purchsEvtVO, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + @RequestMapping(value="/updateEvtBannerSort", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateEvtBannerSort(BOPurchsEvtVO purchsEvtVO, @CookieValue(value = "authSopmalCd") String authSopmalCd){ purchsEvtVO.setSopmalCd(authSopmalCd); log.debug("purchsEvtVO 확인 => {}", purchsEvtVO); /*진행 중인 이벤트와 배너 이미지 있는 이벤트 조건 부여*/ @@ -502,9 +842,21 @@ public class PurchsEvtController { purchsEvtVO.setSortDv("banner"); purchsEvtVO.setPageIndex(1); purchsEvtVO.setPageUnit(50); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/purchs/updateBOEvtBannerSort", purchsEvtVO), - ReplyFromResrc::getReply + + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + purchsEvtVO.setUpdusr(user.getUserInnb()); // 수정자 + + Map message = new HashMap<>(); + message = service.updateBOEvtBannerSort(purchsEvtVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/purchs/updateBOEvtBannerSort", purchsEvtVO), +// ReplyFromResrc::getReply +// ); } } diff --git a/src/main/java/com/wb/domainserver/domain/mngr/puri/controller/PuriController.java b/src/main/java/com/wb/domainserver/domain/mngr/puri/controller/PuriController.java index 611bebf5..6a5eee7d 100644 --- a/src/main/java/com/wb/domainserver/domain/mngr/puri/controller/PuriController.java +++ b/src/main/java/com/wb/domainserver/domain/mngr/puri/controller/PuriController.java @@ -1,23 +1,39 @@ package com.wb.domainserver.domain.mngr.puri.controller; +import com.fasterxml.jackson.databind.ObjectMapper; 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.puri.service.BOPuriService; +import com.wb.domainserver.domain.gcone.puri.vo.BOPuriSrchVO; import com.wb.domainserver.domain.mngr.puri.vo.PuriSrchVO; import com.wb.domainserver.response.WnbtResponse; +import com.wb.domainserver.response.WnbtResponseBody; import com.wb.domainserver.response.WnbtWebClientResponseHandler; +import com.wb.domainserver.security.authentication.AnonymousUser; +import com.wb.domainserver.security.authentication.MemberJwtContextHolder; import com.wb.domainserver.security.authorization.annotation.AuthPolicy; import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.util.communicate.RESRC; import com.wb.domainserver.util.communicate.ReplyFromResrc; import com.wb.domainserver.util.communicate.SendToResrc; +import com.wb.domainserver.util.dataaccess.DataMap; import lombok.extern.slf4j.Slf4j; +import org.json.simple.JSONObject; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.*; -import java.util.Map; +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.*; @Slf4j @@ -36,6 +52,15 @@ public class PuriController { @Autowired private GconeMessageSource gconeMessageSource; + @Autowired + private BOPuriService service; + + @Autowired + private PaginationProperties paginationProperties; + + @Value("${secret.key}") + private String secretKey; + /** * 정수기 판매 및 설치내역 * @param vo 게시판 등록 파라미터 VO @@ -43,13 +68,44 @@ public class PuriController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectPuriOrderListR") - public String selectPuriOrderListR(PuriSrchVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + public String selectPuriOrderListR(BOPuriSrchVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ vo.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/puri/selectPuriOrderListR", vo), - model, - "resultMap" - ); + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + 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()); + vo.setSecretKey(secretKey); + + List list = new ArrayList<>(); + list = service.selectBOPuriOrderList(vo); + + log.debug("asdsadasdsa" + vo.getPaginationInfo().getTotalRecordCount()); + + content.put("list", list); + content.put("BOPuriSrchVO", vo); + content.put("paginationInfo", vo.getPaginationInfo()); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/puri/selectPuriOrderListR", vo), +// model, +// "resultMap" +// ); return "mngr/puri/PuriOrderListR"; } @@ -60,13 +116,23 @@ public class PuriController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectPuriOrderListForm") - public String selectPuriOrderListForm(PuriSrchVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + public String selectPuriOrderListForm(BOPuriSrchVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ vo.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/puri/selectPuriOrderListForm", vo), - model, - "resultMap" - ); + + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + + DataMap content = new DataMap(); + content.put("BOPuriSrchVO", vo); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/puri/selectPuriOrderListForm", vo), +// model, +// "resultMap" +// ); return "mngr/puri/PuriOrderList"; } @@ -85,7 +151,7 @@ public class PuriController { /** * 정수기 필터 교체 문자 발송 내역 - * @param vo 게시판 등록 파라미터 VO + * @param puriAllimSeq 게시판 등록 파라미터 VO * @return String JSP 경로 */ @Policy(AuthPolicy.RESTRICTED) @@ -93,49 +159,104 @@ public class PuriController { @ResponseBody public Map selectPuriAllimList(@RequestParam Integer puriAllimSeq){ - PuriSrchVO vo = new PuriSrchVO(); + BOPuriSrchVO vo = new BOPuriSrchVO(); vo.setPuriAllimSeq(puriAllimSeq); log.debug(" 검색 파라미터 확인 231: {}", vo); - Map resultMap = responseHandler.handleResponseAsMap( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/puri/selectPuriAllimList", vo) - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + vo.setSecretKey(secretKey); + + log.debug(" 검색 파라미터 확인 231: {}", vo); + + Map resultMap = new HashMap<>(); + List list = new ArrayList<>(); + list = service.selectPuriAllimList(vo); + + resultMap.put("list", list); + +// Map resultMap = responseHandler.handleResponseAsMap( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/puri/selectPuriAllimList", vo) +// ); return resultMap; } /** * 정수기 필터 상세 페이지 puri_order 내역 업데이트 - * @param vo 게시판 등록 파라미터 VO + * @param formData 게시판 등록 파라미터 VO */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/updatePuriOrder" , method= RequestMethod.POST) + @RequestMapping(value="/updatePuriOrder" , method= RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) @ResponseBody public ResponseEntity updatePuriOrder(@RequestParam Map formData){ log.debug(" 검색 파라미터 확인 231: {}", formData); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/puri/updatePuriOrder", formData), - ReplyFromResrc::getReply + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + + DataMap content = new DataMap(); + service.updatePuriOrder(formData); + content.put("status", "success"); + content.put("message", "정수기 필터 주문 내역이 성공적으로 업데이트되었습니다."); + content.put("updatedData", formData); + + ObjectMapper objectMapper = new ObjectMapper(); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/puri/updatePuriOrder", formData), +// ReplyFromResrc::getReply +// ); } /** * 정수기 필터 상세 페이지 puri_allim 내역 업데이트 - * @param vo 게시판 등록 파라미터 VO + * @param formData 게시판 등록 파라미터 VO */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/updatePuriAllim" , method= RequestMethod.POST) + @RequestMapping(value="/updatePuriAllim" , method= RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) @ResponseBody public ResponseEntity updatePuriAllim(@RequestParam Map formData){ log.debug(" 검색 파라미터 확인 231: {}", formData); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/puri/updatePuriAllim", formData), - ReplyFromResrc::getReply + DataMap content = new DataMap(); + String puriAllimSeq = formData.get("puriAllimSeq").toString(); + + if("".equals(formData.get("installDe").toString())){ + formData.put("installDe", null); + } + + String telnb = formData.get("telnbOne").toString() + formData.get("telnbTwo").toString() + formData.get("telnbThree").toString(); + formData.put("telnb", telnb); + formData.put("secretKey",secretKey); + if(puriAllimSeq == "" || puriAllimSeq == null){ + service.insertPuriAllim(formData); + } else{ + service.updatePuriAllim(formData); + } + + + content.put("status", "success"); + content.put("message", "정수기 필터 알림 내역이 성공적으로 업데이트되었습니다."); + content.put("updatedData", formData); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/puri/updatePuriAllim", formData), +// ReplyFromResrc::getReply +// ); } /** @@ -153,20 +274,242 @@ public class PuriController { /** * 정수기 기사 설치 방문일 갱신 - * @param vo 게시판 등록 파라미터 VO + * @param formData 게시판 등록 파라미터 VO */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/updateVisitDate" , method= RequestMethod.POST) + @RequestMapping(value="/updateVisitDate" , method= RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) @ResponseBody public ResponseEntity updateVisitDate(@RequestParam Map formData){ log.debug(" 검색 파라미터 확인 231: {}", formData); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/puri/updateVisitDate", formData), - ReplyFromResrc::getReply + DataMap content = new DataMap(); + String dataList = formData.get("textData").toString().replace(" ", ""); + String mode = formData.get("mode").toString(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String jsonResult = ""; + LocalDate baseDate = LocalDate.of(2020,01,01); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + + List splitArr = new ArrayList<>(); + List ordrCdArr = new ArrayList<>(); + List visitDateArr = new ArrayList<>(); + List realUpateOrdrCdArr = new ArrayList<>(); + List realUpdateVisitDateArr = new ArrayList<>(); + List puriOrderSeqArr = new ArrayList<>(); + + List tsPuriAllimDupLogList = new ArrayList<>(); + List updateStopPuriAllimList = new ArrayList<>(); + + List allimlist = new ArrayList<>(); + + + Map paramMap = new HashMap<>(); + Map updateParamMap = new HashMap<>(); + + int failCnt = 0; + + // ,로 1차분류 |로 2차분류함 첫번쨰 인덱스 주문번호 두번쨰 방문일 + if(!"".equals(dataList)){ + String[] splitData = dataList.split("\n"); + splitArr = Arrays.asList(splitData); + + for (String data : splitArr){ + String[] splitTwo = data.split("\t"); + + if (splitTwo.length > 0) { + ordrCdArr.add(splitTwo[0].trim()); + } + if (splitTwo.length > 1) { + visitDateArr.add(splitTwo[1].trim()); + } + } + for (int i=0; i ordrList = service.selectPuriVisitUpdate(paramMap); + + if(!ordrList.isEmpty()) { + + if(ordrList.size() > 1) { + failCnt++; + } else { + Long puriOrderSeq = (Long) ordrList.get(0).get("puriOrderSeq"); + puriOrderSeqArr.add(puriOrderSeq.intValue()); + DataMap allim = new DataMap(); + allim.put("puriOrderSeq",puriOrderSeq.intValue()); + allim.put("status","wait"); + allim.put("cttpc",(String) ordrList.get(0).get("cttpc")); + allim.put("cstmrNm",(String) ordrList.get(0).get("purchsrNm")); + allim.put("installDe",realUpdateVisitDateArr.get(i)); + allim.put("nextSndngResveDe",getNextDate(LocalDate.parse(realUpdateVisitDateArr.get(i),formatter),baseDate)); + allim.put("telnb",(String) ordrList.get(0).get("dlivyCttpc")); + allim.put("chngLog",getChangeLog("regist")); + allim.put("secretKey", secretKey); + allimlist.add(allim); + + } + + } else { + failCnt++; + } + } + } + if(!puriOrderSeqArr.isEmpty() && !realUpdateVisitDateArr.isEmpty()) { + // gc_puri_allim 테이블 insert 및 gc_puri_order 테이블 seq 업데이트 + for(Integer puriOrderSeq : puriOrderSeqArr){ + List dupList = service.selectDupPuriOrderAllimList(puriOrderSeq); + updateParamMap.put("puriOrderSeqArr",puriOrderSeqArr); + updateParamMap.put("realUpdateVisitDateArr",realUpdateVisitDateArr); + // 중복데이터 리턴처리 + if(!dupList.isEmpty()) { + if ("clear".equals(mode)) { + service.updatePuriVisitCancelDate(updateParamMap); + service.deletePuriAllim(dupList); + content.put("status", "success"); + content.put("message", "방문일 등록 취소가 완료되었습니다."); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() + ); + } + service.updatePuriVisitDate(updateParamMap); + content.put("status", "error"); + content.put("message", "해당 판매에 대한 알림이 이미 등록되어있습니다."); + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() + ); + } + + } + + service.insertPuriAllimList(allimlist); + + //전화번호 중복 처리 + if(!allimlist.isEmpty()) { + List allimSameList = service.selectSameNumber(allimlist); + + if(allimSameList != null && !allimSameList.isEmpty()) { + for (DataMap puriAllimSeq : allimSameList ) { + DataMap tsPuriAllimDupLog = new DataMap(); + DataMap updateStopAllim = new DataMap(); + + updateStopAllim.put("secretKey",secretKey); + updateStopAllim.put("puriAllimSeq",puriAllimSeq); + updateStopAllim.put("chngLog",getChangeLog("stop")); + updateStopPuriAllimList.add(updateStopAllim); + + tsPuriAllimDupLog.put("puriAllimSeq",puriAllimSeq); + tsPuriAllimDupLog.put("act","stop"); + tsPuriAllimDupLog.put("secretKey",secretKey); + tsPuriAllimDupLog.put("sndngCn","발송번호 중복으로 이전 알림 자동 중지(" + puriAllimSeq + ")"); + tsPuriAllimDupLogList.add(tsPuriAllimDupLog); + } + service.insertPuriAllimLogFirst(tsPuriAllimDupLogList); + service.updateStopAllim(updateStopPuriAllimList); + } + } + + content.put("status", "success"); + content.put("message", "전체 " + splitArr.size() + "건 중" + allimlist.size() + "건 성공 " + failCnt +"건 실패)"); + content.put("updatedData", formData); + + + + } else { + + content.put("status", "error"); + content.put("message", "데이터없음"); + } + + } else { + + content.put("status", "error"); + content.put("message", "데이터없음"); + } + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/puri/updateVisitDate", formData), +// ReplyFromResrc::getReply +// ); } + public static boolean vaildateVisitDate (String visitDate) { + + if("".equals(visitDate)) { + return false; + } + + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + dateFormat.setLenient(false); + LocalDate baseDate = LocalDate.of(2020,01,01); + + try { + Date pareDate = dateFormat.parse(visitDate); + + LocalDate parseDates = LocalDate.parse(visitDate,formatter); + + if (parseDates.isBefore(baseDate) || parseDates.isEqual(baseDate)) { + return false; + } + + String formattedDate = dateFormat.format(pareDate); + + if(!visitDate.equals(formattedDate)) { + return false; + } + } catch (Exception e) { + return false; + } + + return true; + } + + public static String getChangeLog(String status) { + // 현재 시간 포맷팅 + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String currentTime = formatter.format(new Date()); + JSONObject changeList = new JSONObject(); + changeList.put("status", status); + + + return new String("[" + currentTime + ", C ]" + changeList.toString()); + } + + public static LocalDate getNextDate(LocalDate dlivyDe, LocalDate baseDate) { + if(dlivyDe.isBefore(baseDate)) { + return null; + } + + LocalDate nextDate = dlivyDe.plusMonths(6).minusDays(7); + + LocalDate today = LocalDate.now(); + + while (nextDate.isBefore(today)) { + nextDate = nextDate.plusMonths(6); + } + + return nextDate; + } } diff --git a/src/main/java/com/wb/domainserver/domain/mngr/setup/dlvygrp/controller/SetupDlvygrpController.java b/src/main/java/com/wb/domainserver/domain/mngr/setup/dlvygrp/controller/SetupDlvygrpController.java index ef381912..83cc3bd4 100644 --- a/src/main/java/com/wb/domainserver/domain/mngr/setup/dlvygrp/controller/SetupDlvygrpController.java +++ b/src/main/java/com/wb/domainserver/domain/mngr/setup/dlvygrp/controller/SetupDlvygrpController.java @@ -1,10 +1,17 @@ package com.wb.domainserver.domain.mngr.setup.dlvygrp.controller; import com.wb.domainserver.common.msg.GconeMessageSource; +import com.wb.domainserver.common.mvc.tags.ui.pagination.PaginationInfo; +import com.wb.domainserver.common.prop.PaginationProperties; +import com.wb.domainserver.domain.gcone.setup.dlvygrp.service.BODlvygrpService; +import com.wb.domainserver.domain.gcone.setup.dlvygrp.vo.BODlvygrpVO; import com.wb.domainserver.domain.mngr.setup.dlvygrp.vo.SetupDlvygrpVO; import com.wb.domainserver.exception.WnbtRestException; import com.wb.domainserver.response.WnbtResponse; +import com.wb.domainserver.response.WnbtResponseBody; import com.wb.domainserver.response.WnbtWebClientResponseHandler; +import com.wb.domainserver.security.authentication.AnonymousUser; +import com.wb.domainserver.security.authentication.MemberJwtContextHolder; import com.wb.domainserver.security.authorization.annotation.AuthPolicy; import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.util.communicate.RESRC; @@ -14,6 +21,7 @@ import com.wb.domainserver.util.communicate.ValidateResultConverter; import com.wb.domainserver.util.string.StringUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -23,6 +31,10 @@ import org.springframework.web.bind.annotation.CookieValue; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + /** * Dlvygrp Controller Class (front) * @@ -58,24 +70,56 @@ public class SetupDlvygrpController { @Autowired private GconeMessageSource gconeMessageSource; + @Autowired + private BODlvygrpService service; + @Autowired + private PaginationProperties paginationProperties; + /** * 배송그룹 목록 조회 - * @param SetupDlvygrpVO 배송그룹VO - * @param ModelMap 모델객체 + * @param dlvyGroup 배송그룹VO + * @param model 모델객체 * @return DlvyGroupListR.jsp 배송그룹목록 */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/dlvyGroupListR") - public String selectDlvyGroupList(SetupDlvygrpVO dlvyGroup, + public String selectDlvyGroupList(BODlvygrpVO dlvyGroup, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { - dlvyGroup.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/dlvygrp/selectBODlvyGroupList", dlvyGroup), - model, - "resultMap" - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + dlvyGroup.setSopmalCd(user.getSopmalCd()); + } + + Map content = new HashMap<>(); + //페이징 처리를 위한 pagination 객체 생성 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(dlvyGroup.getPageIndex()); + paginationInfo.setRecordCountPerPage(dlvyGroup.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + dlvyGroup.setPaginationInfo(paginationInfo); + + //페이징 처리를 위한 값 설정 + dlvyGroup.setFirstIndex(paginationInfo.getFirstRecordIndex()); + dlvyGroup.setLastIndex(paginationInfo.getLastRecordIndex()); + dlvyGroup.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + //배송그룹 목록조회 + List dlvyGroupList = service.selectBODlvyGroupList(dlvyGroup); + log.debug("selectBODlvyGroupList's dlvyGroupList : {}", dlvyGroupList); + + //배송그룹 목록조회 결과 설정 + content.put("BODlvygrpVO", dlvyGroup); + content.put("paginationInfo", dlvyGroup.getPaginationInfo()); + content.put("dlvyGroupList", dlvyGroupList); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/dlvygrp/selectBODlvyGroupList", dlvyGroup), +// model, +// "resultMap" +// ); return "mngr/setup/dlvygrp/DlvyGroupListR"; } @@ -92,13 +136,13 @@ public class SetupDlvygrpController { /** * 배송그룹 등록 - * @param SetupDlvygrpVO 배송그룹 등록 파라미터 VO + * @param dlvyGroup 배송그룹 등록 파라미터 VO * @param bindingResult 바인딩 및 정합성 점검결과 객체 * @return ResponseEntity 배송그룹 등록 결과 */ @Policy(AuthPolicy.RESTRICTED) - @PostMapping("/insertDlvyGroup") - public ResponseEntity insertDlvyGroup(@Validated SetupDlvygrpVO dlvyGroup, + @PostMapping(value="/insertDlvyGroup", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity insertDlvyGroup(@Validated BODlvygrpVO dlvyGroup, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) { dlvyGroup.setSopmalCd(authSopmalCd); @@ -162,119 +206,156 @@ public class SetupDlvygrpController { dlvyGroup.setReturnDlvyAmt(StringUtil.removeCommaChar(dlvyGroup.getReturnDlvyAmt())); dlvyGroup.setExchngDlvyAmt(StringUtil.removeCommaChar(dlvyGroup.getExchngDlvyAmt())); + //사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + dlvyGroup.setRegusr(user.getUserInnb()); + dlvyGroup.setUpdusr(user.getUserInnb()); + if("01".equals(user.getSysDvCd())){ + dlvyGroup.setSopmalCd(user.getSopmalCd()); + } + + //배송그릅 등록 처리 + Map message = service.insertBODlvyGroup(dlvyGroup); - //BO 발송그룹 등록 API 호출 //배송그룹 등록처리 결과 메시지(JSON) 처리 - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/dlvygrp/insertBODlvyGroup", dlvyGroup), - ReplyFromResrc::getReply + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/dlvygrp/insertBODlvyGroup", dlvyGroup), +// ReplyFromResrc::getReply +// ); + } + + + /*배송그룹 정보 조회*/ + private Map selectBODlvyGroupDtlForm(BODlvygrpVO dlvyGroup){ + //사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + dlvyGroup.setUpdusr(user.getUserInnb()); + if("01".equals(user.getSysDvCd())){ + dlvyGroup.setSopmalCd(user.getSopmalCd()); + } + + Map content = new HashMap<>(); + dlvyGroup = service.selectBODlvyGroupDtlForm(dlvyGroup); + content.put("dlvyGroup", dlvyGroup); + return content; } /** * 배송그룹 정보 상세조회(공통) - * @param SetupDlvygrpVO 배송그룹 파라미터 VO + * @param dlvyGroup 배송그룹 파라미터 VO * @param model 모델객체 * @return DlvyGroupDtlU.jsp 배송그룹 수정화면 */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/dlvyGroupDtlU") - public String selectDlvyGroupDtlForm(SetupDlvygrpVO dlvyGroup, + public String selectDlvyGroupDtlForm(BODlvygrpVO dlvyGroup, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { dlvyGroup.setSopmalCd(authSopmalCd); - //BO 배송그룹 등록 API 호출 - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/dlvygrp/selectBODlvyGroupDtlForm", dlvyGroup), - model, - "resultMap" - ); + Map content = selectBODlvyGroupDtlForm(dlvyGroup); + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/dlvygrp/selectBODlvyGroupDtlForm", dlvyGroup), +// model, +// "resultMap" +// ); return "mngr/setup/dlvygrp/DlvyGroupDtlU"; } /** * 조건부 무료배송 jsp 호출 - * @param SetupDlvygrpVO 배송그룹 파라미터 VO + * @param dlvyGroup 배송그룹 파라미터 VO * @param model 모델객체 * @return ConditionFreeDlvy.jsp 조건부무료배송 */ @Policy(AuthPolicy.RESTRICTED) @PostMapping(value="/conditionFreeDlvy") - public String findConditionFreeDlvy(SetupDlvygrpVO dlvyGroup, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + public String findConditionFreeDlvy(BODlvygrpVO dlvyGroup, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ //해당 배송그룹 구분이 아니면 jsp 호출 dlvyGroup.setSopmalCd(authSopmalCd); if("01".equals(dlvyGroup.getDlvyGroupDvCd()) && dlvyGroup.getDlvyGroupInnb() != null) { - //BO 배송그룹 정보 API 호출 - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/dlvygrp/selectBODlvyGroupDtlForm", dlvyGroup), - model, - "resultMap" - ); + + Map content = selectBODlvyGroupDtlForm(dlvyGroup); + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/dlvygrp/selectBODlvyGroupDtlForm", dlvyGroup), +// model, +// "resultMap" +// ); } return "mngr/setup/dlvygrp/ConditionFreeDlvy"; } /** * 무료배송 jsp 호출 - * @param SetupDlvygrpVO 배송그룹 파라미터 VO + * @param dlvyGroup 배송그룹 파라미터 VO * @param model 모델객체 * @return FreeDlvy.jsp 무료배송 */ @Policy(AuthPolicy.RESTRICTED) @PostMapping(value="/freeDlvy") - public String findFreeDlvy(SetupDlvygrpVO dlvyGroup, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + public String findFreeDlvy(BODlvygrpVO dlvyGroup, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ //해당 배송그룹 구분이 아니면 jsp 호출 dlvyGroup.setSopmalCd(authSopmalCd); if("02".equals(dlvyGroup.getDlvyGroupDvCd()) && dlvyGroup.getDlvyGroupInnb() != null) { - //BO 배송그룹 정보 API 호출 - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/dlvygrp/selectBODlvyGroupDtlForm", dlvyGroup), - model, - "resultMap" - ); + + Map content = selectBODlvyGroupDtlForm(dlvyGroup); + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/dlvygrp/selectBODlvyGroupDtlForm", dlvyGroup), +// model, +// "resultMap" +// ); } return "mngr/setup/dlvygrp/FreeDlvy"; } /** * 유료배송 jsp 호출 - * @param SetupDlvygrpVO 배송그룹 파라미터 VO + * @param dlvyGroup 배송그룹 파라미터 VO * @param model 모델객체 * @return PayDlvy.jsp 유료배송 */ @Policy(AuthPolicy.RESTRICTED) @PostMapping(value="/payDlvy") - public String findPayDlvy(SetupDlvygrpVO dlvyGroup, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ + public String findPayDlvy(BODlvygrpVO dlvyGroup, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){ //해당 배송그룹 구분이 아니면 jsp 호출 dlvyGroup.setSopmalCd(authSopmalCd); if("03".equals(dlvyGroup.getDlvyGroupDvCd()) && dlvyGroup.getDlvyGroupInnb() != null) { - //BO 배송그룹 정보 API 호출 - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/dlvygrp/selectBODlvyGroupDtlForm", dlvyGroup), - model, - "resultMap" - ); + + Map content = selectBODlvyGroupDtlForm(dlvyGroup); + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/dlvygrp/selectBODlvyGroupDtlForm", dlvyGroup), +// model, +// "resultMap" +// ); } return "mngr/setup/dlvygrp/PayDlvy"; } /** * 배송그룹 수정 - * @param SetupDlvygrpVO 배송그룹 파라미터 VO + * @param dlvyGroup 배송그룹 파라미터 VO * @param bindingResult 바인딩 및 정합성 점검결과 객체 * @return ResponseEntity 배송그룹 등록 결과 */ @Policy(AuthPolicy.RESTRICTED) - @PostMapping("/updateDlvyGroupDtl") - public ResponseEntity updateDlvyGroupDtl(@Validated SetupDlvygrpVO dlvyGroup, + @PostMapping(value="/updateDlvyGroupDtl", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateDlvyGroupDtl(@Validated BODlvygrpVO dlvyGroup, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) { dlvyGroup.setSopmalCd(authSopmalCd); @@ -340,31 +421,56 @@ public class SetupDlvygrpController { dlvyGroup.setReturnDlvyAmt(StringUtil.removeCommaChar(dlvyGroup.getReturnDlvyAmt())); dlvyGroup.setExchngDlvyAmt(StringUtil.removeCommaChar(dlvyGroup.getExchngDlvyAmt())); - //BO 배송그룹 수정 API 호출 //배송그룹 등록처리 결과 메시지(JSON) 처리 - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/dlvygrp/updateBODlvyGroupDtl", dlvyGroup), - ReplyFromResrc::getReply + //사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + dlvyGroup.setUpdusr(user.getUserInnb()); + if("01".equals(user.getSysDvCd())){ + dlvyGroup.setSopmalCd(user.getSopmalCd()); + } + + Map message = service.updateBODlvyGroupDtl(dlvyGroup); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/dlvygrp/updateBODlvyGroupDtl", dlvyGroup), +// ReplyFromResrc::getReply +// ); } /** * 배송그룹 삭제 - * @param SetupDlvygrpVO 배송그룹 파라미터 VO + * @param dlvyGroup 배송그룹 파라미터 VO * @return ResponseEntity 배송그룹 등록 결과 */ @Policy(AuthPolicy.RESTRICTED) - @PostMapping("/deleteDlvyGroup") - public ResponseEntity deleteDlvyGroup(SetupDlvygrpVO dlvyGroup, @CookieValue(value = "authSopmalCd") String authSopmalCd) { + @PostMapping(value = "/deleteDlvyGroup", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity deleteDlvyGroup(BODlvygrpVO dlvyGroup, @CookieValue(value = "authSopmalCd") String authSopmalCd) { dlvyGroup.setSopmalCd(authSopmalCd); - //BO 배송그룹 삭제 API 호출 //배송그룹 등록처리 결과 메시지(JSON) 처리 - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/dlvygrp/deleteBODlvyGroup", dlvyGroup), - ReplyFromResrc::getReply + //사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + dlvyGroup.setUpdusr(user.getUserInnb()); + if("01".equals(user.getSysDvCd())){ + dlvyGroup.setSopmalCd(user.getSopmalCd()); + } + + Map message = service.deleteBODlvyGroup(dlvyGroup); + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/dlvygrp/deleteBODlvyGroup", dlvyGroup), +// ReplyFromResrc::getReply +// ); } } diff --git a/src/main/java/com/wb/domainserver/domain/mngr/setup/mbr/controller/SetupMbrController.java b/src/main/java/com/wb/domainserver/domain/mngr/setup/mbr/controller/SetupMbrController.java index a29a920e..9bbcfc35 100644 --- a/src/main/java/com/wb/domainserver/domain/mngr/setup/mbr/controller/SetupMbrController.java +++ b/src/main/java/com/wb/domainserver/domain/mngr/setup/mbr/controller/SetupMbrController.java @@ -1,19 +1,30 @@ package com.wb.domainserver.domain.mngr.setup.mbr.controller; import com.wb.domainserver.common.msg.GconeMessageSource; +import com.wb.domainserver.common.mvc.tags.ui.pagination.PaginationInfo; +import com.wb.domainserver.common.prop.PaginationProperties; +import com.wb.domainserver.domain.admin.store.mbrgrad.service.BOMaMbrgradService; +import com.wb.domainserver.domain.admin.store.mbrgrad.vo.BOMaMbrgradVO; +import com.wb.domainserver.domain.gcone.setup.gradbnef.service.BOGradbnefService; +import com.wb.domainserver.domain.gcone.setup.gradbnef.vo.BOGradbnefVO; import com.wb.domainserver.domain.mngr.setup.mbr.vo.SetupMbrVO; import com.wb.domainserver.exception.WnbtRestException; import com.wb.domainserver.response.WnbtResponse; +import com.wb.domainserver.response.WnbtResponseBody; import com.wb.domainserver.response.WnbtWebClientResponseHandler; +import com.wb.domainserver.security.authentication.AnonymousUser; +import com.wb.domainserver.security.authentication.MemberJwtContextHolder; import com.wb.domainserver.security.authorization.annotation.AuthPolicy; import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.util.communicate.RESRC; import com.wb.domainserver.util.communicate.ReplyFromResrc; import com.wb.domainserver.util.communicate.SendToResrc; import com.wb.domainserver.util.communicate.ValidateResultConverter; +import com.wb.domainserver.util.dataaccess.DataMap; import com.wb.domainserver.util.string.StringUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -22,7 +33,9 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.CookieValue; import org.springframework.web.bind.annotation.RequestMapping; +import java.awt.*; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -58,71 +71,140 @@ public class SetupMbrController { @Autowired private GconeMessageSource gconeMessageSource; + @Autowired + private BOGradbnefService service; + @Autowired + private BOMaMbrgradService maMbrgradService; + @Autowired + private PaginationProperties paginationProperties; + /** * 등급 별 혜택 목록 검색 폼 이동 * @return GradBnefSrch.jsp */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectMbrGradSrchForm") - public String selectMbrGradSrch(ModelMap model,SetupMbrVO paramVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) { + public String selectMbrGradSrch(ModelMap model,BOGradbnefVO paramVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) { paramVO.setSopmalCd(authSopmalCd); - //BO 등급 별 혜택 목록 검색 폼 조회 API 호출 - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/gradbnef/selectBOMbrGradFormInqire", paramVO), - model, - "resultMap" - ); + if(StringUtil.isEmpty(paramVO.getSopmalCd())){ + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + paramVO.setSopmalCd(user.getSopmalCd()); + } + } + + //페이징 정보 set + Map reulstMap = new HashMap<>(); + reulstMap.put("paramVO", paramVO); + + model.addAttribute("resultMap", reulstMap); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/gradbnef/selectBOMbrGradFormInqire", paramVO), +// model, +// "resultMap" +// ); return "mngr/setup/mbr/GradBnefSrchR"; } /** * 등급 별 혜택 목록 조회 - * @param SetupMbrVO + * @param paramVO * @return GradBnefListR.jsp */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectMbrGradListInqire") - public String selectMbrGradListInqire(ModelMap model,SetupMbrVO paramVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) { - + public String selectMbrGradListInqire(ModelMap model,BOGradbnefVO paramVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) { paramVO.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO,"/gcone/setup/gradbnef/selectBOMbrGradListInqire", paramVO), - model, - "resultMap" - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + paramVO.setSopmalCd(user.getSopmalCd()); + } + + Map content = new HashMap<>(); + //페이징 정보 set + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(paramVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(paramVO.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + + paramVO.setPaginationInfo(paginationInfo); + paramVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + paramVO.setLastIndex(paginationInfo.getLastRecordIndex()); + paramVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + //회원 등급 목록 조회 + List resultList = service.selectBOMbrGradListInqire(paramVO); + + //회원 등급 산정 기간 조회(사용자) + Map gradGroup = new HashMap<>(); + if("sopmal".equals(paramVO.getServerDv())){ + BOMaMbrgradVO maMbrgradVO = new BOMaMbrgradVO(); + if("01".equals(user.getSysDvCd())){ + maMbrgradVO.setSopmalCd(paramVO.getSopmalCd()); + } + maMbrgradVO.setServerDv(paramVO.getServerDv()); + gradGroup = maMbrgradService.selectBOMbrGradUpdtForm(maMbrgradVO); + } + + //회원 등급 목록 조회 결과 및 페이징정보 넣기 + content.put("paramVO", paramVO); + content.put("resultList", resultList); + content.put("gradGroup", gradGroup); + content.put("paginationInfo", paramVO.getPaginationInfo()); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO,"/gcone/setup/gradbnef/selectBOMbrGradListInqire", paramVO), +// model, +// "resultMap" +// ); return "mngr/setup/mbr/GradBnefListR"; } /** * 등급 별 혜택 상세 페이지 이동 - * @param SetupMbrVO + * @param paramVO * @return GradBnefRegistU.jsp */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectGradBnefRegistInqire") - public String selectGradBnefRegistInqire(ModelMap model, SetupMbrVO paramVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) { + public String selectGradBnefRegistInqire(ModelMap model, BOGradbnefVO paramVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) { paramVO.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO,"/gcone/setup/gradbnef/selectBOGradBnefRegistInqire", paramVO), - model, - "resultMap" - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + paramVO.setSopmalCd(user.getSopmalCd()); + } + + Map content = new HashMap<>(); + + Map gradDtl = service.selectBOGradBnefRegistInqire(paramVO); + + //회원 등급 상세, 권한 그룹, vo + content.put("gradDtl", gradDtl); + content.put("vo", paramVO); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO,"/gcone/setup/gradbnef/selectBOGradBnefRegistInqire", paramVO), +// model, +// "resultMap" +// ); model.addAttribute("paramVO",paramVO); return "mngr/setup/mbr/GradBnefRegistU"; } /** * 등급 별 혜택 수정 - * @param SetupMbrVO + * @param paramVO * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/updateGradBnefUpdt") - public ResponseEntity updateGradBnefUpdt(@Validated SetupMbrVO paramVO + @RequestMapping(value="/updateGradBnefUpdt", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateGradBnefUpdt(@Validated BOGradbnefVO paramVO ,BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) { paramVO.setSopmalCd(authSopmalCd); @@ -171,10 +253,26 @@ public class SetupMbrController { if("Y".equals(paramVO.getValidPdChk())) { paramVO.setMlgValidMtCnt(null); } - //BO API 호출 => 등급 별 혜택 수정 - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/gradbnef/updateBOGradBnefUpdt", paramVO), - ReplyFromResrc::getReply + + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + paramVO.setSopmalCd(user.getSopmalCd()); + } + //등록자 수정자 set + paramVO.setRegusr(user.getUserInnb()); + paramVO.setUpdusr(user.getUserInnb()); + + //회원 등급 혜택 설정 저장 + service.updateBOGradBnefUpdt(paramVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody("")) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/gradbnef/updateBOGradBnefUpdt", paramVO), +// ReplyFromResrc::getReply +// ); } } diff --git a/src/main/java/com/wb/domainserver/domain/mngr/setup/mngr/controller/SetupMngrInfoController.java b/src/main/java/com/wb/domainserver/domain/mngr/setup/mngr/controller/SetupMngrInfoController.java index 6126a475..2d7c1192 100644 --- a/src/main/java/com/wb/domainserver/domain/mngr/setup/mngr/controller/SetupMngrInfoController.java +++ b/src/main/java/com/wb/domainserver/domain/mngr/setup/mngr/controller/SetupMngrInfoController.java @@ -1,14 +1,28 @@ package com.wb.domainserver.domain.mngr.setup.mngr.controller; import com.wb.domainserver.common.msg.GconeMessageSource; +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.user.mngr.service.BOJobUserService; +import com.wb.domainserver.domain.admin.user.mngr.vo.BOJobUserVO; +import com.wb.domainserver.domain.gcone.common.service.BOCommonService; +import com.wb.domainserver.domain.gcone.common.vo.BOCommonVO; +import com.wb.domainserver.domain.gcone.setup.mngr.sevice.BOMngrInfoService; +import com.wb.domainserver.domain.gcone.setup.mngr.vo.BOMngrInfoVO; import com.wb.domainserver.domain.mngr.setup.mngr.vo.SetupMngrInfoVO; import com.wb.domainserver.exception.WnbtRestException; +import com.wb.domainserver.response.WnbtResponse; +import com.wb.domainserver.response.WnbtResponseBody; import com.wb.domainserver.response.WnbtWebClientResponseHandler; +import com.wb.domainserver.security.authentication.AnonymousUser; +import com.wb.domainserver.security.authentication.MemberJwtContextHolder; import com.wb.domainserver.security.authorization.annotation.AuthPolicy; import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.util.communicate.*; +import com.wb.domainserver.util.dataaccess.DataMap; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -17,6 +31,9 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.CookieValue; import org.springframework.web.bind.annotation.RequestMapping; +import java.math.BigInteger; +import java.util.ArrayList; +import java.util.List; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -55,7 +72,22 @@ public class SetupMngrInfoController { @Autowired private WnbtWebClientResponseHandler responseHandler; - /** + @Autowired + private BOMngrInfoService service; + + @Autowired + private BOJobUserService jobUserService; + + @Autowired + private BOMaComncdService bOMaComncdService; + + @Autowired + private BOCommonService boCommonService; + + @Autowired + private BOCommonService commonService; + + /** * 관리자 정보 조회 * @param vo * @param model 모델객체 @@ -63,14 +95,41 @@ public class SetupMngrInfoController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectMngrInfoInqireForm") - public String selectMngrInfoInqireForm(SetupMngrInfoVO vo,ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { - + public String selectMngrInfoInqireForm(BOJobUserVO vo,ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { // vo.setSopmalCd(session.getAttribute("authSopmalCd").toString()); - Map resultMap = responseHandler.handleResponseAsMap( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/mngrInfo/selectBOMngrInfoUpdtForm", vo) - ); - model.addAttribute("resultMap", resultMap); + // 작성자 정보 추출 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + vo.setMngrInnb(BigInteger.valueOf(user.getUserInnb())); +// if("01".equals(user.getSysDvCd())){ +// vo.setSopmalCd(user.getSopmalCd()); +// } + + DataMap result = new DataMap(); + + String secretKey = commonService.selectSecretkey(); + vo.setSecretKey(secretKey); + List detail = new ArrayList<>(); + detail = jobUserService.selectBOJobUserDetail(vo); + + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + bOMaComncdVO.setGroupCd("EMAIL_ADRES"); + List emailCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + bOMaComncdVO.setGroupCd("MNGR_DV"); + List mngrDvCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + List managerCodeList = new ArrayList<>(); + managerCodeList = jobUserService.managerCode(); + + result.put("detail", detail); + result.put("mngrDvCdList", mngrDvCdList); + result.put("emailCdList", emailCdList); + +// Map resultMap = responseHandler.handleResponseAsMap( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/mngrInfo/selectBOMngrInfoUpdtForm", vo) +// ); + model.addAttribute("resultMap", result); return "mngr/setup/mngr/MngrInfoDtlU"; } @@ -79,8 +138,8 @@ public class SetupMngrInfoController { * @param vo */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/updateMngrInfoUpdt") - public ResponseEntity updateMngrInfoUpdt(@Validated SetupMngrInfoVO vo, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) { + @RequestMapping(value="/updateMngrInfoUpdt", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateMngrInfoUpdt(@Validated BOMngrInfoVO vo, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) { // vo.setSopmalCd(session.getAttribute("authSopmalCd").toString()); @@ -116,10 +175,47 @@ public class SetupMngrInfoController { } } - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/mngrInfo/updateBOMngrInfoUpdt", vo), - ReplyFromResrc::getReply - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + vo.setUpdusr(user.getUserInnb()); +// if("01".equals(user.getSysDvCd())){ +// vo.setSopmalCd(user.getSopmalCd()); +// } + + String secretKey = boCommonService.selectSecretkey(); + vo.setSecretKey(secretKey); + + DataMap resultInfo = new DataMap(); + + /*비밀번호 인증 수정*/ + if("Y".equals(vo.getPwChngAt())){ + /* 암호화 필수값 + pass(사용자입력 비밀번호) + encptKeyDvCd(암호화키구분코드) => 01(회원),02(관리자), 03(매장) + idntfcInnb(식별고유번호) => 회원/관리자/매장관리자 고유번호*/ + BOCommonVO commVO = new BOCommonVO(); + commVO.setPass(vo.getChngPw()); + commVO.setEncptKeyDvCd("02"); + commVO.setIdntfcInnb(String.valueOf(vo.getMngrInnb())); + String encptyPw = boCommonService.generateKey(commVO); + vo.setPassword(encptyPw); + resultInfo.put("chngePwAt","Y"); + }else{ + resultInfo.put("chngePwAt","N"); + } + + /*관리자 정보 수정*/ + int result = service.updateBOMngrInfoUpdt(vo); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(resultInfo)) + .build() + ); + +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/mngrInfo/updateBOMngrInfoUpdt", vo), +// ReplyFromResrc::getReply +// ); } } diff --git a/src/main/java/com/wb/domainserver/domain/mngr/setup/nbkk/controller/SetupNbkkController.java b/src/main/java/com/wb/domainserver/domain/mngr/setup/nbkk/controller/SetupNbkkController.java index 91e580e9..a6bc62e5 100644 --- a/src/main/java/com/wb/domainserver/domain/mngr/setup/nbkk/controller/SetupNbkkController.java +++ b/src/main/java/com/wb/domainserver/domain/mngr/setup/nbkk/controller/SetupNbkkController.java @@ -1,10 +1,15 @@ package com.wb.domainserver.domain.mngr.setup.nbkk.controller; import com.wb.domainserver.common.msg.GconeMessageSource; +import com.wb.domainserver.domain.gcone.setup.nbkk.service.BONbkkService; +import com.wb.domainserver.domain.gcone.setup.nbkk.vo.BOSetupNbkkVO; import com.wb.domainserver.domain.mngr.setup.nbkk.vo.SetupNbkkVO; import com.wb.domainserver.exception.WnbtRestException; import com.wb.domainserver.response.WnbtResponse; +import com.wb.domainserver.response.WnbtResponseBody; import com.wb.domainserver.response.WnbtWebClientResponseHandler; +import com.wb.domainserver.security.authentication.AnonymousUser; +import com.wb.domainserver.security.authentication.MemberJwtContextHolder; import com.wb.domainserver.security.authorization.annotation.AuthPolicy; import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.util.communicate.RESRC; @@ -13,6 +18,7 @@ import com.wb.domainserver.util.communicate.SendToResrc; import com.wb.domainserver.util.communicate.ValidateResultConverter; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -22,6 +28,9 @@ import org.springframework.web.bind.annotation.CookieValue; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; +import java.util.HashMap; +import java.util.Map; + /** * 무통장 설정 Controller * @@ -55,23 +64,35 @@ public class SetupNbkkController { @Autowired private GconeMessageSource gconeMessageSource; + @Autowired + private BONbkkService service; + /** * 무통장 설정 페이지 이동 * - * @param SetupNbkkVO + * @param boNbkkVO * @return NbkkSetupListR.jsp */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectNbkkSetupList") - public String selectNbkkSetupList(ModelMap model, SetupNbkkVO setupNbkkVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) { + public String selectNbkkSetupList(ModelMap model, BOSetupNbkkVO boNbkkVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) { - setupNbkkVO.setSopmalCd(authSopmalCd); + boNbkkVO.setSopmalCd(authSopmalCd); /*무통장 설정 조회 */ - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO,"/gcone/setup/nbkk/selectBONbkkSetupList", setupNbkkVO), - model, - "resultMap" - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + boNbkkVO.setSopmalCd(user.getSopmalCd()); + } + Map nbkkList = new HashMap<>(); + nbkkList.put("nbkkList",service.selectBOSopmalSetupList(boNbkkVO)); + + + model.addAttribute("resultMap", nbkkList); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO,"/gcone/setup/nbkk/selectBONbkkSetupList", setupNbkkVO), +// model, +// "resultMap" +// ); return "mngr/setup/nbkk/NbkkSetupListR"; } @@ -79,23 +100,38 @@ public class SetupNbkkController { /** * 무통장 설정 수정 * - * @param SetupNbkkVO + * @param boNbkkVO * @return ResponseEntity */ @Policy(AuthPolicy.RESTRICTED) - @PostMapping(value = "/updateNbkkSetup") - public ResponseEntity updateNbkkSetup(@Validated SetupNbkkVO setupNbkkVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) { + @PostMapping(value = "/updateNbkkSetup", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateNbkkSetup(@Validated BOSetupNbkkVO boNbkkVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) { - setupNbkkVO.setSopmalCd(authSopmalCd); + boNbkkVO.setSopmalCd(authSopmalCd); if (bindingResult.hasErrors()) { throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); } - //BO 배송지 수정 결과를 Map으로 변환하여 설정 - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/nbkk/updateBOPNbkkSetup", setupNbkkVO), - ReplyFromResrc::getReply + + //등록자 수정자 set + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + boNbkkVO.setSopmalCd(user.getSopmalCd()); + } + boNbkkVO.setRegusr(user.getUserInnb()); + boNbkkVO.setUpdusr(user.getUserInnb()); + //무통장 설정 저장 + service.updateBOPNbkkSetup(boNbkkVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody("")) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/nbkk/updateBOPNbkkSetup", setupNbkkVO), +// ReplyFromResrc::getReply +// ); } } diff --git a/src/main/java/com/wb/domainserver/domain/mngr/setup/ordr/controller/SetupOrdrController.java b/src/main/java/com/wb/domainserver/domain/mngr/setup/ordr/controller/SetupOrdrController.java index d9734705..c0176ce0 100644 --- a/src/main/java/com/wb/domainserver/domain/mngr/setup/ordr/controller/SetupOrdrController.java +++ b/src/main/java/com/wb/domainserver/domain/mngr/setup/ordr/controller/SetupOrdrController.java @@ -1,19 +1,22 @@ package com.wb.domainserver.domain.mngr.setup.ordr.controller; import com.wb.domainserver.common.msg.GconeMessageSource; -import com.wb.domainserver.domain.mngr.setup.ordr.vo.SetupOrdrVO; +import com.wb.domainserver.domain.gcone.setup.ordrmngr.service.BOOrdrMngrService; +import com.wb.domainserver.domain.gcone.setup.ordrmngr.vo.BOSetupOrdrVO; import com.wb.domainserver.exception.WnbtRestException; import com.wb.domainserver.response.WnbtResponse; +import com.wb.domainserver.response.WnbtResponseBody; import com.wb.domainserver.response.WnbtWebClientResponseHandler; +import com.wb.domainserver.security.authentication.AnonymousUser; +import com.wb.domainserver.security.authentication.MemberJwtContextHolder; import com.wb.domainserver.security.authorization.annotation.AuthPolicy; import com.wb.domainserver.security.authorization.annotation.Policy; -import com.wb.domainserver.util.communicate.RESRC; -import com.wb.domainserver.util.communicate.ReplyFromResrc; import com.wb.domainserver.util.communicate.SendToResrc; import com.wb.domainserver.util.communicate.ValidateResultConverter; import com.wb.domainserver.util.string.StringUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -24,6 +27,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -56,32 +60,45 @@ public class SetupOrdrController { /** 공통 메시지 처리를 위한 메시지 객체 */ @Autowired private GconeMessageSource gconeMessageSource; + + @Autowired + private BOOrdrMngrService service; + + /** * 주문 설정 페이지 이동 - * @param setupOrdrVO + * @param boOrdrVO * @return NbkkSetupListR.jsp */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectOrdrSetupList") - public String selectOrdrSetupList(ModelMap model,SetupOrdrVO setupOrdrVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) { + public String selectOrdrSetupList(ModelMap model, BOSetupOrdrVO boOrdrVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) { - setupOrdrVO.setSopmalCd(authSopmalCd); + boOrdrVO.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO,"/gcone/setup/ordrmngr/selectBOOrdrSetupList", setupOrdrVO), - model, - "resultMap" - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + boOrdrVO.setSopmalCd(user.getSopmalCd()); + } + + Map content = service.selectBOOrdrSetupList(boOrdrVO); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO,"/gcone/setup/ordrmngr/selectBOOrdrSetupList", setupOrdrVO), +// model, +// "resultMap" +// ); return "mngr/setup/ordr/OrdrListR"; } /** * 주문 저장, 수정 - * @param setupOrdrVO + * @param vo * @return NbkkSetupListR.jsp */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/updateOrdrSetup" , method = RequestMethod.POST) - public ResponseEntity updateOrdrSetup(@Validated SetupOrdrVO vo, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) { + @RequestMapping(value="/updateOrdrSetup" , method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateOrdrSetup(@Validated BOSetupOrdrVO vo, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) { vo.setSopmalCd(authSopmalCd); List> errorList = new ArrayList<>(); @@ -136,10 +153,26 @@ public class SetupOrdrController { if("N".equals(vo.getMlgMxmmPymntAmtAt())) { vo.setMlgMxmmPymntAmt(null); } - //BO API 호출 => 주문 저장 - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/ordrmngr/updateBOOrdrSetup", vo), - ReplyFromResrc::getReply + + //등록자 수정자 set + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + vo.setRegusr(user.getUserInnb()); + vo.setUpdusr(user.getUserInnb()); + Map result = new HashMap<>(); + //주문 설정 저장 + result = service.updateBOOrdrSetup(vo); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(result)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/ordrmngr/updateBOOrdrSetup", vo), +// ReplyFromResrc::getReply +// ); } } diff --git a/src/main/java/com/wb/domainserver/domain/mngr/setup/popup/controller/SetupPopupController.java b/src/main/java/com/wb/domainserver/domain/mngr/setup/popup/controller/SetupPopupController.java index 6dcf758a..b379957e 100644 --- a/src/main/java/com/wb/domainserver/domain/mngr/setup/popup/controller/SetupPopupController.java +++ b/src/main/java/com/wb/domainserver/domain/mngr/setup/popup/controller/SetupPopupController.java @@ -1,22 +1,26 @@ package com.wb.domainserver.domain.mngr.setup.popup.controller; import com.wb.domainserver.common.msg.GconeMessageSource; -import com.wb.domainserver.domain.mngr.setup.popup.vo.SetupPopupVO; +import com.wb.domainserver.common.mvc.tags.ui.pagination.PaginationInfo; +import com.wb.domainserver.common.prop.PaginationProperties; +import com.wb.domainserver.domain.gcone.setup.popup.service.BOPopupService; +import com.wb.domainserver.domain.gcone.setup.popup.vo.BOPopupVO; import com.wb.domainserver.exception.WnbtRestException; import com.wb.domainserver.response.WnbtResponse; +import com.wb.domainserver.response.WnbtResponseBody; import com.wb.domainserver.response.WnbtWebClientResponseHandler; +import com.wb.domainserver.security.authentication.AnonymousUser; +import com.wb.domainserver.security.authentication.MemberJwtContextHolder; import com.wb.domainserver.security.authorization.annotation.AuthPolicy; import com.wb.domainserver.security.authorization.annotation.Policy; -import com.wb.domainserver.util.communicate.RESRC; -import com.wb.domainserver.util.communicate.ReplyFromResrc; import com.wb.domainserver.util.communicate.SendToResrc; import com.wb.domainserver.util.communicate.ValidateResultConverter; -import com.wb.domainserver.util.file.FileMngUtil; +import com.wb.domainserver.util.dataaccess.DataMap; import com.wb.domainserver.util.file.service.FileStorageService; import jakarta.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -28,6 +32,7 @@ import org.springframework.web.bind.annotation.RequestMethod; import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 팝업 관리 Controller @@ -53,18 +58,19 @@ public class SetupPopupController { private SendToResrc sendToResrc; @Autowired private GconeMessageSource gconeMessageSource; - @Autowired - private FileMngUtil fileMngUtil; - @Value("${mngrfo.common.fileupload.uploaddirs.goods}") - private String uploadFilePath; - @Value("${mngrfo.common.fileupload.extensions.images}") - private String whiteListFileUploadExtensions; @Autowired private FileStorageService filestore; @Autowired private WnbtWebClientResponseHandler responseHandler; + @Autowired + private BOPopupService service; + + @Autowired + private PaginationProperties paginationProperties; + + /** * 팝업 목록 조회 * @param vo @@ -73,17 +79,41 @@ public class SetupPopupController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectPopupList") - public String selectCmmnCodeListInqire(SetupPopupVO vo, + public String selectCmmnCodeListInqire(BOPopupVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { - vo.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/popup/selectBOPopupList", vo), - model, - "resultMap" - ); + //사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + // 페이징 객체 생성 & 페이징정보 할당 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(vo.getPageIndex()); + paginationInfo.setRecordCountPerPage(vo.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + + vo.setPaginationInfo(paginationInfo); + vo.setFirstIndex(paginationInfo.getFirstRecordIndex()); + vo.setLastIndex(paginationInfo.getLastRecordIndex()); + vo.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + // 목록 조회 + List list = service.selectBOPopupList(vo); + + Map content = new HashMap<>(); + content.put("BOPopupVO", vo); + content.put("list", list); + content.put("paginationInfo", vo.getPaginationInfo()); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/popup/selectBOPopupList", vo), +// model, +// "resultMap" +// ); return "mngr/setup/popup/PopupListR"; } @@ -96,16 +126,42 @@ public class SetupPopupController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectPopupRegistForm") - public String selectPopupRegistForm(SetupPopupVO vo, + public String selectPopupRegistForm(BOPopupVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { vo.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/popup/selectBOPopupList", vo), - model, - "resultMap" - ); + //사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + + // 페이징 객체 생성 & 페이징정보 할당 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(vo.getPageIndex()); + paginationInfo.setRecordCountPerPage(vo.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + + vo.setPaginationInfo(paginationInfo); + vo.setFirstIndex(paginationInfo.getFirstRecordIndex()); + vo.setLastIndex(paginationInfo.getLastRecordIndex()); + vo.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + // 목록 조회 + List list = service.selectBOPopupList(vo); + + Map content = new HashMap<>(); + content.put("BOPopupVO", vo); + content.put("list", list); + content.put("paginationInfo", vo.getPaginationInfo()); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/popup/selectBOPopupList", vo), +// model, +// "resultMap" +// ); return "mngr/setup/popup/PopupRegistC"; } @@ -117,15 +173,28 @@ public class SetupPopupController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectPopupUpdtForm") - public String selectPopupDtlForm(SetupPopupVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { + public String selectPopupDtlForm(BOPopupVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { vo.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/popup/selectBOPopupDtl", vo), - model, - "resultMap" - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + + // 상세조회 + DataMap list = new DataMap(); + list = service.selectBOPopupDtl(vo); + + Map content = new HashMap<>(); + content.put("BOPopupVO", vo); + content.put("list", list); + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/popup/selectBOPopupDtl", vo), +// model, +// "resultMap" +// ); return "mngr/setup/popup/PopupDtlU"; } @@ -137,8 +206,8 @@ public class SetupPopupController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/insertPopup" , method = RequestMethod.POST) - public ResponseEntity insertPopup(@Validated SetupPopupVO vo, BindingResult bindingResult , HttpServletRequest request, + @RequestMapping(value="/insertPopup" , method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity insertPopup(@Validated BOPopupVO vo, BindingResult bindingResult , HttpServletRequest request, @CookieValue(value = "authSopmalCd") String authSopmalCd) { @@ -177,19 +246,34 @@ public class SetupPopupController { ulpladFileMap = filestore.fileUpload(request); vo.setFileInfo(ulpladFileMap); } catch (WnbtRestException wre){ - throw new WnbtRestException("파일 업로드에 실패했습니다."+ wre.getMessage()); + log.error(wre.getMessage()); + throw new WnbtRestException("파일 업로드에 실패했습니다."); } catch (Exception e) { - throw new WnbtRestException("파일 업로드에 실패했습니다."+e); + log.error(e.getMessage()); + throw new WnbtRestException("파일 업로드에 실패했습니다."); } + //사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + vo.setRegusr(user.getUserInnb()); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/popup/insertBOPopup", vo), - ReplyFromResrc::getReply + //팝업 등록 로직 + Map message = new HashMap<>(); + message = service.insertBOPopup(vo); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); - - +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/popup/insertBOPopup", vo), +// ReplyFromResrc::getReply +// ); } /** @@ -199,13 +283,11 @@ public class SetupPopupController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/updatePopupDtl" , method = RequestMethod.POST) - public ResponseEntity updatePopupDtl(@Validated SetupPopupVO vo, BindingResult bindingResult , HttpServletRequest request, + @RequestMapping(value="/updatePopupDtl" , method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updatePopupDtl(@Validated BOPopupVO vo, BindingResult bindingResult , HttpServletRequest request, @CookieValue(value = "authSopmalCd") String authSopmalCd) { - vo.setSopmalCd(authSopmalCd); - //정합성 검사 if(bindingResult.hasErrors()) { throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); @@ -221,18 +303,34 @@ public class SetupPopupController { ulpladFileMap = filestore.fileUpload(request); vo.setFileInfo(ulpladFileMap); } catch (WnbtRestException wre){ - throw new WnbtRestException("파일 업로드에 실패했습니다."+ wre.getMessage()); + log.error(wre.getMessage()); + throw new WnbtRestException("파일 업로드에 실패했습니다."); } catch (Exception e) { - throw new WnbtRestException("파일 업로드에 실패했습니다."+e); + log.error(e.getMessage()); + throw new WnbtRestException("파일 업로드에 실패했습니다."); } - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/popup/updateBOPopupDtl", vo), - ReplyFromResrc::getReply + //사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + vo.setUpdusr(user.getUserInnb()); + + //팝업 수정 로직 + Map message = new HashMap<>(); + message = service.updateBOPopupDtl(vo); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); - - +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/popup/updateBOPopupDtl", vo), +// ReplyFromResrc::getReply +// ); } /** @@ -241,19 +339,35 @@ public class SetupPopupController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/deletePopup" , method = RequestMethod.POST) - public ResponseEntity deletePopup(SetupPopupVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) { + @RequestMapping(value="/deletePopup" , method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity deletePopup(BOPopupVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) { vo.setSopmalCd(authSopmalCd); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/popup/deleteBOPopup", vo), - ReplyFromResrc::getReply + //사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + vo.setUpdusr(user.getUserInnb()); + + //팝업 삭제 로직 + Map message = new HashMap<>(); + message = service.deleteBOPopup(vo); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); - - +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/popup/deleteBOPopup", vo), +// ReplyFromResrc::getReply +// ); } - @Policy(AuthPolicy.RESTRICTED)@RequestMapping(value="/selectPopupPrevew")public String selectPopupPrevew(){return "/0";} + @Policy(AuthPolicy.RESTRICTED) + @RequestMapping(value="/selectPopupPrevew") + public String selectPopupPrevew(){return "/0";} } diff --git a/src/main/java/com/wb/domainserver/domain/mngr/setup/site/controller/SetupSiteController.java b/src/main/java/com/wb/domainserver/domain/mngr/setup/site/controller/SetupSiteController.java index 29e7f78d..976d2b20 100644 --- a/src/main/java/com/wb/domainserver/domain/mngr/setup/site/controller/SetupSiteController.java +++ b/src/main/java/com/wb/domainserver/domain/mngr/setup/site/controller/SetupSiteController.java @@ -2,22 +2,33 @@ package com.wb.domainserver.domain.mngr.setup.site.controller; import com.fasterxml.jackson.databind.ObjectMapper; import com.wb.domainserver.common.msg.GconeMessageSource; +import com.wb.domainserver.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.setup.site.service.BOSiteService; +import com.wb.domainserver.domain.gcone.setup.site.vo.BOGoodsgrpVO; +import com.wb.domainserver.domain.gcone.setup.site.vo.BOSetupContentsItemVO; +import com.wb.domainserver.domain.gcone.setup.site.vo.BOSiteVO; import com.wb.domainserver.domain.mngr.setup.site.vo.SetupContentsItemVO; import com.wb.domainserver.domain.mngr.setup.site.vo.SetupGoodsgrpVO; import com.wb.domainserver.domain.mngr.setup.site.vo.SetupSiteVO; import com.wb.domainserver.exception.WnbtRestException; import com.wb.domainserver.response.WnbtResponse; +import com.wb.domainserver.response.WnbtResponseBody; import com.wb.domainserver.response.WnbtWebClientResponseHandler; +import com.wb.domainserver.security.authentication.AnonymousUser; +import com.wb.domainserver.security.authentication.MemberJwtContextHolder; import com.wb.domainserver.security.authorization.annotation.AuthPolicy; import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.util.communicate.*; -import com.wb.domainserver.util.file.FileMngUtil; +import com.wb.domainserver.util.dataaccess.DataMap; import com.wb.domainserver.util.file.service.FileStorageService; import jakarta.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; import net.minidev.json.JSONObject; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -31,6 +42,8 @@ import org.springframework.web.bind.annotation.RequestMethod; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.concurrent.atomic.AtomicReference; /** * @@ -67,18 +80,17 @@ public class SetupSiteController { @Autowired private GconeMessageSource gconeMessageSource; - @Autowired - private FileMngUtil fileMngUtil; - @Autowired private FileStorageService filestore; - @Value("${mngrfo.common.fileupload.uploaddirs.goods}") - private String uploadFilePath; + @Autowired + private BOSiteService service; - @Value("${mngrfo.common.fileupload.extensions.images}") - private String whiteListFileUploadExtensions; + @Autowired + private BOMaComncdService bOMaComncdService; + @Autowired + private PaginationProperties paginationProperties; /** * 사이트관리(헤더) 설정화면 이동 @@ -86,15 +98,45 @@ public class SetupSiteController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectSiteHeaderManageForm") - public String selectSiteHeaderManageForm(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { - + public String selectSiteHeaderManageForm(BOSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { siteVO.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOSiteHeaderManageForm", siteVO), - model, - "resultMap" - ); + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + siteVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰코드 + } + siteVO.setRegusr(user.getUserInnb()); // 등록자 + siteVO.setUpdusr(user.getUserInnb()); // 수정자 + + + // 공통코드 호출 + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + bOMaComncdVO.setGroupCd("GNB_TY"); // GNB 타입 코드 + List gnbTyCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("POPULAR_CHNG_DV"); // 인기 변동 코드 + List populChagCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("LPT_MANAGE_SETUP_DV"); // 하단관리설정구분 + List lptSetupDvCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + List middleList = service.selectBOSiteMiddleSetupListInqire(siteVO); + + // Map객체에 필요 정보 할당 + Map content = new HashMap<>(); + content = service.selectBOSiteHeaderManageForm(siteVO); + + + content.put("paramVO", siteVO); + content.put("middleList", middleList); + content.put("gnbTyCdList", gnbTyCdList); + content.put("populChagCdList", populChagCdList); + content.put("lptSetupDvCdList", lptSetupDvCdList); + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOSiteHeaderManageForm", siteVO), +// model, +// "resultMap" +// ); return "mngr/setup/site/SiteHeaderManageU"; } @@ -105,8 +147,8 @@ public class SetupSiteController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @PostMapping("/insertSetupMiddleRegist") - public ResponseEntity insertSetupMiddleRegist(@Validated SetupSiteVO siteVO, @CookieValue(value = "authSopmalCd") String authSopmalCd, + @PostMapping(value="/insertSetupMiddleRegist", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity insertSetupMiddleRegist(@Validated BOSiteVO siteVO, @CookieValue(value = "authSopmalCd") String authSopmalCd, BindingResult bindingResult) { siteVO.setSopmalCd(authSopmalCd); @@ -116,10 +158,26 @@ public class SetupSiteController { throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); } - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/insertBOSetupMiddleRegist", siteVO), - ReplyFromResrc::getReply + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + siteVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰코드 + } + siteVO.setRegusr(user.getUserInnb()); // 등록자 + siteVO.setUpdusr(user.getUserInnb()); // 수정자 + + Map message = new HashMap<>(); + message = service.insertBOSetupMiddleRegist(siteVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/insertBOSetupMiddleRegist", siteVO), +// ReplyFromResrc::getReply +// ); } /** @@ -127,8 +185,8 @@ public class SetupSiteController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @PostMapping("/updateSetupMiddleUpdt") - public ResponseEntity updateSetupMiddleUpdt(@Validated SetupSiteVO siteVO, @CookieValue(value = "authSopmalCd") String authSopmalCd, BindingResult bindingResult) { + @PostMapping(value="/updateSetupMiddleUpdt", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateSetupMiddleUpdt(@Validated BOSiteVO siteVO, @CookieValue(value = "authSopmalCd") String authSopmalCd, BindingResult bindingResult) { siteVO.setSopmalCd(authSopmalCd); log.debug("파라미터 확인 : {}", siteVO.getMainSetupInnb()); @@ -138,10 +196,27 @@ public class SetupSiteController { if (bindingResult.hasErrors()) { throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); } - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/updateBOSetupMiddleUpdt", siteVO), - ReplyFromResrc::getReply + + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + siteVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰코드 + } + siteVO.setRegusr(user.getUserInnb()); // 등록자 + siteVO.setUpdusr(user.getUserInnb()); // 수정자 + + Map message = new HashMap<>(); + message = service.updateBOSetupMiddleUpdt(siteVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/updateBOSetupMiddleUpdt", siteVO), +// ReplyFromResrc::getReply +// ); } @@ -150,15 +225,30 @@ public class SetupSiteController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @PostMapping("/deleteSetupMiddleDel") - public ResponseEntity deleteSetupMiddleDel(SetupSiteVO siteVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) { - + @PostMapping(value="/deleteSetupMiddleDel", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity deleteSetupMiddleDel(BOSiteVO siteVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) { siteVO.setSopmalCd(authSopmalCd); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/deleteBOSetupMiddleDel", siteVO), - ReplyFromResrc::getReply + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + siteVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰코드 + } + siteVO.setRegusr(user.getUserInnb()); // 등록자 + siteVO.setUpdusr(user.getUserInnb()); // 수정자 + + Map message = new HashMap<>(); + message = service.deleteBOSetupMiddleDel(siteVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/deleteBOSetupMiddleDel", siteVO), +// ReplyFromResrc::getReply +// ); } @@ -168,15 +258,31 @@ public class SetupSiteController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @PostMapping("/updateSetupMiddleApplcUpdt") - public ResponseEntity updateSetupMiddleApplcUpdt( SetupSiteVO siteVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) { + @PostMapping(value="/updateSetupMiddleApplcUpdt", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateSetupMiddleApplcUpdt( BOSiteVO siteVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) { siteVO.setSopmalCd(authSopmalCd); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/updateBOSetupMiddleApplcUpdt", siteVO), - ReplyFromResrc::getReply + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + siteVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰코드 + } + siteVO.setRegusr(user.getUserInnb()); // 등록자 + siteVO.setUpdusr(user.getUserInnb()); // 수정자 + + Map message = new HashMap<>(); + message = service.updateBOSetupMiddleApplcUpdt(siteVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/updateBOSetupMiddleApplcUpdt", siteVO), +// ReplyFromResrc::getReply +// ); } /** @@ -184,16 +290,32 @@ public class SetupSiteController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @PostMapping("/updateSetupFooterUpdt") - public ResponseEntity updateSetupFooterUpdt(SetupSiteVO siteVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) { + @PostMapping(value="/updateSetupFooterUpdt", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateSetupFooterUpdt(BOSiteVO siteVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) { log.debug("updateSetupFooterUpdt(siteVO = {})", siteVO); siteVO.setSopmalCd(authSopmalCd); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/updateBOFooterSetupUpdt", siteVO), - ReplyFromResrc::getReply + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + siteVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰코드 + } + siteVO.setRegusr(user.getUserInnb()); // 등록자 + siteVO.setUpdusr(user.getUserInnb()); // 수정자 + + Map message = new HashMap<>(); + message = service.updateBOFooterSetupUpdt(siteVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/updateBOFooterSetupUpdt", siteVO), +// ReplyFromResrc::getReply +// ); } @@ -202,35 +324,51 @@ public class SetupSiteController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @PostMapping("/updateScriptSetupUpdt") - public ResponseEntity updateSetupScriptUpdt(SetupSiteVO siteVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) { + @PostMapping(value="/updateScriptSetupUpdt", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateSetupScriptUpdt(BOSiteVO siteVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) { log.debug("updateSetupScriptUpdt(siteVO = {})", siteVO); - siteVO.setSopmalCd(authSopmalCd); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/updateBOScriptSetupUpdt", siteVO), - ReplyFromResrc::getReply + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + siteVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰코드 + } + siteVO.setRegusr(user.getUserInnb()); // 등록자 + siteVO.setUpdusr(user.getUserInnb()); // 수정자 + log.debug(" updateBOScriptSetupUpdt siteVO is {}", siteVO); + + Map message = new HashMap<>(); + message = service.updateBOScriptSetupUpdt(siteVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/updateBOScriptSetupUpdt", siteVO), +// ReplyFromResrc::getReply +// ); } - /** - * 상품그룹 등록 - * @return - */ - @Policy(AuthPolicy.RESTRICTED) - @PostMapping("/updateHeaderSetupUpdt") - public ResponseEntity updateHeaderSetupUpdt( SetupSiteVO siteVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) { - - siteVO.setSopmalCd(authSopmalCd); - - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/updateBOHeaderSetupUpdt", siteVO), - ReplyFromResrc::getReply - ); - } +// /** +// * 상품그룹 등록 +// * @return +// */ +// @Policy(AuthPolicy.RESTRICTED) +// @PostMapping(value="/updateHeaderSetupUpdt", produces = MediaType.APPLICATION_JSON_VALUE) +// public ResponseEntity updateHeaderSetupUpdt( SetupSiteVO siteVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) { +// +// siteVO.setSopmalCd(authSopmalCd); +// +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/updateBOHeaderSetupUpdt", siteVO), +// ReplyFromResrc::getReply +// ); +// } @@ -240,15 +378,42 @@ public class SetupSiteController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectGoodsGroupList") - public String selectGoodsGroupList(SetupGoodsgrpVO goodsGroup, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { - + public String selectGoodsGroupList(BOGoodsgrpVO goodsGroup, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { goodsGroup.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOGoodsGroupList", goodsGroup), - model, - "resultMap" - ); + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + goodsGroup.setSopmalCd(user.getSopmalCd()); // 쇼핑몰코드 + } + + Map content = new HashMap<>(); + //페이징 처리를 위한 pagination 객체 생성 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(goodsGroup.getPageIndex()); + paginationInfo.setRecordCountPerPage(goodsGroup.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + goodsGroup.setPaginationInfo(paginationInfo); + + //페이징 처리를 위한 값 설정 + goodsGroup.setFirstIndex(paginationInfo.getFirstRecordIndex()); + goodsGroup.setLastIndex(paginationInfo.getLastRecordIndex()); + goodsGroup.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + //배송그룹 목록조회 + + List goodsGroupList = service.selectBOGoodsGroupList(goodsGroup); + + //배송그룹 목록조회 결과 설정 + content.put("BOGoodsgrpVO", goodsGroup); + content.put("paginationInfo", goodsGroup.getPaginationInfo()); + content.put("goodsGroupList", goodsGroupList); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOGoodsGroupList", goodsGroup), +// model, +// "resultMap" +// ); return "mngr/setup/site/GoodsGroupListR"; } @@ -260,15 +425,36 @@ public class SetupSiteController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectGroupGoodsListIniqre") - public String selectGroupGoodsListIniqre(SetupGoodsgrpVO goodsGroup, ModelMap model,@CookieValue(value = "authSopmalCd") String authSopmalCd) { + public String selectGroupGoodsListIniqre(BOSiteVO siteVO, ModelMap model,@CookieValue(value = "authSopmalCd") String authSopmalCd) { - goodsGroup.setSopmalCd(authSopmalCd); + siteVO.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOGroupGoodsListIniqre", goodsGroup), - model, - "resultMap" - ); + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + siteVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰코드 + } + siteVO.setRegusr(user.getUserInnb()); // 등록자 + siteVO.setUpdusr(user.getUserInnb()); // 수정자 + + // 공통코드 호출 + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + bOMaComncdVO.setGroupCd("POPULAR_CHNG_DV"); // 인기 변동 코드 + List populChagCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + // Map객체에 필요 정보 할당 + Map content = new HashMap<>(); + List resultList = service.selectBOGroupGoodsListIniqre(siteVO); + + content.put("goodsList", resultList); + content.put("populChagCdList", populChagCdList); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOGroupGoodsListIniqre", goodsGroup), +// model, +// "resultMap" +// ); return "mngr/setup/site/SiteHeaderPopularGoodsListR"; } @@ -297,8 +483,8 @@ public class SetupSiteController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @PostMapping("/insertGoodsGroup") - public ResponseEntity insertGoodsGroup(@Validated SetupGoodsgrpVO goodsGroup, + @PostMapping(value="/insertGoodsGroup", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity insertGoodsGroup(@Validated BOGoodsgrpVO goodsGroup, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) { goodsGroup.setSopmalCd(authSopmalCd); @@ -308,10 +494,26 @@ public class SetupSiteController { throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); } - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/insertBOGoodsGroup", goodsGroup), - ReplyFromResrc::getReply + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + goodsGroup.setSopmalCd(user.getSopmalCd()); // 쇼핑몰코드 + } + goodsGroup.setRegusr(user.getUserInnb()); // 등록자 + goodsGroup.setUpdusr(user.getUserInnb()); // 수정자 + + //배송그릅 등록 처리 + Map message = service.insertBOGoodsGroup(goodsGroup); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/insertBOGoodsGroup", goodsGroup), +// ReplyFromResrc::getReply +// ); } @@ -321,16 +523,26 @@ public class SetupSiteController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectGoodsGroupDtlForm") - public String selectGoodsGroupDtlForm(SetupGoodsgrpVO goodsGroup, + public String selectGoodsGroupDtlForm(BOGoodsgrpVO goodsGroup, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { goodsGroup.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOGoodsGroupDtlForm", goodsGroup), - model, - "resultMap" - ); + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + goodsGroup.setSopmalCd(user.getSopmalCd()); // 쇼핑몰코드 + } + + Map content = new HashMap<>(); + content = service.selectBOGoodsGroupDtlForm(goodsGroup); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOGoodsGroupDtlForm", goodsGroup), +// model, +// "resultMap" +// ); return "mngr/setup/site/GoodsGroupDtlU"; } @@ -341,8 +553,8 @@ public class SetupSiteController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @PostMapping("/updateGoodsGroupDtl") - public ResponseEntity updateGoodsGroupDtl(@Validated SetupGoodsgrpVO goodsGroup, + @PostMapping(value="/updateGoodsGroupDtl", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateGoodsGroupDtl(@Validated BOGoodsgrpVO goodsGroup, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) { goodsGroup.setSopmalCd(authSopmalCd); @@ -352,10 +564,24 @@ public class SetupSiteController { throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); } - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/updateBOGoodsGroupDtl", goodsGroup), - ReplyFromResrc::getReply + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + goodsGroup.setSopmalCd(user.getSopmalCd()); // 쇼핑몰코드 + } + goodsGroup.setUpdusr(user.getUserInnb()); // 수정자 + + Map message = service.updateBOGoodsGroupDtl(goodsGroup); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/updateBOGoodsGroupDtl", goodsGroup), +// ReplyFromResrc::getReply +// ); } /** @@ -363,15 +589,29 @@ public class SetupSiteController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @PostMapping("/deleteGoodsGroup") - public ResponseEntity deleteGoodsGroup(SetupGoodsgrpVO goodsGroup, @CookieValue(value = "authSopmalCd") String authSopmalCd) { + @PostMapping(value="/deleteGoodsGroup", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity deleteGoodsGroup(BOGoodsgrpVO goodsGroup, @CookieValue(value = "authSopmalCd") String authSopmalCd) { goodsGroup.setSopmalCd(authSopmalCd); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/deleteBOGoodsGroup", goodsGroup), - ReplyFromResrc::getReply + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + goodsGroup.setSopmalCd(user.getSopmalCd()); // 쇼핑몰코드 + } + goodsGroup.setUpdusr(user.getUserInnb()); // 수정자 + + Map message = service.deleteBOGoodsGroup(goodsGroup); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/deleteBOGoodsGroup", goodsGroup), +// ReplyFromResrc::getReply +// ); } /** @@ -379,8 +619,8 @@ public class SetupSiteController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/updateLogoImage") - public ResponseEntity updateLogoImage( SetupSiteVO siteVO, HttpServletRequest request, @CookieValue(value = "authSopmalCd") String authSopmalCd) { + @RequestMapping(value="/updateLogoImage", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateLogoImage( BOSiteVO siteVO, HttpServletRequest request, @CookieValue(value = "authSopmalCd") String authSopmalCd) { siteVO.setSopmalCd(authSopmalCd); log.debug("logo update vo : {}", siteVO); @@ -397,10 +637,26 @@ public class SetupSiteController { } siteVO.setFileInfo(ulpladFileMap); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/updateBOHeaderSetupLogoUpdt", siteVO), - ReplyFromResrc::getReply + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + siteVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰코드 + } + siteVO.setRegusr(user.getUserInnb()); // 등록자 + siteVO.setUpdusr(user.getUserInnb()); // 수정자 + + Map message = new HashMap<>(); + message = service.updateBOHeaderSetupLogoUpdt(siteVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/updateBOHeaderSetupLogoUpdt", siteVO), +// ReplyFromResrc::getReply +// ); } @@ -411,16 +667,32 @@ public class SetupSiteController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/updateGNBType" , method = RequestMethod.POST) - public ResponseEntity updateGNBType( SetupSiteVO siteVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) { + @RequestMapping(value="/updateGNBType" , method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateGNBType( BOSiteVO siteVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) { siteVO.setSopmalCd(authSopmalCd); log.debug("gnb type update vo : {}", siteVO); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/updateBOHeaderSetupTempUpdt", siteVO), - ReplyFromResrc::getReply + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + siteVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰코드 + } + siteVO.setRegusr(user.getUserInnb()); // 등록자 + siteVO.setUpdusr(user.getUserInnb()); // 수정자 + + Map message = new HashMap<>(); + message = service.updateBOHeaderSetupTempUpdt(siteVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/updateBOHeaderSetupTempUpdt", siteVO), +// ReplyFromResrc::getReply +// ); } @@ -429,16 +701,32 @@ public class SetupSiteController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/updateRltmPopularGoods" , method = RequestMethod.POST) - public ResponseEntity updateRltmPopularGoods( SetupSiteVO siteVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) { + @RequestMapping(value="/updateRltmPopularGoods" , method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateRltmPopularGoods( BOSiteVO siteVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) { siteVO.setSopmalCd(authSopmalCd); log.debug("popul srch update vo : {}", siteVO); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/updateBORltmPopularGoods", siteVO), - ReplyFromResrc::getReply + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + siteVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰코드 + } + siteVO.setRegusr(user.getUserInnb()); // 등록자 + siteVO.setUpdusr(user.getUserInnb()); // 수정자 + + Map message = new HashMap<>(); + message = service.updateBORltmPopularGoods(siteVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/updateBORltmPopularGoods", siteVO), +// ReplyFromResrc::getReply +// ); } @@ -447,16 +735,32 @@ public class SetupSiteController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/updatePopularSrchwrd" , method = RequestMethod.POST) - public ResponseEntity updatePopularSrchwrd( SetupSiteVO siteVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) { + @RequestMapping(value="/updatePopularSrchwrd" , method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updatePopularSrchwrd( BOSiteVO siteVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) { siteVO.setSopmalCd(authSopmalCd); log.debug("popul srch update vo : {}", siteVO); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/updateBOPopularSrchwrd", siteVO), - ReplyFromResrc::getReply + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + siteVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰코드 + } + siteVO.setRegusr(user.getUserInnb()); // 등록자 + siteVO.setUpdusr(user.getUserInnb()); // 수정자 + + Map message = new HashMap<>(); + message = service.updateBOPopularSrchwrd(siteVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/updateBOPopularSrchwrd", siteVO), +// ReplyFromResrc::getReply +// ); } @@ -467,15 +771,42 @@ public class SetupSiteController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectSiteContentManageForm") - public String selectSiteContentManageForm(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { + public String selectSiteContentManageForm(BOSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { siteVO.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOSiteContentManageForm", siteVO), - model, - "resultMap" - ); + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + siteVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰코드 + } + + // 공통코드 호출 + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + bOMaComncdVO.setGroupCd("RELM_DV"); // 영역 구분 + List relmDvCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("LPT_MANAGE_SETUP_DV"); // 하단관리설정구분 + List lptSetupDvCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("IMG_EXPSR_DV"); // 이미지 노출 구분 + List imgExpsrDvCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + List resultList = null; + resultList = service.selectBOSiteContentManageForm(siteVO); + + // Map객체에 필요 정보 할당 + Map content = new HashMap<>(); + content.put("resultList", resultList); + content.put("paramVO", siteVO); + content.put("relmDvCdList", relmDvCdList); + content.put("lptSetupDvCdList", lptSetupDvCdList); + content.put("imgExpsrDvCdList", imgExpsrDvCdList); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOSiteContentManageForm", siteVO), +// model, +// "resultMap" +// ); log.debug("resultMapresultMapresultMap {}", model.getAttribute("resultMap")); @@ -488,264 +819,342 @@ public class SetupSiteController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/selectBannerSetupPopup") - public String selectBannerSetupPopup(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { - + @RequestMapping(value={"/selectBannerSetupPopup", "/selectBrandIntroSetupPopup", "/selectGroupTySetupPopup", "/selectCtgryTySetupPopup", "/selectImgTySetupPopup", "/selectURLTySetupPopup", "/select2by2TySetupPopup", "/select4TySetupPopup", "/selectTmeDscntSetupPopup", "/selectBbscttSetupPopup", "/selectFasSetupPopup", "/selectInstaSetupPopup"}) + public String selectSetupPopup(HttpServletRequest request, BOSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { siteVO.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO), - model, - "resultMap" - ); + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + siteVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰코드 + } + siteVO.setRegusr(user.getUserInnb()); // 등록자 + siteVO.setUpdusr(user.getUserInnb()); // 수정자 + + // 공통코드 호출 + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + + Map result = new HashMap<>(); + result = service.selectBOMainSetupContentsItemPopup(siteVO); + + // Map객체에 필요 정보 할당 + Map content = new HashMap<>(); + content.put("resultPopupList", result); + content.put("paramVO", siteVO); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO), +// model, +// "resultMap" +// ); log.debug("modeldatares {}", model.getAttribute("resultMap")); - return "mngr/setup/site/SiteContentBannerPopup"; - } + String requestUri = request.getRequestURI(); + DataMap matchUri = new DataMap(); + matchUri.put("/selectBannerSetupPopup", "mngr/setup/site/SiteContentBannerPopup"); + matchUri.put("/selectBrandIntroSetupPopup", "mngr/setup/site/SiteContentBrandPopup"); + matchUri.put("/selectGroupTySetupPopup", "mngr/setup/site/SiteContentGoodsGroupPopup"); + matchUri.put("/selectCtgryTySetupPopup", "mngr/setup/site/SiteContentGoodsCategoryPopup"); + matchUri.put("/selectImgTySetupPopup", "mngr/setup/site/SiteContentGoodsImgPopup"); + matchUri.put("/selectURLTySetupPopup", "mngr/setup/site/SiteContentGoodsUrlPopup"); + matchUri.put("/select2by2TySetupPopup", "mngr/setup/site/SiteContentGoods2TyPopup"); + matchUri.put("/select4TySetupPopup", "mngr/setup/site/SiteContentGoods4TyPopup"); + matchUri.put("/selectTmeDscntSetupPopup", "mngr/setup/site/SiteContentTmeDscntPopup"); + matchUri.put("/selectBbscttSetupPopup", "mngr/setup/site/SiteContentBbscttPopup"); + matchUri.put("/selectFasSetupPopup", "mngr/setup/site/SiteContentFaqPopup"); + matchUri.put("/selectInstaSetupPopup", "mngr/setup/site/SiteContentSnsPopup"); - /** - * 브랜드 소개 설정 팝업 - * @return - */ - @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/selectBrandIntroSetupPopup") - public String selectBrandIntroSetupPopup(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { - - siteVO.setSopmalCd(authSopmalCd); - - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO), - model, - "resultMap" - ); - - return "mngr/setup/site/SiteContentBrandPopup"; + AtomicReference jspPath = new AtomicReference<>(""); + matchUri.forEach((uri, jspUri) -> { + if(requestUri.contains(String.valueOf(uri))){ + jspPath.set(String.valueOf(jspUri)); + } + }); + return jspPath.get(); } - /** - * 상품 그룹별 설정 팝업 - * @return - */ - @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/selectGroupTySetupPopup") - public String selectGroupTySetupPopup(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { - - siteVO.setSopmalCd(authSopmalCd); - - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO), - model, - "resultMap" - ); - - return "mngr/setup/site/SiteContentGoodsGroupPopup"; - } - - - /** - * 상품 카테고리별 설정 팝업 - * @return - */ - @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/selectCtgryTySetupPopup") - public String selectCtgryTySetupPopup(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { - - siteVO.setSopmalCd(authSopmalCd); - - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO), - model, - "resultMap" - ); - - return "mngr/setup/site/SiteContentGoodsCategoryPopup"; - } - - - /** - * 상품 이미지 설정 팝업 - * @return - */ - @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/selectImgTySetupPopup") - public String selectImgTySetupPopup(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { - - siteVO.setSopmalCd(authSopmalCd); - - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO), - model, - "resultMap" - ); - - return "mngr/setup/site/SiteContentGoodsImgPopup"; - } - - - /** - * 상품 URL 별 설정 팝업 - * @return - */ - @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/selectURLTySetupPopup") - public String selectURLTySetupPopup(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { - - siteVO.setSopmalCd(authSopmalCd); - - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO), - model, - "resultMap" - ); - - return "mngr/setup/site/SiteContentGoodsUrlPopup"; - } - - - /** - * 상품 2 x 2 타입 설정 팝업 - * @return - */ - @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/select2by2TySetupPopup") - public String select2by2TySetupPopup(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { - - siteVO.setSopmalCd(authSopmalCd); - - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO), - model, - "resultMap" - ); - - return "mngr/setup/site/SiteContentGoods2TyPopup"; - } - - - /** - * 상품 4열 설정 팝업 - * @return - */ - @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/select4TySetupPopup") - public String select4TySetupPopup(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { - - siteVO.setSopmalCd(authSopmalCd); - - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO), - model, - "resultMap" - ); - - return "mngr/setup/site/SiteContentGoods4TyPopup"; - } - - - - /** - * 타임세일 설정 팝업 - * @return - */ - @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/selectTmeDscntSetupPopup") - public String selectTmeDscntSetupPopup(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { - - siteVO.setSopmalCd(authSopmalCd); - - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO), - model, - "resultMap" - ); - - return "mngr/setup/site/SiteContentTmeDscntPopup"; - } - - - - /** - * 게시글 설정 팝업 : 베스트리뷰, 매거진 - * @return - */ - @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/selectBbscttSetupPopup") - public String selectBbscttSetupPopup(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { - - siteVO.setSopmalCd(authSopmalCd); - - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO), - model, - "resultMap" - ); - - return "mngr/setup/site/SiteContentBbscttPopup"; - } - - - /** - * FAQ 설정 팝업 - * @return - */ - @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/selectFasSetupPopup") - public String selectFasSetupPopup(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { - - siteVO.setSopmalCd(authSopmalCd); - - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO), - model, - "resultMap" - ); - - return "mngr/setup/site/SiteContentFaqPopup"; - } - - - /** - * 인스타그램 설정 팝업 - * @param siteVO - * @param model - * @return - */ - @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/selectInstaSetupPopup") - public String selectInstaSetupPopup(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { - - siteVO.setSopmalCd(authSopmalCd); - - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO), - model, - "resultMap" - ); - - return "mngr/setup/site/SiteContentSnsPopup"; - } +// /** +// * 롤링배너 , 띠배너 설정 팝업 +// * @return +// */ +// @Policy(AuthPolicy.RESTRICTED) +// @RequestMapping(value="/selectBannerSetupPopup") +// public String selectBannerSetupPopup(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { +// +// siteVO.setSopmalCd(authSopmalCd); +// +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO), +// model, +// "resultMap" +// ); +// +// log.debug("modeldatares {}", model.getAttribute("resultMap")); +// +// return "mngr/setup/site/SiteContentBannerPopup"; +// } +// +// /** +// * 브랜드 소개 설정 팝업 +// * @return +// */ +// @Policy(AuthPolicy.RESTRICTED) +// @RequestMapping(value="/selectBrandIntroSetupPopup") +// public String selectBrandIntroSetupPopup(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { +// +// siteVO.setSopmalCd(authSopmalCd); +// +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO), +// model, +// "resultMap" +// ); +// +// return "mngr/setup/site/SiteContentBrandPopup"; +// } +// +// +// /** +// * 상품 그룹별 설정 팝업 +// * @return +// */ +// @Policy(AuthPolicy.RESTRICTED) +// @RequestMapping(value="/selectGroupTySetupPopup") +// public String selectGroupTySetupPopup(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { +// +// siteVO.setSopmalCd(authSopmalCd); +// +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO), +// model, +// "resultMap" +// ); +// +// return "mngr/setup/site/SiteContentGoodsGroupPopup"; +// } +// +// +// /** +// * 상품 카테고리별 설정 팝업 +// * @return +// */ +// @Policy(AuthPolicy.RESTRICTED) +// @RequestMapping(value="/selectCtgryTySetupPopup") +// public String selectCtgryTySetupPopup(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { +// +// siteVO.setSopmalCd(authSopmalCd); +// +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO), +// model, +// "resultMap" +// ); +// +// return "mngr/setup/site/SiteContentGoodsCategoryPopup"; +// } +// +// +// /** +// * 상품 이미지 설정 팝업 +// * @return +// */ +// @Policy(AuthPolicy.RESTRICTED) +// @RequestMapping(value="/selectImgTySetupPopup") +// public String selectImgTySetupPopup(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { +// +// siteVO.setSopmalCd(authSopmalCd); +// +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO), +// model, +// "resultMap" +// ); +// +// return "mngr/setup/site/SiteContentGoodsImgPopup"; +// } +// +// +// /** +// * 상품 URL 별 설정 팝업 +// * @return +// */ +// @Policy(AuthPolicy.RESTRICTED) +// @RequestMapping(value="/selectURLTySetupPopup") +// public String selectURLTySetupPopup(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { +// +// siteVO.setSopmalCd(authSopmalCd); +// +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO), +// model, +// "resultMap" +// ); +// +// return "mngr/setup/site/SiteContentGoodsUrlPopup"; +// } +// +// +// /** +// * 상품 2 x 2 타입 설정 팝업 +// * @return +// */ +// @Policy(AuthPolicy.RESTRICTED) +// @RequestMapping(value="/select2by2TySetupPopup") +// public String select2by2TySetupPopup(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { +// +// siteVO.setSopmalCd(authSopmalCd); +// +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO), +// model, +// "resultMap" +// ); +// +// return "mngr/setup/site/SiteContentGoods2TyPopup"; +// } +// +// +// /** +// * 상품 4열 설정 팝업 +// * @return +// */ +// @Policy(AuthPolicy.RESTRICTED) +// @RequestMapping(value="/select4TySetupPopup") +// public String select4TySetupPopup(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { +// +// siteVO.setSopmalCd(authSopmalCd); +// +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO), +// model, +// "resultMap" +// ); +// +// return "mngr/setup/site/SiteContentGoods4TyPopup"; +// } +// +// +// +// /** +// * 타임세일 설정 팝업 +// * @return +// */ +// @Policy(AuthPolicy.RESTRICTED) +// @RequestMapping(value="/selectTmeDscntSetupPopup") +// public String selectTmeDscntSetupPopup(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { +// +// siteVO.setSopmalCd(authSopmalCd); +// +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO), +// model, +// "resultMap" +// ); +// +// return "mngr/setup/site/SiteContentTmeDscntPopup"; +// } +// +// +// +// /** +// * 게시글 설정 팝업 : 베스트리뷰, 매거진 +// * @return +// */ +// @Policy(AuthPolicy.RESTRICTED) +// @RequestMapping(value="/selectBbscttSetupPopup") +// public String selectBbscttSetupPopup(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { +// +// siteVO.setSopmalCd(authSopmalCd); +// +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO), +// model, +// "resultMap" +// ); +// +// return "mngr/setup/site/SiteContentBbscttPopup"; +// } +// +// +// /** +// * FAQ 설정 팝업 +// * @return +// */ +// @Policy(AuthPolicy.RESTRICTED) +// @RequestMapping(value="/selectFasSetupPopup") +// public String selectFasSetupPopup(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { +// +// siteVO.setSopmalCd(authSopmalCd); +// +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO), +// model, +// "resultMap" +// ); +// +// return "mngr/setup/site/SiteContentFaqPopup"; +// } +// +// +// /** +// * 인스타그램 설정 팝업 +// * @param siteVO +// * @param model +// * @return +// */ +// @Policy(AuthPolicy.RESTRICTED) +// @RequestMapping(value="/selectInstaSetupPopup") +// public String selectInstaSetupPopup(SetupSiteVO siteVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { +// +// siteVO.setSopmalCd(authSopmalCd); +// +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOMainSetupContentsItemPopup", siteVO), +// model, +// "resultMap" +// ); +// +// return "mngr/setup/site/SiteContentSnsPopup"; +// } /** * 사이트관리(메인) 설정 저장 * @param siteVO - * @param bindingResult * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/updateSiteContentManage" , method = RequestMethod.POST) - public ResponseEntity updateSiteContentManage( SetupSiteVO siteVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) { + @RequestMapping(value="/updateSiteContentManage" , method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateSiteContentManage( BOSiteVO siteVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) { siteVO.setSopmalCd(authSopmalCd); log.debug("siteVO : {}", siteVO); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/updateBOSiteContentManage", siteVO), - ReplyFromResrc::getReply + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + siteVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰코드 + } + siteVO.setRegusr(user.getUserInnb()); // 등록자 + siteVO.setUpdusr(user.getUserInnb()); // 수정자 + + + Map message = new HashMap<>(); + message = service.updateBOSiteContentManage(siteVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/updateBOSiteContentManage", siteVO), +// ReplyFromResrc::getReply +// ); } @@ -753,12 +1162,11 @@ public class SetupSiteController { /** * 사이트관리(메인) 설정 항목 저장 * @param siteVO - * @param bindingResult * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/updateSiteContentItemManage" , method = RequestMethod.POST) - public ResponseEntity updateSiteContentItemManage( SetupSiteVO siteVO, HttpServletRequest request, @CookieValue(value = "authSopmalCd") String authSopmalCd) { + @RequestMapping(value="/updateSiteContentItemManage" , method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateSiteContentItemManage(BOSiteVO siteVO, HttpServletRequest request, @CookieValue(value = "authSopmalCd") String authSopmalCd) { siteVO.setSopmalCd(authSopmalCd); log.debug("siteVO : {}", siteVO); @@ -771,7 +1179,7 @@ public class SetupSiteController { int fileIndex = 0; - for (SetupContentsItemVO tempItmVO : siteVO.getSetupContentsItemList()) { + for (BOSetupContentsItemVO tempItmVO : siteVO.getSetupContentsItemList()) { log.debug("fileAt 값 확인 : {}", tempItmVO.getFileAt()); if (tempItmVO.getFileAt() != null && "1".equals(tempItmVO.getFileAt()) && fileIndex < ulpladFileMapItm.size()) { HashMap fileInfo = ulpladFileMapItm.get(fileIndex); @@ -792,10 +1200,26 @@ public class SetupSiteController { } } - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/updateBOSiteContentItemManage", siteVO), - ReplyFromResrc::getReply + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + siteVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰코드 + } + siteVO.setRegusr(user.getUserInnb()); // 등록자 + siteVO.setUpdusr(user.getUserInnb()); // 수정자 + + Map message = new HashMap<>(); + message = service.updateBOSiteContentItemManage(siteVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/updateBOSiteContentItemManage", siteVO), +// ReplyFromResrc::getReply +// ); } @@ -805,20 +1229,35 @@ public class SetupSiteController { /** * 메인화면 구성 추가 * @param siteVO - * @param bindingResult * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/insertSiteContentsItemRegist" , method = RequestMethod.POST) - public ResponseEntity insertSiteContentsItemRegist( SetupSiteVO siteVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) { + @RequestMapping(value="/insertSiteContentsItemRegist" , method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity insertSiteContentsItemRegist( BOSiteVO siteVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) { siteVO.setSopmalCd(authSopmalCd); log.debug("siteVO : {}", siteVO); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/insertBOSiteContentsItemRegist", siteVO), - ReplyFromResrc::getReply + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + siteVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰코드 + } + siteVO.setRegusr(user.getUserInnb()); // 등록자 + siteVO.setUpdusr(user.getUserInnb()); // 수정자 + + Map message = new HashMap<>(); + message = service.updateBOSiteContentManage(siteVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/insertBOSiteContentsItemRegist", siteVO), +// ReplyFromResrc::getReply +// ); } @@ -828,17 +1267,39 @@ public class SetupSiteController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/selectSitePrevew" , method = RequestMethod.POST) + @RequestMapping(value="/selectSitePrevew" , method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity selectSitePrevew( @CookieValue(value = "authSopmalCd") String authSopmalCd) { - SetupSiteVO vo = new SetupSiteVO(); - vo.setSopmalCd(authSopmalCd); - log.debug("selectSitePrevew(vo = {})", vo); + BOSiteVO siteVO = new BOSiteVO(); + siteVO.setSopmalCd(authSopmalCd); + log.debug("selectSitePrevew(vo = {})", siteVO); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOSitePrevew", vo), - ReplyFromResrc::getReply + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + siteVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰코드 + } + + // 공통코드 호출 + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + + DataMap result = new DataMap(); + result = service.selectBOSitePrevew(siteVO); + + // Map객체에 필요 정보 할당 + Map content = new HashMap<>(); + content.put("result", result); + content.put("paramVO", siteVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/site/selectBOSitePrevew", vo), +// ReplyFromResrc::getReply +// ); } /** diff --git a/src/main/java/com/wb/domainserver/domain/mngr/sms/controller/SmsBillingController.java b/src/main/java/com/wb/domainserver/domain/mngr/sms/controller/SmsBillingController.java index 87659d44..86d2fb9b 100644 --- a/src/main/java/com/wb/domainserver/domain/mngr/sms/controller/SmsBillingController.java +++ b/src/main/java/com/wb/domainserver/domain/mngr/sms/controller/SmsBillingController.java @@ -1,11 +1,18 @@ package com.wb.domainserver.domain.mngr.sms.controller; +import com.wb.domainserver.domain.gcone.puri.vo.BOPuriSrchVO; +import com.wb.domainserver.domain.gcone.sms.service.BOSmsBillingService; +import com.wb.domainserver.domain.gcone.sms.vo.BOSmsBillingResultVO; +import com.wb.domainserver.domain.gcone.sms.vo.BOSmsBillingVO; import com.wb.domainserver.domain.mngr.sms.vo.SmsBillingVO; import com.wb.domainserver.response.WnbtWebClientResponseHandler; +import com.wb.domainserver.security.authentication.AnonymousUser; +import com.wb.domainserver.security.authentication.MemberJwtContextHolder; import com.wb.domainserver.security.authorization.annotation.AuthPolicy; import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.util.communicate.RESRC; import com.wb.domainserver.util.communicate.SendToResrc; +import com.wb.domainserver.util.dataaccess.DataMap; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -15,6 +22,11 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.stream.Collectors; + @Controller @RequestMapping(value = "/mngr/sms") @Slf4j @@ -27,6 +39,10 @@ public class SmsBillingController { @Autowired private SendToResrc sendToResrc; + @Autowired + private BOSmsBillingService service; + + /** * SMS 정산 페이지 * @return String JSP 경로 @@ -34,15 +50,23 @@ public class SmsBillingController { @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value ="/select/sms-billing") - public String selectSmsBillingList ( SmsBillingVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { + public String selectSmsBillingList ( BOPuriSrchVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { log.debug("selectSmsBillingList()"); vo.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/sms/select/sms-billing", vo), - model, - "resultMap" - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + DataMap content = new DataMap(); + + model.addAttribute("resultMap", content); + +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/sms/select/sms-billing", vo), +// model, +// "resultMap" +// ); return "mngr/sms/SmsBillingMain"; } @@ -54,16 +78,33 @@ public class SmsBillingController { @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value ="/select/sms-billingR" , method = RequestMethod.GET) - public String selectSmsBillingListR (@RequestParam("shopCd") String shopCd, SmsBillingVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { + public String selectSmsBillingListR (@RequestParam("shopCd") String shopCd, BOSmsBillingVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { log.debug("selectSmsBillingListR()"); vo.setSopmalCd(authSopmalCd); vo.setShopCd(shopCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/sms/select/sms-billingR", vo), - model, - "resultMap" - ); + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + + log.debug(" 검색 파라미터 확인 리스트 검색조건 : {}", vo); + + DataMap content = new DataMap(); + + List list = new ArrayList<>(); + list = service.selectSmsBillingList(vo); + list = list.stream().sorted(Comparator.comparing(BOSmsBillingResultVO::getStoreName)).collect(Collectors.toList()); + + content.put("list", list); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/sms/select/sms-billingR", vo), +// model, +// "resultMap" +// ); return "mngr/sms/SmsBillingMainR"; } diff --git a/src/main/java/com/wb/domainserver/domain/mngr/stats/adtrace/controller/AdTraceController.java b/src/main/java/com/wb/domainserver/domain/mngr/stats/adtrace/controller/AdTraceController.java index 25e422f5..ab959303 100644 --- a/src/main/java/com/wb/domainserver/domain/mngr/stats/adtrace/controller/AdTraceController.java +++ b/src/main/java/com/wb/domainserver/domain/mngr/stats/adtrace/controller/AdTraceController.java @@ -1,15 +1,26 @@ package com.wb.domainserver.domain.mngr.stats.adtrace.controller; +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.stats.adtrace.service.BOAdTraceService; +import com.wb.domainserver.domain.gcone.stats.adtrace.vo.BOAdTraceVO; import com.wb.domainserver.domain.mngr.stats.adtrace.vo.AdTraceVO; import com.wb.domainserver.response.WnbtResponse; +import com.wb.domainserver.response.WnbtResponseBody; import com.wb.domainserver.response.WnbtWebClientResponseHandler; +import com.wb.domainserver.security.authentication.AnonymousUser; +import com.wb.domainserver.security.authentication.MemberJwtContextHolder; import com.wb.domainserver.security.authorization.annotation.AuthPolicy; import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.util.communicate.RESRC; import com.wb.domainserver.util.communicate.ReplyFromResrc; import com.wb.domainserver.util.communicate.SendToResrc; +import com.wb.domainserver.util.dataaccess.DataMap; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -17,6 +28,10 @@ import org.springframework.web.bind.annotation.CookieValue; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + @Controller @RequestMapping("/mngr/stats/adtrace") public class AdTraceController { @@ -28,6 +43,15 @@ public class AdTraceController { @Autowired private WnbtWebClientResponseHandler responseHandler; + @Autowired + private BOAdTraceService service; + + @Autowired + private PaginationProperties paginationProperties; + + @Autowired + private BOMaComncdService bOMaComncdService; + /** * 광고추적 목록 조회 폼 * @param vo @@ -36,17 +60,27 @@ public class AdTraceController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectAdTraceListForm") - public String selectAdTraceListForm(AdTraceVO vo, + public String selectAdTraceListForm(BOAdTraceVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String 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()); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/adtrace/selectBOAdTraceListForm", vo), - model, - "resultMap" - ); + Map content = new HashMap<>(); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/adtrace/selectBOAdTraceListForm", vo), +// model, +// "resultMap" +// ); return "mngr/stats/adtrace/AdTraceListRForm"; } @@ -58,16 +92,47 @@ public class AdTraceController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectAdTraceList") - public String selectAdTraceList(AdTraceVO vo, + public String selectAdTraceList(BOAdTraceVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { vo.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/adtrace/selectBOAdTraceList", vo), - model, - "resultMap" - ); + //사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + vo.setRegusr(user.getUserInnb()); + vo.setUpdusr(user.getUserInnb()); + + + Map content = new HashMap<>(); + + // 페이징 객체 생성 & 페이징정보 할당 + 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 list = service.selectBOAdTraceList(vo); + + content.put("BOAdTraceVO", vo); + content.put("list", list); + content.put("paginationInfo", vo.getPaginationInfo()); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/adtrace/selectBOAdTraceList", vo), +// model, +// "resultMap" +// ); return "mngr/stats/adtrace/AdTraceListR"; } @@ -79,16 +144,34 @@ public class AdTraceController { */ @RequestMapping("/insertAdTraceForm") @Policy(AuthPolicy.RESTRICTED) - public String insertAdTraceForm(AdTraceVO vo, + public String insertAdTraceForm(BOAdTraceVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { vo.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/adtrace/insertBOAdTraceForm", vo), - model, - "resultMap" - ); + //사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + vo.setRegusr(user.getUserInnb()); + vo.setUpdusr(user.getUserInnb()); + + + Map content = new HashMap<>(); + + //광고매체정보 조회 + BOMaComncdVO maComncdVO = new BOMaComncdVO(); + maComncdVO.setGroupCd("AD_MEDIA_DV"); + List adMediaDvList = bOMaComncdService.selectBOCommcdDetailList(maComncdVO); + content.put("adMediaDvList", adMediaDvList); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/adtrace/insertBOAdTraceForm", vo), +// model, +// "resultMap" +// ); return "mngr/stats/adtrace/AdTraceC"; } @@ -99,15 +182,33 @@ public class AdTraceController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/insertAdTrace", method = RequestMethod.POST) - public ResponseEntity insertAdTrace(AdTraceVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) { + @RequestMapping(value = "/insertAdTrace", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity insertAdTrace(BOAdTraceVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) { vo.setSopmalCd(authSopmalCd); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/adtrace/insertBOAdTrace", vo), - ReplyFromResrc::getReply + //사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + vo.setRegusr(user.getUserInnb()); + vo.setUpdusr(user.getUserInnb()); + + + Map content = new HashMap<>(); + + content = service.insertBOAdTrace(vo); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/adtrace/insertBOAdTrace", vo), +// ReplyFromResrc::getReply +// ); } @@ -119,16 +220,36 @@ public class AdTraceController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectAdTraceDtlForm") - public String selectAdTraceDtlForm( AdTraceVO vo, + public String selectAdTraceDtlForm( BOAdTraceVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) { vo.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/adtrace/selectBOAdTraceDtlForm", vo), - model, - "resultMap" - ); + //사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + vo.setRegusr(user.getUserInnb()); + vo.setUpdusr(user.getUserInnb()); + + + Map content = new HashMap<>(); + + //광고매체정보 조회 + BOMaComncdVO maComncdVO = new BOMaComncdVO(); + maComncdVO.setGroupCd("AD_MEDIA_DV"); + List adMediaDvList = bOMaComncdService.selectBOCommcdDetailList(maComncdVO); + content.put("adMediaDvList", adMediaDvList); + + content = service.selectBOAdTraceDtlForm(vo); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/adtrace/selectBOAdTraceDtlForm", vo), +// model, +// "resultMap" +// ); return "mngr/stats/adtrace/AdTraceDtlU"; } @@ -139,15 +260,32 @@ public class AdTraceController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/updateAdTraceDtl", method = RequestMethod.POST) - public ResponseEntity updateAdTraceDtl(AdTraceVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) { + @RequestMapping(value = "/updateAdTraceDtl", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateAdTraceDtl(BOAdTraceVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) { vo.setSopmalCd(authSopmalCd); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/adtrace/updateBOAdTraceDtl", vo), - ReplyFromResrc::getReply + //사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + vo.setRegusr(user.getUserInnb()); + vo.setUpdusr(user.getUserInnb()); + + Map content = new HashMap<>(); + + content = service.updateBOAdTraceDtl(vo); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/adtrace/updateBOAdTraceDtl", vo), +// ReplyFromResrc::getReply +// ); } } diff --git a/src/main/java/com/wb/domainserver/domain/mngr/stats/adtraceAnals/controller/AdTraceAnalsController.java b/src/main/java/com/wb/domainserver/domain/mngr/stats/adtraceAnals/controller/AdTraceAnalsController.java index a08ab72d..8d915a07 100644 --- a/src/main/java/com/wb/domainserver/domain/mngr/stats/adtraceAnals/controller/AdTraceAnalsController.java +++ b/src/main/java/com/wb/domainserver/domain/mngr/stats/adtraceAnals/controller/AdTraceAnalsController.java @@ -1,14 +1,26 @@ package com.wb.domainserver.domain.mngr.stats.adtraceAnals.controller; +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.stats.adTraceAnals.service.BOAdTraceAnalsService; +import com.wb.domainserver.domain.gcone.stats.adTraceAnals.vo.BOAdTraceAnalsVO; import com.wb.domainserver.domain.mngr.stats.adtraceAnals.vo.AdTraceAnalsGoodsVO; import com.wb.domainserver.domain.mngr.stats.adtraceAnals.vo.AdTraceAnalsVO; +import com.wb.domainserver.exception.WnbtRestException; +import com.wb.domainserver.exception.code.ErrorCode; import com.wb.domainserver.response.WnbtWebClientResponseHandler; +import com.wb.domainserver.security.authentication.AnonymousUser; +import com.wb.domainserver.security.authentication.MemberJwtContextHolder; import com.wb.domainserver.security.authorization.annotation.AuthPolicy; import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.util.communicate.RESRC; import com.wb.domainserver.util.communicate.SendToResrc; +import com.wb.domainserver.util.dataaccess.DataMap; import com.wb.domainserver.util.excel.ExcelDownloadUtil; import jakarta.servlet.http.HttpServletResponse; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -22,6 +34,7 @@ import java.util.*; @Controller @RequestMapping(value = "/mngr/stats/adTraceAnals") +@Slf4j public class AdTraceAnalsController { /** WebClient 호출을 위한 wrapper */ @@ -31,6 +44,14 @@ public class AdTraceAnalsController { @Autowired private SendToResrc sendToResrc; + @Autowired + private BOAdTraceAnalsService service; + @Autowired + private PaginationProperties paginationProperties; + + @Autowired + private BOMaComncdService bOMaComncdService; + /** * 관리자 추적코드 통계 화면 * @return @@ -38,14 +59,28 @@ public class AdTraceAnalsController { @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectMngrAdTraceStats") public String selectBOMngrAdTraceStats(@CookieValue(value = "authSopmalCd") String authSopmalCd,ModelMap model) { - AdTraceAnalsVO vo = new AdTraceAnalsVO(); + BOAdTraceAnalsVO vo = new BOAdTraceAnalsVO(); vo.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/adTraceAnals/selectBOMngrAdTraceStats", vo), - model, - "cond" - ); + // 응답 메세지 객체 + Map content = new HashMap<>(); + + // 공통코드 호출 + BOMaComncdVO maComncdVO = new BOMaComncdVO(); + maComncdVO = new BOMaComncdVO(); + maComncdVO.setGroupCd("SLE_ENVRN"); // 주문환경 + + List adTraceCdList = service.selectBOMngrAdTraceCdList(vo); + + content.put("ordrEnvrnDvCdList", bOMaComncdService.selectBOCommcdDetailList(maComncdVO)); + content.put("adTraceCdList",adTraceCdList); + + model.addAttribute("cond", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/adTraceAnals/selectBOMngrAdTraceStats", vo), +// model, +// "cond" +// ); model.put("resultMap", vo); return "mngr/stats/adTraceAnals/adTraceStats"; @@ -58,14 +93,28 @@ public class AdTraceAnalsController { @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectMngrAdTraceGoodsStats") public String selectBOMngrAdTraceGoodsStats(@CookieValue(value = "authSopmalCd") String authSopmalCd,ModelMap model) { - AdTraceAnalsGoodsVO vo = new AdTraceAnalsGoodsVO(); + BOAdTraceAnalsVO vo = new BOAdTraceAnalsVO(); vo.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/adTraceAnals/selectBOMngrAdTraceGoodsStats", vo), - model, - "cond" - ); + // 응답 메세지 객체 + Map content = new HashMap<>(); + + // 공통코드 호출 + BOMaComncdVO maComncdVO = new BOMaComncdVO(); + maComncdVO = new BOMaComncdVO(); + maComncdVO.setGroupCd("SLE_ENVRN"); // 주문환경 + + List adTraceCdList = service.selectBOMngrAdTraceCdList(vo); + + content.put("ordrEnvrnDvCdList", bOMaComncdService.selectBOCommcdDetailList(maComncdVO)); + content.put("adTraceCdList",adTraceCdList); + + model.addAttribute("cond", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/adTraceAnals/selectBOMngrAdTraceGoodsStats", vo), +// model, +// "cond" +// ); model.put("resultMap", vo); return "mngr/stats/adTraceAnals/adTraceGoodsStats"; @@ -77,14 +126,43 @@ public class AdTraceAnalsController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectMngrAdTraceStatsTableInqire") - public String selectMngrAdTraceStatsTableInqire(@CookieValue(value = "authSopmalCd") String authSopmalCd, AdTraceAnalsVO vo, ModelMap model) { + public String selectMngrAdTraceStatsTableInqire(@CookieValue(value = "authSopmalCd") String authSopmalCd, BOAdTraceAnalsVO vo, ModelMap model) { vo.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/adTraceAnals/selectMngrAdTraceStatsTableInqire", vo), - model, - "resultMap" - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + + // 응답 메세지 객체 + Map content = new HashMap<>(); + + PaginationInfo paginationInfo = new PaginationInfo(); + + + List resultList = new ArrayList<>(); + paginationInfo.setCurrentPageNo(vo.getPageIndex()); + paginationInfo.setRecordCountPerPage(vo.getRecordCountPerPage()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + + vo.setPaginationInfo(paginationInfo); + vo.setFirstIndex(paginationInfo.getFirstRecordIndex()); + vo.setLastIndex(paginationInfo.getLastRecordIndex()); + vo.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + resultList = service.selectTableDateOrWeekend(vo); + + content.put("resultList", resultList); + log.debug("@@@@resultList " + resultList); + content.put("paginationInfo", paginationInfo); + + content.put("unitFlag", vo.getUnitFlag()); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/adTraceAnals/selectMngrAdTraceStatsTableInqire", vo), +// model, +// "resultMap" +// ); return "mngr/stats/adTraceAnals/adTraceStatsTable"; } @@ -95,14 +173,42 @@ public class AdTraceAnalsController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectMngrAdTraceStatsGoodsTableInqire") - public String selectMngrAdTraceStatsGoodsTableInqire(@CookieValue(value = "authSopmalCd") String authSopmalCd, AdTraceAnalsVO vo, ModelMap model) { + public String selectMngrAdTraceStatsGoodsTableInqire(@CookieValue(value = "authSopmalCd") String authSopmalCd, BOAdTraceAnalsVO vo, ModelMap model) { vo.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/adTraceAnals/selectMngrAdTraceStatsGoodsTableInqire", vo), - model, - "resultMap" - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + + // 응답 메세지 객체 + Map content = new HashMap<>(); + + PaginationInfo paginationInfo = new PaginationInfo(); + + List goodsResultList = new ArrayList<>(); + paginationInfo.setCurrentPageNo(vo.getPageIndex()); + paginationInfo.setRecordCountPerPage(vo.getRecordCountPerPage()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + + vo.setPaginationInfo(paginationInfo); + vo.setFirstIndex(paginationInfo.getFirstRecordIndex()); + vo.setLastIndex(paginationInfo.getLastRecordIndex()); + vo.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + goodsResultList = service.selectTableGoodsDateOrWeekend(vo); + log.debug("@@@@goodsResultList " + goodsResultList); + + content.put("goodsResultList", goodsResultList); + content.put("paginationInfo", paginationInfo); + + content.put("unitFlag", vo.getUnitFlag()); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/adTraceAnals/selectMngrAdTraceStatsGoodsTableInqire", vo), +// model, +// "resultMap" +// ); return "mngr/stats/adTraceAnals/adTraceStatsGoodsTable"; } @@ -115,11 +221,23 @@ public class AdTraceAnalsController { @SuppressWarnings("unchecked") @Policy(AuthPolicy.PUBLIC) @RequestMapping(value="/selectMngrAdTraceStatsExcelFileDownload", method = RequestMethod.POST) - public void selectMngrAdTraceStatsExcelFileDownload(HttpServletResponse response, @CookieValue(value = "authSopmalCd") String authSopmalCd, AdTraceAnalsVO vo){ + public void selectMngrAdTraceStatsExcelFileDownload(HttpServletResponse response, @CookieValue(value = "authSopmalCd") String authSopmalCd, BOAdTraceAnalsVO vo){ vo.setSopmalCd(authSopmalCd); - Map resultMap = responseHandler.handleResponseAsMap( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/adTraceAnals/selectBOMngrAdTraceStatsExcelFileDownload",vo) - ); + + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + + // 응답 메세지 객체 + Map resultMap = new HashMap<>(); + List resultList = service.selectBOMngrAdTraceStatsExcelFileDownload(vo); + + resultMap.put("excelList", resultList); + +// Map resultMap = responseHandler.handleResponseAsMap( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/adTraceAnals/selectBOMngrAdTraceStatsExcelFileDownload",vo) +// ); List> excelList = new ArrayList<>(); if(resultMap.get("excelList") != null) { @@ -213,7 +331,8 @@ public class AdTraceAnalsController { ExcelDownloadUtil.createExcel(encodedFileName, headerMap, dataList, response, true); } catch(Exception e) { - + log.error("엑셀다운로드 중 오류가 발생하였습니다."+e.getMessage()); + throw new WnbtRestException("엑셀다운로드 중 오류가 발생하였습니다."); } } diff --git a/src/main/java/com/wb/domainserver/domain/mngr/stats/marktAnals/controller/MarktAnalsController.java b/src/main/java/com/wb/domainserver/domain/mngr/stats/marktAnals/controller/MarktAnalsController.java index 4dae5621..0c3d6fc7 100644 --- a/src/main/java/com/wb/domainserver/domain/mngr/stats/marktAnals/controller/MarktAnalsController.java +++ b/src/main/java/com/wb/domainserver/domain/mngr/stats/marktAnals/controller/MarktAnalsController.java @@ -1,18 +1,29 @@ package com.wb.domainserver.domain.mngr.stats.marktAnals.controller; +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.stats.marktAnals.service.BOMarktAnalsService; +import com.wb.domainserver.domain.gcone.stats.marktAnals.vo.BOMarktAnalsVO; import com.wb.domainserver.domain.mngr.stats.marktAnals.vo.MarktAnalsVO; import com.wb.domainserver.exception.WnbtRestException; import com.wb.domainserver.response.WnbtResponse; +import com.wb.domainserver.response.WnbtResponseBody; import com.wb.domainserver.response.WnbtWebClientResponseHandler; +import com.wb.domainserver.security.authentication.AnonymousUser; +import com.wb.domainserver.security.authentication.MemberJwtContextHolder; import com.wb.domainserver.security.authorization.annotation.AuthPolicy; import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.util.communicate.RESRC; import com.wb.domainserver.util.communicate.ReplyFromResrc; import com.wb.domainserver.util.communicate.SendToResrc; +import com.wb.domainserver.util.dataaccess.DataMap; import com.wb.domainserver.util.excel.ExcelDownloadUtil; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -37,8 +48,13 @@ public class MarktAnalsController { @Autowired private SendToResrc sendToResrc; + @Autowired + private BOMarktAnalsService service; + @Autowired + private PaginationProperties paginationProperties; - + @Autowired + private BOMaComncdService bOMaComncdService; /************************************************************************** * 유입통계 @@ -53,11 +69,22 @@ public class MarktAnalsController { public String selectMngrInflowStats(ModelMap model) { MarktAnalsVO vo = new MarktAnalsVO(); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/marktAnals/selectBOMngrInflowStats", vo), - model, - "cond" - ); + // 응답 메세지 객체 + Map content = new HashMap<>(); + + // 공통코드 호출 + BOMaComncdVO maComncdVO = new BOMaComncdVO(); + maComncdVO = new BOMaComncdVO(); + maComncdVO.setGroupCd("SLE_ENVRN"); // 주문환경 + + content.put("ordrEnvrnDvCdList", bOMaComncdService.selectBOCommcdDetailList(maComncdVO)); + + model.addAttribute("cond", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/marktAnals/selectBOMngrInflowStats", vo), +// model, +// "cond" +// ); model.put("resultMap", vo); return "mngr/stats/marktAnals/inflowStats"; @@ -69,14 +96,27 @@ public class MarktAnalsController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/selectMngrInflowStatsChart1Inqire") - public ResponseEntity selectMngrInflowStatsChart1Inqire(@CookieValue(value = "authSopmalCd") String authSopmalCd, MarktAnalsVO vo) { - vo.setSopmalCd(authSopmalCd); + @RequestMapping(value="/selectMngrInflowStatsChart1Inqire", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity selectMngrInflowStatsChart1Inqire(@CookieValue(value = "authSopmalCd") String authSopmalCd, DataMap vo) { + vo.put("sopmalCd",authSopmalCd); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/marktAnals/selectBOMngrInflowStatsChart1Inqire", vo), - ReplyFromResrc::getReply - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.put("sopmalCd", user.getSopmalCd()); + } + + // 응답 메세지 객체 + List content = service.selectBOMngrInflowStatsChart1Inqire(vo); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() + ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/marktAnals/selectBOMngrInflowStatsChart1Inqire", vo), +// ReplyFromResrc::getReply +// ); } /** @@ -84,14 +124,27 @@ public class MarktAnalsController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/selectMngrInflowStatsChart2Inqire") - public ResponseEntity selectMngrInflowStatsChart2Inqire(@CookieValue(value = "authSopmalCd") String authSopmalCd, MarktAnalsVO vo) { - vo.setSopmalCd(authSopmalCd); + @RequestMapping(value="/selectMngrInflowStatsChart2Inqire", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity selectMngrInflowStatsChart2Inqire(@CookieValue(value = "authSopmalCd") String authSopmalCd, DataMap vo) { + vo.put("sopmalCd", authSopmalCd); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/marktAnals/selectBOMngrInflowStatsChart2Inqire", vo), - ReplyFromResrc::getReply - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.put("sopmalCd", user.getSopmalCd()); + } + + // 응답 메세지 객체 + List content = service.selectBOMngrInflowStatsChart2Inqire(vo); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() + ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/marktAnals/selectBOMngrInflowStatsChart2Inqire", vo), +// ReplyFromResrc::getReply +// ); } @@ -101,14 +154,39 @@ public class MarktAnalsController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectMngrInflowStatsTableInqire") - public String selectMngrInflowStatsTableInqire(@CookieValue(value = "authSopmalCd") String authSopmalCd, MarktAnalsVO vo, ModelMap model) { + public String selectMngrInflowStatsTableInqire(@CookieValue(value = "authSopmalCd") String authSopmalCd, BOMarktAnalsVO vo, ModelMap model) { vo.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/marktAnals/selectBOMngrInflowStatsTableInqire", vo), - model, - "resultMap" - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + + // 응답 메세지 객체 + Map content = new HashMap<>(); + + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(vo.getPageIndex()); + paginationInfo.setRecordCountPerPage(vo.getRecordCountPerPage()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + + vo.setPaginationInfo(paginationInfo); + vo.setFirstIndex(paginationInfo.getFirstRecordIndex()); + vo.setLastIndex(paginationInfo.getLastRecordIndex()); + vo.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + List resultList = service.selectBOMngrInflowStatsTableInqire(vo); + + content.put("resultList", resultList); + content.put("paginationInfo", paginationInfo); + content.put("unitFlag", vo.getUnitFlag()); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/marktAnals/selectBOMngrInflowStatsTableInqire", vo), +// model, +// "resultMap" +// ); return "mngr/stats/marktAnals/inflowStatsTable"; } @@ -122,11 +200,23 @@ public class MarktAnalsController { @SuppressWarnings("unchecked") @Policy(AuthPolicy.PUBLIC) @RequestMapping(value="/selectMngrInflowStatsExcelFileDownload", method = RequestMethod.POST) - public void selectMngrInflowStatsExcelFileDownload(HttpServletResponse response, @CookieValue(value = "authSopmalCd") String authSopmalCd, MarktAnalsVO vo){ + public void selectMngrInflowStatsExcelFileDownload(HttpServletResponse response, @CookieValue(value = "authSopmalCd") String authSopmalCd, BOMarktAnalsVO vo){ vo.setSopmalCd(authSopmalCd); - Map resultMap = responseHandler.handleResponseAsMap( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/marktAnals/selectBOMngrInflowStatsExcelFileDownload",vo) - ); + + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + + // 응답 메세지 객체 + DataMap resultMap = new DataMap(); + List resultList = service.selectBOMngrInflowStatsExcelFileDownload(vo); + + resultMap.put("excelList", resultList); + +// Map resultMap = responseHandler.handleResponseAsMap( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/marktAnals/selectBOMngrInflowStatsExcelFileDownload",vo) +// ); List> excelList = new ArrayList<>(); if(resultMap.get("excelList") != null) { @@ -217,11 +307,23 @@ public class MarktAnalsController { @RequestMapping(value="/selectMngrCouponStats") public String selectMngrCouponStats(ModelMap model) { MarktAnalsVO vo = new MarktAnalsVO(); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/marktAnals/selectBOMngrCouponStats", vo), - model, - "cond" - ); + + // 응답 메세지 객체 + Map content = new HashMap<>(); + + // 공통코드 호출 + BOMaComncdVO maComncdVO = new BOMaComncdVO(); + maComncdVO = new BOMaComncdVO(); + maComncdVO.setGroupCd("SLE_ENVRN"); // 주문환경 + + content.put("ordrEnvrnDvCdList", bOMaComncdService.selectBOCommcdDetailList(maComncdVO)); + + model.addAttribute("cond", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/marktAnals/selectBOMngrCouponStats", vo), +// model, +// "cond" +// ); model.put("resultMap", vo); return "mngr/stats/marktAnals/couponStats"; @@ -234,14 +336,39 @@ public class MarktAnalsController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectMngrCouponStatsTableInqire") - public String selectMngrCouponStatsTableInqire(@CookieValue(value = "authSopmalCd") String authSopmalCd, MarktAnalsVO vo, ModelMap model) { + public String selectMngrCouponStatsTableInqire(@CookieValue(value = "authSopmalCd") String authSopmalCd, BOMarktAnalsVO vo, ModelMap model) { vo.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/marktAnals/selectBOMngrCouponStatsTableInqire", vo), - model, - "resultMap" - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + + // 응답 메세지 객체 + Map content = new HashMap<>(); + + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(vo.getPageIndex()); + paginationInfo.setRecordCountPerPage(vo.getRecordCountPerPage()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + + vo.setPaginationInfo(paginationInfo); + vo.setFirstIndex(paginationInfo.getFirstRecordIndex()); + vo.setLastIndex(paginationInfo.getLastRecordIndex()); + vo.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + List resultList = service.selectBOMngrCouponStatsTableInqire(vo); + + content.put("resultList", resultList); + content.put("paginationInfo", paginationInfo); + content.put("unitFlag", vo.getUnitFlag()); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/marktAnals/selectBOMngrCouponStatsTableInqire", vo), +// model, +// "resultMap" +// ); return "mngr/stats/marktAnals/couponStatsTable"; } @@ -255,11 +382,24 @@ public class MarktAnalsController { @SuppressWarnings("unchecked") @Policy(AuthPolicy.PUBLIC) @RequestMapping(value="/selectMngrCouponStatsExcelFileDownload", method = RequestMethod.POST) - public void selectMngrCouponStatsExcelFileDownload(HttpServletResponse response, @CookieValue(value = "authSopmalCd") String authSopmalCd, MarktAnalsVO vo){ + public void selectMngrCouponStatsExcelFileDownload(HttpServletResponse response, @CookieValue(value = "authSopmalCd") String authSopmalCd, BOMarktAnalsVO vo){ vo.setSopmalCd(authSopmalCd); - Map resultMap = responseHandler.handleResponseAsMap( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/marktAnals/selectBOMngrCouponStatsExcelFileDownload",vo) - ); + + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + + // 응답 메세지 객체 + DataMap resultMap = new DataMap(); + List resultList = service.selectBOMngrCouponStatsExcelFileDownload(vo); + + resultMap.put("excelList", resultList); + + +// Map resultMap = responseHandler.handleResponseAsMap( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/marktAnals/selectBOMngrCouponStatsExcelFileDownload",vo) +// ); List> excelList = new ArrayList<>(); if(resultMap.get("excelList") != null) { @@ -345,11 +485,23 @@ public class MarktAnalsController { @RequestMapping(value="/selectMngrMbrNdMlgStats") public String selectMngrMbrNdMlgStats(ModelMap model) { MarktAnalsVO vo = new MarktAnalsVO(); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/marktAnals/selectBOMngrMbrNdMlgStats", vo), - model, - "cond" - ); + + // 응답 메세지 객체 + Map content = new HashMap<>(); + + // 공통코드 호출 + BOMaComncdVO maComncdVO = new BOMaComncdVO(); + maComncdVO = new BOMaComncdVO(); + maComncdVO.setGroupCd("SLE_ENVRN"); // 주문환경 + + content.put("ordrEnvrnDvCdList", bOMaComncdService.selectBOCommcdDetailList(maComncdVO)); + + model.addAttribute("cond", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/marktAnals/selectBOMngrMbrNdMlgStats", vo), +// model, +// "cond" +// ); model.put("resultMap", vo); return "mngr/stats/marktAnals/mbrNdMlgStats"; @@ -365,6 +517,7 @@ public class MarktAnalsController { public String selectMngrMbrNdMlgTableInqire(@CookieValue(value = "authSopmalCd") String authSopmalCd, MarktAnalsVO vo, ModelMap model) { vo.setSopmalCd(authSopmalCd); + responseHandler.handleResponse( sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/marktAnals/selectBOMngrMbrNdMlgTableInqire", vo), model, diff --git a/src/main/java/com/wb/domainserver/domain/mngr/stats/member/controller/MemberStatController.java b/src/main/java/com/wb/domainserver/domain/mngr/stats/member/controller/MemberStatController.java index e109e91a..45360fad 100644 --- a/src/main/java/com/wb/domainserver/domain/mngr/stats/member/controller/MemberStatController.java +++ b/src/main/java/com/wb/domainserver/domain/mngr/stats/member/controller/MemberStatController.java @@ -1,17 +1,26 @@ package com.wb.domainserver.domain.mngr.stats.member.controller; +import com.wb.domainserver.domain.gcone.stats.memberStat.service.BOMemberStatService; +import com.wb.domainserver.domain.gcone.stats.memberStat.vo.BOMemberStatVO; import com.wb.domainserver.domain.mngr.stats.member.vo.MemberStatVO; import com.wb.domainserver.response.WnbtWebClientResponseHandler; +import com.wb.domainserver.security.authentication.AnonymousUser; +import com.wb.domainserver.security.authentication.MemberJwtContextHolder; import com.wb.domainserver.security.authorization.annotation.AuthPolicy; import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.util.communicate.RESRC; import com.wb.domainserver.util.communicate.SendToResrc; +import com.wb.domainserver.util.dataaccess.DataMap; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.CookieValue; import org.springframework.web.bind.annotation.RequestMapping; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + @Controller @RequestMapping("/mngr/stats/memberStat") public class MemberStatController { @@ -24,6 +33,9 @@ public class MemberStatController { @Autowired private SendToResrc sendToResrc; + @Autowired + private BOMemberStatService service; + @Policy(AuthPolicy.PUBLIC) @RequestMapping("/selectMemberStat") public String selectMngrMemberStat (@CookieValue(value = "authSopmalCd") String authSopmalCd, ModelMap model) { @@ -31,10 +43,14 @@ public class MemberStatController { MemberStatVO vo = new MemberStatVO(); vo.setSopmalCd(authSopmalCd); - responseHandler.handleResponse(sendToResrc.ofPost(RESRC.GCONEBO,"/gcone/stats/memberStat/selectBOMemberStat", vo), - model, - "cond" - ); + // 응답 메세지 객체 + Map content = new HashMap<>(); + + model.addAttribute("cond", content); +// responseHandler.handleResponse(sendToResrc.ofPost(RESRC.GCONEBO,"/gcone/stats/memberStat/selectBOMemberStat", vo), +// model, +// "cond" +// ); model.put("resultMap", vo); return "mngr/stats/memberStat/memberStat"; @@ -42,14 +58,24 @@ public class MemberStatController { @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectMngrMemberStatTableInqire") - public String selectMngrMemberStatTableInqire(@CookieValue(value = "authSopmalCd") String authSopmalCd, MemberStatVO vo, ModelMap model) { + public String selectMngrMemberStatTableInqire(@CookieValue(value = "authSopmalCd") String authSopmalCd, BOMemberStatVO vo, ModelMap model) { vo.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/memberStat/selectBOMngrMemberStatTableInqire", vo), - model, - "resultMap" - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + // 응답 메세지 객체 + Map content = new HashMap<>(); + List resultList = service.selectBOMngrMemberStatTableInqire(vo); + content.put("resultList", resultList); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/memberStat/selectBOMngrMemberStatTableInqire", vo), +// model, +// "resultMap" +// ); return "mngr/stats/memberStat/memberStatsTable"; } diff --git a/src/main/java/com/wb/domainserver/domain/mngr/stats/sleAnals/controller/SleAnalsController.java b/src/main/java/com/wb/domainserver/domain/mngr/stats/sleAnals/controller/SleAnalsController.java index 88a503d9..b8da27a0 100644 --- a/src/main/java/com/wb/domainserver/domain/mngr/stats/sleAnals/controller/SleAnalsController.java +++ b/src/main/java/com/wb/domainserver/domain/mngr/stats/sleAnals/controller/SleAnalsController.java @@ -1,18 +1,29 @@ package com.wb.domainserver.domain.mngr.stats.sleAnals.controller; +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.stats.sleAnals.service.BOSleAnalsService; +import com.wb.domainserver.domain.gcone.stats.sleAnals.vo.BOSleAnalsVO; import com.wb.domainserver.domain.mngr.stats.sleAnals.vo.SleAnalsVO; import com.wb.domainserver.exception.WnbtRestException; import com.wb.domainserver.response.WnbtResponse; +import com.wb.domainserver.response.WnbtResponseBody; import com.wb.domainserver.response.WnbtWebClientResponseHandler; +import com.wb.domainserver.security.authentication.AnonymousUser; +import com.wb.domainserver.security.authentication.MemberJwtContextHolder; import com.wb.domainserver.security.authorization.annotation.AuthPolicy; import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.util.communicate.RESRC; import com.wb.domainserver.util.communicate.ReplyFromResrc; import com.wb.domainserver.util.communicate.SendToResrc; +import com.wb.domainserver.util.dataaccess.DataMap; import com.wb.domainserver.util.excel.ExcelDownloadUtil; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -37,8 +48,13 @@ public class SleAnalsController { @Autowired private SendToResrc sendToResrc; + @Autowired + private BOSleAnalsService service; + @Autowired + private PaginationProperties paginationProperties; - + @Autowired + private BOMaComncdService bOMaComncdService; /************************************************************************** * 판매성과 @@ -52,11 +68,22 @@ public class SleAnalsController { @RequestMapping(value="/selectMngrSleRslt") public String selectMngrSleRslt(ModelMap model, SleAnalsVO vo) { - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/sleAnals/selectBOMngrSleRslt", vo), - model, - "cond" - ); + // 응답 메세지 객체 + Map content = new HashMap<>(); + + // 공통코드 호출 + BOMaComncdVO maComncdVO = new BOMaComncdVO(); + maComncdVO = new BOMaComncdVO(); + maComncdVO.setGroupCd("SLE_ENVRN"); // 주문환경 + + content.put("ordrEnvrnDvCdList", bOMaComncdService.selectBOCommcdDetailList(maComncdVO)); + + model.addAttribute("cond", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/sleAnals/selectBOMngrSleRslt", vo), +// model, +// "cond" +// ); model.put("resultMap", vo); return "mngr/stats/sleAnals/sleRslt"; @@ -68,14 +95,27 @@ public class SleAnalsController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/selectMngrSleRsltChart1Inqire") - public ResponseEntity selectMngrSleRsltChart1Inqire(@CookieValue(value = "authSopmalCd") String authSopmalCd, SleAnalsVO vo) { - vo.setSopmalCd(authSopmalCd); + @RequestMapping(value="/selectMngrSleRsltChart1Inqire", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity selectMngrSleRsltChart1Inqire(@CookieValue(value = "authSopmalCd") String authSopmalCd, DataMap vo) { + vo.put("sopmalCd", authSopmalCd); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/sleAnals/selectBOMngrSleRsltChart1Inqire", vo), - ReplyFromResrc::getReply - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.put("sopmalCd", user.getSopmalCd()); + } + + // 응답 메세지 객체 + Map content = service.selectBOMngrSleRsltChart1Inqire(vo); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() + ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/sleAnals/selectBOMngrSleRsltChart1Inqire", vo), +// ReplyFromResrc::getReply +// ); } /** @@ -83,14 +123,26 @@ public class SleAnalsController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/selectMngrSleRsltChart2Inqire") - public ResponseEntity selectMngrSleRsltChart2Inqire(@CookieValue(value = "authSopmalCd") String authSopmalCd, SleAnalsVO vo) { - vo.setSopmalCd(authSopmalCd); + @RequestMapping(value="/selectMngrSleRsltChart2Inqire", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity selectMngrSleRsltChart2Inqire(@CookieValue(value = "authSopmalCd") String authSopmalCd, DataMap vo) { + vo.put("sopmalCd", authSopmalCd); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/sleAnals/selectBOMngrSleRsltChart2Inqire", vo), - ReplyFromResrc::getReply - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.put("sopmalCd", user.getSopmalCd()); + } + + // 응답 메세지 객체 + List content = service.selectBOMngrSleRsltChart2Inqire(vo); + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() + ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/sleAnals/selectBOMngrSleRsltChart2Inqire", vo), +// ReplyFromResrc::getReply +// ); } @@ -100,14 +152,38 @@ public class SleAnalsController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectMngrSleRsltTableInqire") - public String selectMngrSleRsltTableInqire(@CookieValue(value = "authSopmalCd") String authSopmalCd, SleAnalsVO vo, ModelMap model) { + public String selectMngrSleRsltTableInqire(@CookieValue(value = "authSopmalCd") String authSopmalCd, BOSleAnalsVO vo, ModelMap model) { vo.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/sleAnals/selectBOMngrSleRsltTableInqire", vo), - model, - "resultMap" - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + + // 응답 메세지 객체 + Map content = new HashMap<>(); + + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(vo.getPageIndex()); + paginationInfo.setRecordCountPerPage(vo.getRecordCountPerPage()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + + vo.setPaginationInfo(paginationInfo); + vo.setFirstIndex(paginationInfo.getFirstRecordIndex()); + vo.setLastIndex(paginationInfo.getLastRecordIndex()); + vo.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + List resultList = service.selectBOMngrSleRsltTableInqire(vo); + + content.put("resultList", resultList); + content.put("paginationInfo", paginationInfo); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/sleAnals/selectBOMngrSleRsltTableInqire", vo), +// model, +// "resultMap" +// ); return "mngr/stats/sleAnals/sleRsltTable"; } @@ -115,17 +191,29 @@ public class SleAnalsController { /** * 관리자 판매성과 엑셀 다운로드 - * @param SelngPrufVO + * @param vo * @return */ @SuppressWarnings("unchecked") @Policy(AuthPolicy.PUBLIC) @RequestMapping(value="/selectMngrSleRsltExcelFileDownload", method = RequestMethod.POST) - public void selectMngrSleRsltExcelFileDownload(HttpServletResponse response, @CookieValue(value = "authSopmalCd") String authSopmalCd, SleAnalsVO vo){ + public void selectMngrSleRsltExcelFileDownload(HttpServletResponse response, @CookieValue(value = "authSopmalCd") String authSopmalCd, BOSleAnalsVO vo){ vo.setSopmalCd(authSopmalCd); - Map resultMap = responseHandler.handleResponseAsMap( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/sleAnals/selectBOMngrSleRsltExcelFileDownload",vo) - ); + + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + + // 응답 메세지 객체 + DataMap resultMap = new DataMap(); + List resultList = service.selectBOMngrSleRsltExcelFileDownload(vo); + + resultMap.put("excelList", resultList); + +// Map resultMap = responseHandler.handleResponseAsMap( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/sleAnals/selectBOMngrSleRsltExcelFileDownload",vo) +// ); List> excelList = new ArrayList<>(); if(resultMap.get("excelList") != null) { @@ -243,11 +331,22 @@ public class SleAnalsController { public String selectMngrGoodsRslt(ModelMap model) { SleAnalsVO vo = new SleAnalsVO(); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/sleAnals/selectBOMngrGoodsRslt", vo), - model, - "cond" - ); + // 응답 메세지 객체 + Map content = new HashMap<>(); + + // 공통코드 호출 + BOMaComncdVO maComncdVO = new BOMaComncdVO(); + maComncdVO = new BOMaComncdVO(); + maComncdVO.setGroupCd("SLE_ENVRN"); // 주문환경 + + content.put("ordrEnvrnDvCdList", bOMaComncdService.selectBOCommcdDetailList(maComncdVO)); + + model.addAttribute("cond", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/sleAnals/selectBOMngrGoodsRslt", vo), +// model, +// "cond" +// ); model.put("resultMap", vo); return "mngr/stats/sleAnals/goodsRslt"; @@ -258,14 +357,27 @@ public class SleAnalsController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/selectMngrGoodsRsltChartInqire") - public ResponseEntity selectMngrGoodsRsltChartInqire(@CookieValue(value = "authSopmalCd") String authSopmalCd, SleAnalsVO vo) { - vo.setSopmalCd(authSopmalCd); + @RequestMapping(value="/selectMngrGoodsRsltChartInqire", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity selectMngrGoodsRsltChartInqire(@CookieValue(value = "authSopmalCd") String authSopmalCd, DataMap vo) { + vo.put("sopmalCd", authSopmalCd); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/sleAnals/selectBOMngrGoodsRsltChartInqire", vo), - ReplyFromResrc::getReply - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.put("sopmalCd", user.getSopmalCd()); + } + + // 응답 메세지 객체 + Map content = service.selectBOMngrGoodsRsltChartInqire(vo); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() + ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/sleAnals/selectBOMngrGoodsRsltChartInqire", vo), +// ReplyFromResrc::getReply +// ); } /** @@ -274,31 +386,67 @@ public class SleAnalsController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectMngrGoodsRsltTableInqire") - public String selectMngrGoodsRsltTableInqire(@CookieValue(value = "authSopmalCd") String authSopmalCd, SleAnalsVO vo, ModelMap model) { + public String selectMngrGoodsRsltTableInqire(@CookieValue(value = "authSopmalCd") String authSopmalCd, BOSleAnalsVO vo, ModelMap model) { vo.setSopmalCd(authSopmalCd); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/sleAnals/selectBOMngrGoodsRsltTableInqire", vo), - model, - "resultMap" - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + + // 응답 메세지 객체 + Map content = new HashMap<>(); + + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(vo.getPageIndex()); + paginationInfo.setRecordCountPerPage(vo.getRecordCountPerPage()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + + vo.setPaginationInfo(paginationInfo); + vo.setFirstIndex(paginationInfo.getFirstRecordIndex()); + vo.setLastIndex(paginationInfo.getLastRecordIndex()); + vo.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + List resultList = service.selectBOMngrGoodsRsltTableInqire(vo); + + content.put("resultList", resultList); + content.put("paginationInfo", paginationInfo); + content.put("unitFlag", vo.getUnitFlag()); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/sleAnals/selectBOMngrGoodsRsltTableInqire", vo), +// model, +// "resultMap" +// ); return "mngr/stats/sleAnals/goodsRsltTable"; } /** * 관리자 상품성과 엑셀 다운로드 - * @param SelngPrufVO + * @param vo * @return */ @SuppressWarnings("unchecked") @Policy(AuthPolicy.PUBLIC) @RequestMapping(value="/selectMngrGoodsRsltExcelFileDownload", method = RequestMethod.POST) - public void selectMngrGoodsRsltExcelFileDownload(HttpServletResponse response, @CookieValue(value = "authSopmalCd") String authSopmalCd, SleAnalsVO vo){ + public void selectMngrGoodsRsltExcelFileDownload(HttpServletResponse response, @CookieValue(value = "authSopmalCd") String authSopmalCd, BOSleAnalsVO vo){ vo.setSopmalCd(authSopmalCd); - Map resultMap = responseHandler.handleResponseAsMap( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/sleAnals/selectBOMngrGoodsRsltExcelFileDownload",vo) - ); + + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + + // 응답 메세지 객체 + DataMap resultMap = new DataMap(); + List resultList = service.selectBOMngrGoodsRsltExcelFileDownload(vo); + resultMap.put("excelList", resultList); + +// Map resultMap = responseHandler.handleResponseAsMap( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/sleAnals/selectBOMngrGoodsRsltExcelFileDownload",vo) +// ); List> excelList = new ArrayList<>(); if(resultMap.get("excelList") != null) { @@ -597,11 +745,22 @@ public class SleAnalsController { public String selectMngrGoodsPopulationStats(ModelMap model) { SleAnalsVO vo = new SleAnalsVO(); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/sleAnals/selectBOMngrGoodsPopulationStats", vo), - model, - "cond" - ); + // 응답 메세지 객체 + Map content = new HashMap<>(); + + // 공통코드 호출 + BOMaComncdVO maComncdVO = new BOMaComncdVO(); + maComncdVO = new BOMaComncdVO(); + maComncdVO.setGroupCd("SLE_ENVRN"); // 주문환경 + + content.put("ordrEnvrnDvCdList", bOMaComncdService.selectBOCommcdDetailList(maComncdVO)); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/sleAnals/selectBOMngrGoodsPopulationStats", vo), +// model, +// "cond" +// ); model.put("resultMap", vo); return "mngr/stats/sleAnals/goodsPopulationStats"; @@ -612,14 +771,27 @@ public class SleAnalsController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/selectMngrGoodsPopulationStatsChartInqire") - public ResponseEntity selectMngrGoodsPopulationStatsChartInqire(@CookieValue(value = "authSopmalCd") String authSopmalCd, SleAnalsVO vo) { - vo.setSopmalCd(authSopmalCd); + @RequestMapping(value="/selectMngrGoodsPopulationStatsChartInqire", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity selectMngrGoodsPopulationStatsChartInqire(@CookieValue(value = "authSopmalCd") String authSopmalCd, DataMap vo) { + vo.put("sopmalCd", authSopmalCd); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/sleAnals/selectBOMngrGoodsPopulationStatsChartInqire", vo), - ReplyFromResrc::getReply - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.put("sopmalCd", user.getSopmalCd()); + } + + // 응답 메세지 객체 + Map content = service.selectBOMngrGoodsPopulationStatsChartInqire(vo); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() + ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/sleAnals/selectBOMngrGoodsPopulationStatsChartInqire", vo), +// ReplyFromResrc::getReply +// ); } /** @@ -628,32 +800,66 @@ public class SleAnalsController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectMngrGoodsPopulationStatsTableInqire") - public String selectMngrGoodsPopulationStatsTableInqire(@CookieValue(value = "authSopmalCd") String authSopmalCd, SleAnalsVO vo, ModelMap model) { + public String selectMngrGoodsPopulationStatsTableInqire(@CookieValue(value = "authSopmalCd") String authSopmalCd, BOSleAnalsVO vo, ModelMap model) { vo.setSopmalCd(authSopmalCd); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/sleAnals/selectBOMngrGoodsPopulationStatsTableInqire", vo), - model, - "resultMap" - ); + // 응답 메세지 객체 + Map content = new HashMap<>(); + + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(vo.getPageIndex()); + paginationInfo.setRecordCountPerPage(vo.getRecordCountPerPage()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + + vo.setPaginationInfo(paginationInfo); + vo.setFirstIndex(paginationInfo.getFirstRecordIndex()); + vo.setLastIndex(paginationInfo.getLastRecordIndex()); + vo.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + List resultList = service.selectBOMngrGoodsPopulationStatsTableInqire(vo); + + content.put("resultList", resultList); + content.put("paginationInfo", paginationInfo); + content.put("unitFlag", vo.getUnitFlag()); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/sleAnals/selectBOMngrGoodsPopulationStatsTableInqire", vo), +// model, +// "resultMap" +// ); return "mngr/stats/sleAnals/goodsPopulationStatsTable"; } /** * 관리자 상품/인구통계 엑셀 다운로드 - * @param SelngPrufVO + * @param vo * @return */ @SuppressWarnings("unchecked") @Policy(AuthPolicy.PUBLIC) @RequestMapping(value="/selectMngrGoodsPopulationStatsExcelFileDownload", method = RequestMethod.POST) - public void selectMngrGoodsPopulationStatsExcelFileDownload(HttpServletResponse response, @CookieValue(value = "authSopmalCd") String authSopmalCd, SleAnalsVO vo){ + public void selectMngrGoodsPopulationStatsExcelFileDownload(HttpServletResponse response, @CookieValue(value = "authSopmalCd") String authSopmalCd, BOSleAnalsVO vo){ vo.setSopmalCd(authSopmalCd); - Map resultMap = responseHandler.handleResponseAsMap( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/sleAnals/selectBOMngrGoodsPopulationStatsExcelFileDownload",vo) - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + + // 응답 메세지 객체 + DataMap resultMap = new DataMap(); + List resultList = service.selectBOMngrGoodsPopulationStatsExcelFileDownload(vo); + resultMap.put("excelList", resultList); + +// Map resultMap = responseHandler.handleResponseAsMap( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/sleAnals/selectBOMngrGoodsPopulationStatsExcelFileDownload",vo) +// ); List> excelList = new ArrayList<>(); if(resultMap.get("excelList") != null) {