diff --git a/src/main/java/com/wb/domainserver/domain/gcone/mbr/mbr/vo/BOMbrVO.java b/src/main/java/com/wb/domainserver/domain/gcone/mbr/mbr/vo/BOMbrVO.java index e669bc9e..90d49eeb 100644 --- a/src/main/java/com/wb/domainserver/domain/gcone/mbr/mbr/vo/BOMbrVO.java +++ b/src/main/java/com/wb/domainserver/domain/gcone/mbr/mbr/vo/BOMbrVO.java @@ -3,6 +3,7 @@ package com.wb.domainserver.domain.gcone.mbr.mbr.vo; import com.wb.domainserver.domain.comm.vo.AbstractVO; import com.wb.domainserver.domain.crm.mbr.vo.CrmMbrVO; import com.wb.domainserver.util.dataaccess.DataMap; +import jakarta.validation.constraints.NotBlank; import lombok.Data; import lombok.EqualsAndHashCode; @@ -63,10 +64,12 @@ public class BOMbrVO extends AbstractVO{ private String mbrTyCd; /**회원id*/ private String mbrId; - /**회원비밀번호*/ + /** 회원비밀번호 */ private String mbrPassword; /** 변경할 비밀번호 */ private String newPassword; + /** 변경할 비밀번호 확인 비밀번호 */ + private String checkPassword; /** 회원비밀번호 확인 */ private String mbrPasswordChk; /**비밀번호변경일자*/ diff --git a/src/main/java/com/wb/domainserver/domain/gcone/mbr/mbr/vo/BOWishVO.java b/src/main/java/com/wb/domainserver/domain/gcone/mbr/mbr/vo/BOWishVO.java index 2ea035ac..fe5a86b8 100644 --- a/src/main/java/com/wb/domainserver/domain/gcone/mbr/mbr/vo/BOWishVO.java +++ b/src/main/java/com/wb/domainserver/domain/gcone/mbr/mbr/vo/BOWishVO.java @@ -51,6 +51,11 @@ public class BOWishVO extends AbstractVO{ private String[] wslistInnbArr; + /** AGENT */ + private String agent; + + private String serverDv; + } diff --git a/src/main/java/com/wb/domainserver/domain/gcone/ordr/ordr/vo/BOCrmDlvylcVO.java b/src/main/java/com/wb/domainserver/domain/gcone/ordr/ordr/vo/BOCrmDlvylcVO.java index d13639ed..27887828 100644 --- a/src/main/java/com/wb/domainserver/domain/gcone/ordr/ordr/vo/BOCrmDlvylcVO.java +++ b/src/main/java/com/wb/domainserver/domain/gcone/ordr/ordr/vo/BOCrmDlvylcVO.java @@ -69,4 +69,6 @@ public class BOCrmDlvylcVO extends AbstractVO{ /* formId */ private String formId; + /*모바일 여부 확인*/ + private String isMobile; } diff --git a/src/main/java/com/wb/domainserver/domain/gcone/ordr/ordr/vo/BOOrdrDlvyVO.java b/src/main/java/com/wb/domainserver/domain/gcone/ordr/ordr/vo/BOOrdrDlvyVO.java index 2d3ce25a..19e425ec 100644 --- a/src/main/java/com/wb/domainserver/domain/gcone/ordr/ordr/vo/BOOrdrDlvyVO.java +++ b/src/main/java/com/wb/domainserver/domain/gcone/ordr/ordr/vo/BOOrdrDlvyVO.java @@ -39,4 +39,8 @@ public class BOOrdrDlvyVO extends AbstractVO { /** 현재 주문 상태 */ private String currOrdrSttusCd; + private String dateRange; // 기간 + private String serverDv; // 서버 구분 + private String mpageAt; // 마이페이지 여부 + private String[] cookieValArr;//쿠키 } diff --git a/src/main/java/com/wb/domainserver/domain/gcone/ordr/rtngudrefnd/vo/BORtngudrefndVO.java b/src/main/java/com/wb/domainserver/domain/gcone/ordr/rtngudrefnd/vo/BORtngudrefndVO.java index 8d3919f2..1fe3d75f 100644 --- a/src/main/java/com/wb/domainserver/domain/gcone/ordr/rtngudrefnd/vo/BORtngudrefndVO.java +++ b/src/main/java/com/wb/domainserver/domain/gcone/ordr/rtngudrefnd/vo/BORtngudrefndVO.java @@ -199,4 +199,9 @@ public class BORtngudrefndVO extends AbstractVO{ /** 실 환불 GC 머니 금액 */ private String prosbleCancelCashAmt; + + //** 반품처리상태 */ + private String[] returnProcsStuusCd; + + private String serverDv; } diff --git a/src/main/java/com/wb/domainserver/domain/sopmal/mbr/controller/MbrController.java b/src/main/java/com/wb/domainserver/domain/sopmal/mbr/controller/MbrController.java index 9c0e546b..c6ad07a4 100644 --- a/src/main/java/com/wb/domainserver/domain/sopmal/mbr/controller/MbrController.java +++ b/src/main/java/com/wb/domainserver/domain/sopmal/mbr/controller/MbrController.java @@ -15,9 +15,7 @@ import com.wb.domainserver.domain.gcone.ntcn.mssage.service.BOMssageService; import com.wb.domainserver.domain.gcone.ordr.ordr.service.BOOrdrService; import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOCrmDlvylcVO; import com.wb.domainserver.domain.gcone.promtn.coupon.service.BOCouponService; -import com.wb.domainserver.domain.sopmal.main.vo.MaSopmalVO; import com.wb.domainserver.domain.sopmal.mbr.vo.MbrVO; -import com.wb.domainserver.domain.sopmal.mpage.mbr.vo.MyMbrPwdChngVO; import com.wb.domainserver.exception.WnbtRestException; import com.wb.domainserver.realm.util.UrlExtractor; import com.wb.domainserver.response.WnbtResponse; @@ -27,8 +25,6 @@ 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; @@ -39,6 +35,7 @@ import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpSession; 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; @@ -284,7 +281,7 @@ public class MbrController { * @author 이대환 */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value="/insertPhoneAuth") + @RequestMapping(value="/insertPhoneAuth", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity insertPhoneAuth(BOMbrVO vo, BindingResult bindingResult){ AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); @@ -348,7 +345,7 @@ public class MbrController { * @author 이대환 */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value="/selectPhoneAuth") + @RequestMapping(value="/selectPhoneAuth", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity selectPhoneAuth(BOMbrVO vo, BindingResult bindingResult){ DataMap content = new DataMap(); @@ -366,7 +363,7 @@ public class MbrController { * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value="/insertUsrJoinRegist") + @RequestMapping(value="/insertUsrJoinRegist", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity insertUsrJoinRegist(HttpServletRequest request, HttpServletResponse response, @Validated BOMbrVO vo, BindingResult bindingResult){ HttpSession session = request.getSession(); @@ -549,7 +546,7 @@ public class MbrController { * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value="/selectMbrwithdrawalSearch") + @RequestMapping(value="/selectMbrwithdrawalSearch", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity selectMbrwithdrawalSearch(BOMbrVO vo, BindingResult bindingResult){ AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); @@ -581,7 +578,7 @@ public class MbrController { * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value="/selectIdDplctCnfirm") + @RequestMapping(value="/selectIdDplctCnfirm", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity selectIdDplctCnfirm(BOMbrVO vo, BindingResult bindingResult){ AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); @@ -618,7 +615,7 @@ public class MbrController { * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value="/selectUsrLogin") + @RequestMapping(value="/selectUsrLogin", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity selectUsrLogin(BOMbrVO vo, BindingResult bindingResult){ Map content = new HashMap<>(); @@ -637,7 +634,7 @@ public class MbrController { * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value="/selectNmbrOrdrInqire") + @RequestMapping(value="/selectNmbrOrdrInqire", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity selectNmbrOrdrInqire(BOMbrVO vo, BindingResult bindingResult){ Map content = new HashMap<>(); @@ -666,7 +663,7 @@ public class MbrController { * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value="/selectPasswordSearch") + @RequestMapping(value="/selectPasswordSearch", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity selectIdPasswordSearch(BOMbrVO vo){ List> errorList = new ArrayList<>(); @@ -730,7 +727,7 @@ public class MbrController { * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value="/selectIdSearch") + @RequestMapping(value="/selectIdSearch", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity selectIdSearch(BOMbrVO vo){ List> errorList = new ArrayList<>(); @@ -807,7 +804,7 @@ public class MbrController { * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value="/insertMbrLoginInfo") + @RequestMapping(value="/insertMbrLoginInfo", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity insertMbrLoginInfo(BOMbrVO vo){ //쇼핑몰코드 set AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); @@ -878,8 +875,8 @@ public class MbrController { * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping("/updatePasswordChng") - public ResponseEntity passWordChng(@Validated MyMbrPwdChngVO mymbrVO, @Validated BOMbrVO vo, BindingResult bindingResult) { + @RequestMapping(value = "/updatePasswordChng", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity passWordChng(@Validated BOMbrVO mymbrVO, @Validated BOMbrVO vo, BindingResult bindingResult) { // 정합성 검사 if (bindingResult.hasErrors()) { throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); @@ -887,9 +884,9 @@ public class MbrController { //비밀번호 변경시 /*1 비밀번호 변경 시 현재 비밀번호 확인*/ - Map resultMap = responseHandler.handleResponseAsMap( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrPasswordCnfirm", mymbrVO) - ); +// Map resultMap = responseHandler.handleResponseAsMap( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrPasswordCnfirm", mymbrVO) +// ); // 사용자 정보 추출 및 적용 AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); @@ -957,7 +954,7 @@ public class MbrController { * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping("/updatePasswordChngLater") + @RequestMapping(value = "/updatePasswordChngLater", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity passWordChngLater(BOMbrVO vo) { // 사용자 정보 추출 및 적용 AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); @@ -988,8 +985,6 @@ public class MbrController { @Policy(AuthPolicy.PUBLIC) @RequestMapping("/selectMbrMarktAgreePopup") public String selectMbrMarktAgreePopup(HttpServletRequest request, BOMaSopmalVO vo, ModelMap model) { - - AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); vo.setSopmalCd(user.getSopmalCd()); @@ -1017,7 +1012,7 @@ public class MbrController { * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping("/updateMarkRecptnAgreUpdt") + @RequestMapping(value = "/updateMarkRecptnAgreUpdt", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity updateMarkRecptnAgreUpdt(BOMbrVO vo) { //마케팅 수신동의 수정 @@ -1031,7 +1026,6 @@ public class MbrController { vo.setRegusr(user.getUserInnb()); vo.setUpdusr(user.getUserInnb()); - Map content = new HashMap<>(); DataMap dataMap = new DataMap(); @@ -1060,13 +1054,12 @@ public class MbrController { .resBody(new WnbtResponseBody(content)) .build() ); - } /** * 코드 디코딩 * @param code - * @return ResponseEntity + * @return int */ public int code2seq(String code) { // HEX 제외 문자 배열 diff --git a/src/main/java/com/wb/domainserver/domain/sopmal/mpage/act/controller/MyActController.java b/src/main/java/com/wb/domainserver/domain/sopmal/mpage/act/controller/MyActController.java index 6589e866..f16f7728 100644 --- a/src/main/java/com/wb/domainserver/domain/sopmal/mpage/act/controller/MyActController.java +++ b/src/main/java/com/wb/domainserver/domain/sopmal/mpage/act/controller/MyActController.java @@ -1,25 +1,52 @@ package com.wb.domainserver.domain.sopmal.mpage.act.controller; import com.wb.domainserver.common.msg.GconeMessageSource; -import com.wb.domainserver.domain.sopmal.csc.vo.GnrlBbscttVO; -import com.wb.domainserver.domain.sopmal.mpage.act.vo.RvwVO; +import com.wb.domainserver.common.mvc.tags.ui.pagination.PaginationInfo; +import com.wb.domainserver.common.prop.PaginationProperties; +import com.wb.domainserver.domain.gcone.bbs.bbs.service.BOBbsService; +import com.wb.domainserver.domain.gcone.bbs.bbs.vo.BOBbsVO; +import com.wb.domainserver.domain.gcone.bbs.gnrlbbsctt.service.BOGnrlbbscttService; +import com.wb.domainserver.domain.gcone.bbs.gnrlbbsctt.vo.BODelInfoVO; +import com.wb.domainserver.domain.gcone.bbs.gnrlbbsctt.vo.BOGnrlbbscttVO; +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.mbr.mbr.service.BOMbrService; +import com.wb.domainserver.domain.gcone.mbr.mbr.vo.BOMbrVO; +import com.wb.domainserver.domain.gcone.mbr.mlg.service.BOMlgService; +import com.wb.domainserver.domain.gcone.mbr.mlg.vo.BOMlgVO; +import com.wb.domainserver.domain.gcone.setup.site.service.BOSiteService; +import com.wb.domainserver.domain.gcone.setup.site.vo.BOSiteVO; 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.communicate.SendToResrc; +import com.wb.domainserver.util.dataaccess.DataMap; import com.wb.domainserver.util.file.service.FileStorageService; import com.wb.domainserver.util.util.Util; import jakarta.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; +import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; +import java.math.BigDecimal; +import java.math.BigInteger; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + /** * MyActController Class (back) * @@ -55,30 +82,53 @@ public class MyActController { @Autowired private FileStorageService filestore; - /** + + @Autowired + private BOGnrlbbscttService service; + @Autowired + private BOBbsService bbsService; + @Autowired + private BOMlgService mlgService; + @Autowired + private BOGoodsService goodsService; + @Autowired + private BOMbrService boMbrService; + @Autowired + private BOCommonService boCommonService; + @Autowired + private PaginationProperties paginationProperties; + @Autowired + private BOSiteService boSiteService; + + + /** * 상품 Q&A 조회 * @param bbsctt * @return String */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value="/selectGoodsQnaInqire") - public String selectGoodsQnaInqire(HttpServletRequest request, ModelMap model, GnrlBbscttVO bbsctt){ + public String selectGoodsQnaInqire(HttpServletRequest request, ModelMap model, BOGnrlbbscttVO bbsctt, BOMbrVO vo){ bbsctt.setBbsTyCd("05"); bbsctt.setServerDv("sopmal"); bbsctt.setReqUrl("mpage"); - //BO에서 API 호출 - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttListInqire",bbsctt), - model, - "resultMap" - ); + DataMap content = selectBOBbscttListInqire(bbsctt); + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttListInqire",bbsctt), +// model, +// "resultMap" +// ); + + Map content2 = selectBOMpageInfoInqire(vo); // 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 ) - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire",bbsctt), - model, - "mpageResultMap" - ); + model.addAttribute("mpageResultMap", content2); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire",bbsctt), +// model, +// "mpageResultMap" +// ); return Util.getDeviceType(request)+"/mpage/act/MyGoodsQaR"; } @@ -88,16 +138,23 @@ public class MyActController { * @return String */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value="/selectGoodsQnaInqireAjax") - public ResponseEntity selectGoodsQnaInqireAjax(GnrlBbscttVO bbsctt){ + @RequestMapping(value="/selectGoodsQnaInqireAjax", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity selectGoodsQnaInqireAjax(BOGnrlbbscttVO bbsctt){ bbsctt.setBbsTyCd("05"); bbsctt.setServerDv("sopmal"); bbsctt.setReqUrl("mpage"); //게시글 노출 항목 설정값과 게시판 목록 조회 - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttListInqire",bbsctt), - ReplyFromResrc::getReply + + DataMap content = selectBOBbscttListInqire(bbsctt); + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttListInqire",bbsctt), +// ReplyFromResrc::getReply +// ); } /** @@ -106,14 +163,25 @@ public class MyActController { * @return String */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value="/selectFileInfo") - public ResponseEntity selectFileInfo(HttpServletRequest request, ModelMap model, GnrlBbscttVO bbsctt){ + @RequestMapping(value="/selectFileInfo", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity selectFileInfo(HttpServletRequest request, ModelMap model, BOGnrlbbscttVO bbsctt){ bbsctt.setServerDv("sopmal"); - //BO에서 API 호출 - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOFileInfo",bbsctt), - ReplyFromResrc::getReply + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if ("01".equals(user.getSysDvCd())) { + bbsctt.setSopmalCd(user.getSopmalCd()); + } + DataMap content = new DataMap(); + content.put("fileInfo", service.selectFileInfo(bbsctt)); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOFileInfo",bbsctt), +// ReplyFromResrc::getReply +// ); } /** @@ -123,22 +191,73 @@ public class MyActController { */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value="/selectGoodsQnaDtlUpdtForm") - public String selectGoodsQnaDtlUpdtForm(HttpServletRequest request, ModelMap model,GnrlBbscttVO bbsctt){ + public String selectGoodsQnaDtlUpdtForm(HttpServletRequest request, ModelMap model,BOGnrlbbscttVO bbsctt, BOMbrVO vo){ bbsctt.setServerDv("sopmal"); - //BO에서 API 호출 - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttUpdtPopupForm",bbsctt), - model, - "resultMap" - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if ("01".equals(user.getSysDvCd())) { + bbsctt.setSopmalCd(user.getSopmalCd()); + } + ; + if (user.getUserInnb() > 0) { + if ("mngr".equals(bbsctt.getServerDv())) { + bbsctt.setRegusrDvCd("02"); //관리자 + } else { + bbsctt.setRegusrDvCd("01"); //회원 + bbsctt.setAnswMbtlnb(user.getMbtlnb()); + } + } else { + bbsctt.setRegusrDvCd("99");//비회원 + } + bbsctt.setSecretKey(boCommonService.selectSecretkey()); + // 게시판 설정 정보 + BOBbsVO bbsVO = new BOBbsVO(); + // bbsVO에 쇼핑몰코드, 해당 게시판 set + bbsVO.setSopmalCd(bbsctt.getSopmalCd()); + bbsVO.setBbsId(bbsctt.getBbsId()); + bbsVO.setBbsTyCd(bbsctt.getBbsTyCd()); + DataMap bbsInfo = new DataMap(); + bbsInfo = bbsService.selectBOBbsSetupInfo(bbsVO); + + // 게시글 상세 조회 + Map bbscttInfo = new HashMap(); + bbscttInfo = service.selectBOBbscttUpdt(bbsctt); + + // 분류 조회 + List itmList = new ArrayList<>(); + itmList = service.selectBOBbscttItmInqire(bbsctt); + + //추가 항목 조회, 추가항목 항목 조회 + Map qesitmList = new HashMap(); + qesitmList = service.selectBOBbscttRegistPopupForm(bbsctt); + + //리뷰항목 리스트, 리뷰항목 항목 리스트 + Map rvwQesitmList = new HashMap(); + rvwQesitmList = service.selectBOStarItm(bbsctt); + + Map content = new HashMap(); + content.put("bbsInfo", bbsInfo); + content.put("bbscttVO", bbsctt); + content.put("bbscttInfo", bbscttInfo); + content.put("itmList", itmList); + content.put("qesitmList", qesitmList); + content.put("rvwQesitmList", rvwQesitmList); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttUpdtPopupForm",bbsctt), +// model, +// "resultMap" +// ); model.addAttribute("bbsctt", bbsctt); // 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 ) - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire",bbsctt), - model, - "mpageResultMap" - ); + Map content2 = selectBOMpageInfoInqire(vo); + model.addAttribute("mpageResultMap", content2); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire",bbsctt), +// model, +// "mpageResultMap" +// ); return Util.getDeviceType(request)+"/mpage/act/MyGoodsQnaDtlUpdtU"; } @@ -150,20 +269,29 @@ public class MyActController { */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value="/selectMyRvwInqireForm") - public String selectMyRvwInqireForm(HttpServletRequest request, ModelMap model,GnrlBbscttVO bbsctt){ - //BO에서 API 호출 - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBORvwBnefInfo",bbsctt), - model, - "mlgAccmlNtc" - ); + public String selectMyRvwInqireForm(HttpServletRequest request, ModelMap model,BOGnrlbbscttVO bbsctt, BOMbrVO vo){ + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + bbsctt.setSopmalCd(user.getSopmalCd()); + + /*리뷰 조회 폼*/ + DataMap rvwBnefInfo = new DataMap(); + rvwBnefInfo = service.selectBORvwBnefInfo(bbsctt); + + model.addAttribute("mlgAccmlNtc", rvwBnefInfo); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBORvwBnefInfo",bbsctt), +// model, +// "mlgAccmlNtc" +// ); // 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 ) - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire",bbsctt), - model, - "mpageResultMap" - ); + Map content2 = selectBOMpageInfoInqire(vo); + model.addAttribute("mpageResultMap", content2); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire",bbsctt), +// model, +// "mpageResultMap" +// ); model.addAttribute("vo",bbsctt); return Util.getDeviceType(request)+"/mpage/act/MyRvwRForm"; } @@ -174,15 +302,17 @@ public class MyActController { */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value="/selectWritngPosblRvwInqire") - public String selectWritngPosblRvwInqire(HttpServletRequest request, ModelMap model,RvwVO rvwVO){ + public String selectWritngPosblRvwInqire(HttpServletRequest request, ModelMap model,BOGnrlbbscttVO rvwVO){ rvwVO.setRvwBbscttDv("rvw"); rvwVO.setServerDv("sopmal"); - //BO에서 API 호출 - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOWritPosblRvw",rvwVO), - model, - "resultMap" - ); + + Map content = selectBOWritPosblRvw(rvwVO); + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOWritPosblRvw",rvwVO), +// model, +// "resultMap" +// ); return Util.getDeviceType(request)+"/mpage/act/WritngPosblRvwR"; } /** @@ -191,15 +321,21 @@ public class MyActController { * @return String */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value="/selectWritngPosblRvwInqireAjax") - public ResponseEntity selectWritngPosblRvwInqireAjax(RvwVO rvwVO){ + @RequestMapping(value="/selectWritngPosblRvwInqireAjax", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity selectWritngPosblRvwInqireAjax(BOGnrlbbscttVO rvwVO){ rvwVO.setRvwBbscttDv("rvw"); rvwVO.setServerDv("sopmal"); - //BO에서 API 호출 - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOWritPosblRvw",rvwVO), - ReplyFromResrc::getReply + + Map content = selectBOWritPosblRvw(rvwVO); + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOWritPosblRvw",rvwVO), +// ReplyFromResrc::getReply +// ); } /** @@ -209,16 +345,18 @@ public class MyActController { */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value="/selectMyRvwInqire") - public String selectMyRvwInqire(HttpServletRequest request, ModelMap model,RvwVO rvwVO){ + public String selectMyRvwInqire(HttpServletRequest request, ModelMap model,BOGnrlbbscttVO rvwVO){ rvwVO.setReqUrl("mpage"); rvwVO.setServerDv("sopmal"); rvwVO.setUseAt("Y"); - //BO에서 API 호출 - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOMyRvwListInqire",rvwVO), - model, - "resultMap" - ); + + DataMap content = selectBOMyRvwListInqire(rvwVO); + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOMyRvwListInqire",rvwVO), +// model, +// "resultMap" +// ); return Util.getDeviceType(request)+"/mpage/act/MyRvwR"; } @@ -228,16 +366,22 @@ public class MyActController { * @return String */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value="/selectMyRvwInqireAjax") - public ResponseEntity selectMyRvwInqireAjax(RvwVO rvwVO){ + @RequestMapping(value="/selectMyRvwInqireAjax", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity selectMyRvwInqireAjax(BOGnrlbbscttVO rvwVO){ rvwVO.setReqUrl("mpage"); rvwVO.setServerDv("sopmal"); rvwVO.setUseAt("Y"); - //BO에서 API 호출 - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOMyRvwListInqire",rvwVO), - ReplyFromResrc::getReply + + DataMap content = selectBOMyRvwListInqire(rvwVO); + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOMyRvwListInqire",rvwVO), +// ReplyFromResrc::getReply +// ); } /** @@ -247,15 +391,18 @@ public class MyActController { */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value = "/selectRvwWritngPopupForm") - public String selectRvwWritngPopupForm(HttpServletRequest request, ModelMap model, RvwVO rvwVO){ + public String selectRvwWritngPopupForm(HttpServletRequest request, ModelMap model, BOGnrlbbscttVO rvwVO){ rvwVO.setRvwBbscttDv("rvw"); rvwVO.setServerDv("sopmal"); //리뷰 등록 가능 여부 true시 등록폼 호출 - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttRegistPopupForm",rvwVO), - model, - "resultMap" - ); + + Map content = selectBOBbscttRegistPopupForm(rvwVO); + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttRegistPopupForm",rvwVO), +// model, +// "resultMap" +// ); return Util.getDeviceType(request)+"/mpage/act/RvwWritngPopupC"; } @@ -267,15 +414,120 @@ public class MyActController { * @return ResponseEntity */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value = "/deleteRvwBbscttDel", method = RequestMethod.POST) - public ResponseEntity deleteRvwBbscttDel(@RequestBody GnrlBbscttVO bbsctt) { + @RequestMapping(value = "/deleteRvwBbscttDel", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity deleteRvwBbscttDel(@RequestBody BOGnrlbbscttVO bbsctt) { bbsctt.setServerDv("sopmal"); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if ("01".equals(user.getSysDvCd())) { + bbsctt.setSopmalCd(user.getSopmalCd()); + } - //BO에서 API 호출 - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/updateBOBbscttDel",bbsctt), - ReplyFromResrc::getReply + // 작성자 정보 추출 + if (user.getUserInnb() > 0) { //회원 , 관리자 + bbsctt.setUpdusr(user.getUserInnb()); + } else { // 비회원 + bbsctt.setUpdusr(0); + } + + Map content = new HashMap<>(); + + /*게시글 삭제*/ + DataMap bbscttDelResult = service.updateBOBbscttDel(bbsctt); + content.put("result", bbscttDelResult); + /*삭제 성공 시*/ + if ("success".equals(bbscttDelResult.get("result"))) { + //리뷰 관련 처리 + if ("06".equals(bbsctt.getBbsTyCd()) || "07".equals(bbsctt.getBbsTyCd())) { + if (!CollectionUtils.isEmpty(bbsctt.getDelInfoArr())) { + /*해당 정보로 마일리지 금액 조회하기*/ + List accmlmnyAmtInfoArr = new ArrayList<>(); + BOMlgVO mlgVo = new BOMlgVO(); + for (BODelInfoVO delInfo : bbsctt.getDelInfoArr()) { + if ("01".equals(delInfo.getRegusrDvCd())) { + if ("03".equals(user.getSysDvCd())) { //관리자 삭제시 마일리지 회수 + /*공통 파라미터*/ + mlgVo.setMbrInnb(String.valueOf(delInfo.getRegusr())); + mlgVo.setMbrDvCd(delInfo.getMbrDvCd()); + mlgVo.setSopmalCd(bbsctt.getSopmalCd()); + mlgVo.setBbscttInnb(BigInteger.valueOf(delInfo.getBbscttInnb())); + mlgVo.setMlgApplcDvCd("06"); + mlgVo.setMlgApplcResn("[회수]리뷰(구매후기) 삭제에 의한 마일리지 차감"); + mlgVo.setRegusrDvCd("02"); + mlgVo.setUpdusrDvCd("02"); + mlgVo.setRegusr(user.getUserInnb()); + mlgVo.setUpdusr(user.getUserInnb()); + + /*마일리지 수동 회수 여부*/ + if ("N".equals(bbsctt.getMlgPassivRtrvlAt())) { // 선택 삭제시 + DataMap accmlmnyAmtInfo = new DataMap(); + accmlmnyAmtInfo = mlgService.selectBOMlgByBbscttInnb(mlgVo); + if (accmlmnyAmtInfo != null) { + mlgVo.setMbrInnb(String.valueOf(accmlmnyAmtInfo.get("regusr"))); + mlgVo.setMbrDvCd((String) accmlmnyAmtInfo.get("mbrDvCd")); + mlgVo.setSopmalCd((String) accmlmnyAmtInfo.get("sopmalCd")); + mlgVo.setBbscttInnb((BigInteger) accmlmnyAmtInfo.get("bbscttInnb")); + mlgVo.setAccmlmnyAmt((BigDecimal) accmlmnyAmtInfo.get("accmlmnyAmt")); + mlgService.insertBOMngrMlgDn(mlgVo); + } + } else { //단독 삭제시*/ + if (delInfo.getRtrvlMlgAmt() != null) { + if (delInfo.getRtrvlMlgAmt().compareTo(BigDecimal.valueOf(0)) > 0) { + mlgVo.setAccmlmnyAmt(delInfo.getRtrvlMlgAmt()); + mlgService.insertBOMngrMlgDn(mlgVo); + } + } + } + } + //회원 관련 + if (delInfo.getRegusr() != null) { + BOGnrlbbscttVO mbrSite = new BOGnrlbbscttVO(); + mbrSite.setSopmalCd(bbsctt.getSopmalCd()); + if ("sopmal".equals(bbsctt.getServerDv())) { + mbrSite.setRegusr(user.getUserInnb()); + mbrSite.setMbrDvCd(user.getMbrDvCd()); + } else { + mbrSite.setRegusr(delInfo.getRegusr()); + mbrSite.setMbrDvCd(delInfo.getMbrDvCd()); + } + service.updateBORvwWritngCnt(mbrSite); + } + } + + //상품관련 집계와 회원관련 집계는 관리자혹은 사용자가 모두 삭제 시 처리가 되어야해 + //상품 관련 + if (delInfo.getGoodsInnb() != null) { + BOGoodsVO goodsVO = new BOGoodsVO(); + goodsVO.setGoodsInnb(String.valueOf(delInfo.getGoodsInnb())); + goodsVO.setSopmalCd(bbsctt.getSopmalCd()); + /*상품정보 > 상품후기건수 차감*/ + goodsService.updateRvwRelateSm(goodsVO); + } + } + } + } else if ("05".equals(bbsctt.getBbsTyCd())) {//상품qna는 상품문의 집계만 + //상품 관련 + if (!CollectionUtils.isEmpty(bbsctt.getGoodsInnbArr())) { + for (String goodsInnb : bbsctt.getGoodsInnbArr()) { + BOGoodsVO goodsVO = new BOGoodsVO(); + goodsVO.setGoodsInnb(goodsInnb); + goodsVO.setSopmalCd(bbsctt.getSopmalCd()); + + /*상품정보 > 상품후기건수 차감*/ + goodsService.updateGoodsInqryCnt(goodsVO); + } + } + } + } + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/updateBOBbscttDel",bbsctt), +// ReplyFromResrc::getReply +// ); } /** @@ -286,14 +538,263 @@ public class MyActController { */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value = "/selectRvwEasyRegistForm", method = RequestMethod.POST) - public String selectRvwEasyRegistForm(@RequestBody RvwVO vo, ModelMap model, HttpServletRequest request) { + public String selectRvwEasyRegistForm(@RequestBody BOGnrlbbscttVO vo, ModelMap model, HttpServletRequest request) { vo.setRvwBbscttDv("rvw"); - //BO에서 API 호출 - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttRegistPopupForm", vo), - model, - "resultMap" - ); + + Map content = selectBOBbscttRegistPopupForm(vo); + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttRegistPopupForm", vo), +// model, +// "resultMap" +// ); return Util.getDeviceType(request)+"/mpage/act/RvwEasyRegistC"; } + + + /** + * bo로직 게시글 목록 조회 + * + */ + public DataMap selectBOBbscttListInqire(BOGnrlbbscttVO bbsctt) { + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + + if ("01".equals(user.getSysDvCd())) {//사용자 조회 일 경우 + bbsctt.setSopmalCd(user.getSopmalCd()); + } + + if (!"crm".equals(bbsctt.getReqUrl())) { + if (user.getUserInnb() > 0) { + bbsctt.setRegusr(user.getUserInnb()); + if ("sopmal".equals(bbsctt.getServerDv())) { + bbsctt.setRegusrDvCd("01"); + } else { + bbsctt.setRegusrDvCd("02"); + } + } else { + bbsctt.setRegusr(0); + bbsctt.setRegusrDvCd("99"); + } + } + // pagination + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(bbsctt.getPageIndex()); + paginationInfo.setRecordCountPerPage(bbsctt.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + + bbsctt.setPaginationInfo(paginationInfo); + bbsctt.setFirstIndex(paginationInfo.getFirstRecordIndex()); + bbsctt.setLastIndex(paginationInfo.getLastRecordIndex()); + bbsctt.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + // 게시글 목록조회 + Map resultList = new HashMap(); + resultList = service.selectBOBbscttListInqire(bbsctt); + + // 게시판 설정 정보 조회 + BOBbsVO bbsVO = new BOBbsVO(); + // bbsVO에 쇼핑몰코드, 해당 게시판 set + bbsVO.setSopmalCd(bbsctt.getSopmalCd()); + bbsVO.setBbsId(bbsctt.getBbsId()); + bbsVO.setBbsTyCd(bbsctt.getBbsTyCd()); + DataMap bbsInfo = new DataMap(); + bbsInfo = bbsService.selectBOBbsSetupInfo(bbsVO); + DataMap content = new DataMap(); + + content.put("bbsInfo", bbsInfo); + content.put("bbsctt", bbsctt); + content.put("resultList", resultList); + content.put("paginationInfo", bbsctt.getPaginationInfo()); + return content; + } + + /** + * bo로직 사이트 메인페이지 등급, 마일리지, 쿠폰, 위시리스트, 배송중 정보 조회 + * + */ + public Map selectBOMpageInfoInqire(BOMbrVO vo) { + // 사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + vo.setSopmalCd(user.getSopmalCd()); + vo.setMbrInnb(String.valueOf(user.getUserInnb())); + vo.setMbrDvCd(user.getMbrDvCd()); + + // 상품 옵션 조회 + Map message = new HashMap<>(); + message = boMbrService.selectBOMpageInfoInqire(vo); + + BOSiteVO siteVO = new BOSiteVO(); + siteVO.setSopmalCd(vo.getSopmalCd()); + siteVO.setCookieValArr(vo.getCookieValArr()); + + List recentGoods = null; + if (vo.getCookieValArr() != null) { + recentGoods = boSiteService.selectBOMainRecentGoods(siteVO); + message.put("recentGoods", recentGoods); + } + return message; + } + + /** + * bo로직 작성 가능한 리뷰 + * + */ + public Map selectBOWritPosblRvw(BOGnrlbbscttVO bbsctt) { + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + bbsctt.setSopmalCd(user.getSopmalCd()); + bbsctt.setRegusr(user.getUserInnb()); + bbsctt.setMbrDvCd(user.getMbrDvCd()); + // pagination + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(bbsctt.getPageIndex()); + paginationInfo.setRecordCountPerPage(bbsctt.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + + bbsctt.setPaginationInfo(paginationInfo); + bbsctt.setFirstIndex(paginationInfo.getFirstRecordIndex()); + bbsctt.setLastIndex(paginationInfo.getLastRecordIndex()); + bbsctt.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + List resultList = new ArrayList<>(); + resultList = service.selectBOWritPosblRvw(bbsctt); + + Map content = new HashMap<>(); + content.put("bbscttVO", bbsctt); + content.put("resultList", resultList); + content.put("paginationInfo", bbsctt.getPaginationInfo()); + return content; + } + + /** + * bo로직 마이페이지 > 나의 활동 > 나의리뷰 조회 + * + */ + public DataMap selectBOMyRvwListInqire(BOGnrlbbscttVO bbsctt) { + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if ("01".equals(user.getSysDvCd())) { + bbsctt.setSopmalCd(user.getSopmalCd()); + } + if (!"crm".equals(bbsctt.getReqUrl())) { + bbsctt.setRegusr(user.getUserInnb()); + } + // pagination + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(bbsctt.getPageIndex()); + paginationInfo.setRecordCountPerPage(bbsctt.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + + bbsctt.setPaginationInfo(paginationInfo); + bbsctt.setFirstIndex(paginationInfo.getFirstRecordIndex()); + bbsctt.setLastIndex(paginationInfo.getLastRecordIndex()); + bbsctt.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + // 게시글 목록조회 + Map resultList = new HashMap(); + resultList = service.selectBOMyRvwListInqire(bbsctt); + + DataMap content = new DataMap(); + content.put("bbscttVO", bbsctt); + content.put("resultList", resultList); + content.put("paginationInfo", bbsctt.getPaginationInfo()); + return content; + } + + /** + * 게시글 등록 팝업 + */ + public Map selectBOBbscttRegistPopupForm(BOGnrlbbscttVO bbsctt) { + Map content = new HashMap(); + // 작성자 정보 추출 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + + if ("01".equals(user.getSysDvCd())) { + bbsctt.setSopmalCd(user.getSopmalCd()); + } + ; + + BOGnrlbbscttVO regusrInfo = new BOGnrlbbscttVO(); + DataMap mbrInfo = new DataMap(); + if (user.getUserInnb() > 0) { + bbsctt.setRegusr(user.getUserInnb()); + if (!"01".equals(user.getSysDvCd())) { + bbsctt.setRegusrDvCd("02"); //관리자 + } else { + bbsctt.setRegusrDvCd("01"); //회원 + bbsctt.setMbrDvCd(user.getMbrDvCd()); + DataMap mbr = new DataMap(); + mbr.put("mbrInnb", String.valueOf(bbsctt.getRegusr())); + mbr.put("mbrDvCd", bbsctt.getMbrDvCd()); + mbr.put("secretKey", boCommonService.selectSecretkey()); + mbr.put("sopmalCd", bbsctt.getSopmalCd()); + mbrInfo = boMbrService.selectSimpleMbrInfo(mbr); + regusrInfo.setAnswMbtlnb((String) mbrInfo.get("mbtlnb")); + } + regusrInfo.setRegusrNm(user.getMbrNm()); + regusrInfo.setRegusrId(user.getMbrId()); + regusrInfo.setRegusr(user.getUserInnb()); + regusrInfo.setRegusrDvCd(bbsctt.getRegusrDvCd()); + } else { + regusrInfo.setRegusr(0); + regusrInfo.setRegusrDvCd("99");//비회원 + } + + // 게시판 설정 정보 + BOBbsVO bbsVO = new BOBbsVO(); + // bbsVO에 쇼핑몰코드, 해당 게시판 set + bbsVO.setSopmalCd(bbsctt.getSopmalCd()); + bbsVO.setBbsId(bbsctt.getBbsId()); + bbsVO.setBbsTyCd(bbsctt.getBbsTyCd()); + DataMap bbsInfo = new DataMap(); + bbsInfo = bbsService.selectBOBbsSetupInfo(bbsVO); + + // 분류 + List itmList = new ArrayList<>(); + itmList = service.selectBOBbscttItmInqire(bbsctt); + + //리뷰항목 리스트, 리뷰항목 항목 리스트 + Map rvwQesitmList = new HashMap(); + rvwQesitmList = service.selectBOStarItm(bbsctt); + + //추가항목 리스트, 추가항목 항목 리스트 + Map qesitmList = new HashMap(); + qesitmList = service.selectBOBbscttRegistPopupForm(bbsctt); + + //사용자 > 리뷰 상품 조회 + DataMap rvwGoodsInfo = new DataMap(); + DataMap mlgInfo = new DataMap(); + if ("sopmal".equals(bbsctt.getServerDv())) { + if ("rvw".equals(bbsctt.getRvwBbscttDv())) { + rvwGoodsInfo = service.selectBORvwGoods(bbsctt); + content.put("rvwGoodsInfo", rvwGoodsInfo); + mlgInfo = service.selectBORvwBnefInfo(bbsctt); + content.put("mlgInfo", mlgInfo); + + List rvwItmList = new ArrayList<>(); + List starItmList = new ArrayList<>(); + //사용자 별표 평점 역으로 리스트 set(퍼블리싱으로 인한 역처리) + if (rvwQesitmList.get("starItmCnList") != null) { + rvwItmList = (List) rvwQesitmList.get("starItmCnList"); + for (int i = rvwItmList.size() - 1; i >= 0; i--) { + starItmList.add(rvwItmList.get(i)); + } + content.put("starItmList", starItmList); + } + } + } + + //사용자 > 상품q&a 상품 조회 + DataMap qnaGoodsInfo = new DataMap(); + if ("sopmal".equals(bbsctt.getServerDv())) { + if ("modal".equals(bbsctt.getReqUrl())) { + qnaGoodsInfo = service.selectTargetGoodsInfo(bbsctt); + } + } + content.put("qnaGoodsInfo", qnaGoodsInfo); + content.put("regusrInfo", regusrInfo); + content.put("bbscttVO", bbsctt); + content.put("itmList", itmList); + content.put("bbsInfo", bbsInfo); + content.put("qesitmList", qesitmList); + content.put("rvwQesitmList", rvwQesitmList); + return content; + } } diff --git a/src/main/java/com/wb/domainserver/domain/sopmal/mpage/bnef/controller/MyBnefController.java b/src/main/java/com/wb/domainserver/domain/sopmal/mpage/bnef/controller/MyBnefController.java index b6d4ccc8..ee1c23bd 100644 --- a/src/main/java/com/wb/domainserver/domain/sopmal/mpage/bnef/controller/MyBnefController.java +++ b/src/main/java/com/wb/domainserver/domain/sopmal/mpage/bnef/controller/MyBnefController.java @@ -1,22 +1,42 @@ package com.wb.domainserver.domain.sopmal.mpage.bnef.controller; import com.wb.domainserver.common.msg.GconeMessageSource; -import com.wb.domainserver.domain.sopmal.mpage.bnef.vo.MyBnefCashVO; +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.admin.store.sopmal.service.BOMaSopmalService; +import com.wb.domainserver.domain.admin.sys.comncd.service.BOMaComncdService; +import com.wb.domainserver.domain.admin.sys.comncd.vo.BOMaComncdVO; +import com.wb.domainserver.domain.gcone.common.service.BOCommonService; +import com.wb.domainserver.domain.gcone.mbr.mbr.service.BOMbrService; +import com.wb.domainserver.domain.gcone.mbr.mbr.vo.BOMbrVO; +import com.wb.domainserver.domain.gcone.mbr.mlg.service.BOMlgService; +import com.wb.domainserver.domain.gcone.mbr.mlg.vo.BOCashVO; +import com.wb.domainserver.domain.gcone.mbr.mlg.vo.BOMlgSrchVO; +import com.wb.domainserver.domain.gcone.promtn.coupon.service.BOCouponService; +import com.wb.domainserver.domain.gcone.promtn.coupon.vo.BODwldCouponVO; +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.gcone.setup.site.service.BOSiteService; +import com.wb.domainserver.domain.gcone.setup.site.vo.BOSiteVO; import com.wb.domainserver.domain.sopmal.mpage.bnef.vo.MyBnefCouponVO; -import com.wb.domainserver.domain.sopmal.mpage.bnef.vo.MyBnefMbrGradVO; import com.wb.domainserver.domain.sopmal.mpage.bnef.vo.MyBnefMlgVO; 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.util.Util; import jakarta.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -24,6 +44,11 @@ import org.springframework.validation.BindingResult; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestMapping; +import java.math.BigDecimal; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + @Controller @RequestMapping("/sopmal/mpage/bnef") @Slf4j @@ -38,6 +63,29 @@ public class MyBnefController { @Autowired private GconeMessageSource gconeMessageSource; + @Autowired + private BOGradbnefService boGradbnefService; + @Autowired + private BOMaMbrgradService maMbrgradService; + @Autowired + private PaginationProperties paginationProperties; + @Autowired + private BOMbrService boMbrService; + @Autowired + private BOSiteService boSiteService; + @Autowired + private BOMlgService boMlgService; + @Autowired + private BOMaSopmalService sopmalService; + @Autowired + private BOMaComncdService bOMaComncdService; // 공통 코드 service + @Autowired + private BOCommonService boCommonService; + @Autowired + private BOCouponService service; + @Autowired + private BOCommonService commonService; + /** @@ -49,21 +97,62 @@ public class MyBnefController { */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value = "/selectMbrGradInqire") - public String selectCscMainForm(HttpServletRequest request, ModelMap model, MyBnefMbrGradVO gradVO) { + public String selectCscMainForm(HttpServletRequest request, ModelMap model, BOMbrVO gradVO, BOGradbnefVO paramVO) { gradVO.setServerDv("sopmal"); + paramVO.setServerDv("sopmal"); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/gradbnef/selectBOMbrGradListInqire", gradVO), - 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 = boGradbnefService.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", gradVO), +// model, +// "resultMap" +// ); // 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 ) - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", gradVO), - model, - "mpageResultMap" - ); + Map content2 = selectBOMpageInfoInqire(gradVO); + model.addAttribute("mpageResultMap", content2); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", gradVO), +// model, +// "mpageResultMap" +// ); return Util.getDeviceType(request) + "/mpage/bnef/MbrGradR"; } @@ -77,22 +166,79 @@ public class MyBnefController { */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value = "/selectMlgDtlsInqireForm") - public String selectMlgDtlsInqireForm(MyBnefMlgVO mlgVO, ModelMap model, HttpServletRequest request) { + public String selectMlgDtlsInqireForm(MyBnefMlgVO mlgVO, BOMlgSrchVO boMlgSrchVO, BOMbrVO gradVO, ModelMap model, HttpServletRequest request) { mlgVO.setServerDv("sopmal"); + //사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/selectBOMlgManagePopupForm", mlgVO), - model, - "resultMap" - ); + if ("sopmal".equals(boMlgSrchVO.getServerDv())) { + boMlgSrchVO.setMbrDvCd(user.getMbrDvCd()); + boMlgSrchVO.setMbrInnb(user.getUserInnb()); + } + + if("01".equals(user.getSysDvCd())){ + boMlgSrchVO.setSopmalCd(user.getSopmalCd()); + } + + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + //마일리지 적립 구분 코드 + bOMaComncdVO.setGroupCd("MLG_ACCML_DV"); + List mlgAccmlDv = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + //마일리지 적용 사유 구분 코드 + bOMaComncdVO.setGroupCd("MLG_APPLC_DV"); + List mlgApplcDv = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + //마일리지 지급/차감 구분 + bOMaComncdVO.setGroupCd("MLG_DV"); + List mlgDv = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + List sopmalList = sopmalService.selectBOSopmalCdNm(); + + // Map객체에 필요 정보 할당 + DataMap content = new DataMap(); + content.put("paramVO", boMlgSrchVO); + content.put("mlgAccmlDv", mlgAccmlDv); + content.put("mlgApplcDv", mlgApplcDv); + content.put("mlgDv", mlgDv); + content.put("sopmalList", sopmalList); + //관리자명 + content.put("mngrId", user.getMbrId()); + DataMap mngrInfoParamMap = new DataMap(); + mngrInfoParamMap.put("mngrId", user.getMbrId()); + mngrInfoParamMap.put("mngrInnb", user.getUserInnb()); + content.put("mngrNm", boMlgService.selectBOMlgMngrInfoInqire(mngrInfoParamMap)); + + //회원명 + content.put("mbrInfoMap", boMlgService.selectBOMlgMbrInfoInqire(boMlgSrchVO)); + + //마일리지 기본 유효기간 조회 + content.put("mlgValidPd", boMlgService.selectBOMlgValidPd(boMlgSrchVO)); + + //잔액 합계 + BigDecimal blceSum = boMlgService.selectBOMlgBlceSum(boMlgSrchVO); + content.put("blceSum", blceSum); + //30일이내 소멸예정 합계 + BigDecimal endInMnthBlceSum = boMlgService.selectBOEndInMnthMlgBlceSum(boMlgSrchVO); + content.put("endInMnthBlceSum", endInMnthBlceSum); + + // 적립 예정 마일리지 + String accmlPrearngeSum = boMlgService.selectBOAccmlPrearngeSum(boMlgSrchVO); + content.put("accmlPrearngeSum", accmlPrearngeSum); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/selectBOMlgManagePopupForm", mlgVO), +// model, +// "resultMap" +// ); model.addAttribute("paramVO", mlgVO); // 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 ) - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", mlgVO), - model, - "mpageResultMap" - ); + Map content2 = selectBOMpageInfoInqire(gradVO); + model.addAttribute("mpageResultMap", content2); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", mlgVO), +// model, +// "mpageResultMap" +// ); return Util.getDeviceType(request) + "/mpage/bnef/MlgDtlsRForm"; } @@ -106,14 +252,17 @@ public class MyBnefController { */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value = "/selectMlgDtlsInqire") - public String selectMlgDtlsInqire(MyBnefMlgVO mlgVO, ModelMap model, HttpServletRequest request) { + public String selectMlgDtlsInqire(MyBnefMlgVO mlgVO, BOMlgSrchVO boMlgSrchVO, ModelMap model, HttpServletRequest request) { mlgVO.setServerDv("sopmal"); + boMlgSrchVO.setServerDv("sopmal"); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/selectBOMlgListInqire", mlgVO), - model, - "resultMap" - ); + Map content = selectBOMlgListInqire(boMlgSrchVO); + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/selectBOMlgListInqire", mlgVO), +// model, +// "resultMap" +// ); model.addAttribute("paramVO", mlgVO); return Util.getDeviceType(request) + "/mpage/bnef/MlgDtlsR"; @@ -123,18 +272,23 @@ public class MyBnefController { /** * 마이페이지 > 마일리지 목록 조회 > 스크롤 * @param mlgVO - * @param model * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value = "/selectMlgDtlsScrolInqire") - public ResponseEntity selectMlgDtlsScrolInqire(MyBnefMlgVO mlgVO) { + @RequestMapping(value = "/selectMlgDtlsScrolInqire", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity selectMlgDtlsScrolInqire(BOMlgSrchVO mlgVO) { mlgVO.setServerDv("sopmal"); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/selectBOMlgListInqire", mlgVO), - ReplyFromResrc::getReply + Map content = selectBOMlgListInqire(mlgVO); + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/selectBOMlgListInqire", mlgVO), +// ReplyFromResrc::getReply +// ); } @@ -145,20 +299,41 @@ public class MyBnefController { */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value = "/selectCouponDtlsForm") - public String selectCouponDtlsForm(MyBnefCouponVO couponVO, ModelMap model, HttpServletRequest request) { - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOHoldCouponDtlsForm", couponVO), - model, - "resultMap" - ); + public String selectCouponDtlsForm(MyBnefCouponVO couponVO, BODwldCouponVO dwldCouponVO, BOMbrVO gradVO, ModelMap model, HttpServletRequest request) { + 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()); // 수정자 + + + log.debug("couponPkSndngVO : {}", dwldCouponVO); + + // Map객체에 필요 정보 할당 + Map content = new HashMap<>(); + + content = service.selectBOMyCouponListCnt(dwldCouponVO); + content.put("paramVO", dwldCouponVO); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOHoldCouponDtlsForm", couponVO), +// model, +// "resultMap" +// ); model.addAttribute("paramVO", couponVO); // 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 ) - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", couponVO), - model, - "mpageResultMap" - ); + Map content2 = selectBOMpageInfoInqire(gradVO); + model.addAttribute("mpageResultMap", content2); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", couponVO), +// model, +// "mpageResultMap" +// ); return Util.getDeviceType(request) + "/mpage/bnef/CouponDtlsRForm"; } @@ -171,14 +346,17 @@ public class MyBnefController { */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value = "/selectCouponUsePosblDtlsInqire") - public String selectCouponUsePosblDtlsInqire(MyBnefCouponVO couponVO, ModelMap model, HttpServletRequest request) { + public String selectCouponUsePosblDtlsInqire(MyBnefCouponVO couponVO, BODwldCouponVO dwldCouponVO, ModelMap model, HttpServletRequest request) { couponVO.setServerDv("sopmal"); + dwldCouponVO.setServerDv("sopmal"); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponUsePosblDtlsInqire", couponVO), - model, - "resultMap" - ); + Map content = selectBOCouponUsePosblDtlsInqire(dwldCouponVO); + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponUsePosblDtlsInqire", couponVO), +// model, +// "resultMap" +// ); model.addAttribute("paramVO", couponVO); return Util.getDeviceType(request) + "/mpage/bnef/UsePosblCouponDtlsR"; @@ -187,19 +365,24 @@ public class MyBnefController { /** * 마이페이지 > 쿠폰 > 사용가능 쿠폰 조회 > 스크롤 - * @param couponVO - * @param model + * @param dwldCouponVO * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value = "/selectCouponUsePosblDtlsScrolInqire") - public ResponseEntity selectCouponUsePosblDtlsScrolInqire(MyBnefCouponVO couponVO) { - couponVO.setServerDv("sopmal"); + @RequestMapping(value = "/selectCouponUsePosblDtlsScrolInqire", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity selectCouponUsePosblDtlsScrolInqire(BODwldCouponVO dwldCouponVO) { + dwldCouponVO.setServerDv("sopmal"); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponUsePosblDtlsInqire", couponVO), - ReplyFromResrc::getReply + Map content = selectBOCouponUsePosblDtlsInqire(dwldCouponVO); + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponUsePosblDtlsInqire", couponVO), +// ReplyFromResrc::getReply +// ); } @@ -210,14 +393,16 @@ public class MyBnefController { */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value = "/selectDwldCouponDtlsInqire") - public String selectDwldCouponDtlsInqire(MyBnefCouponVO couponVO, ModelMap model, HttpServletRequest request) { + public String selectDwldCouponDtlsInqire(BODwldCouponVO couponVO, ModelMap model, HttpServletRequest request) { couponVO.setServerDv("sopmal"); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBODwldCouponDtlsInqire", couponVO), - model, - "resultMapDwld" - ); + Map content = selectBODwldCouponDtlsInqire(couponVO); + model.addAttribute("resultMapDwld", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBODwldCouponDtlsInqire", couponVO), +// model, +// "resultMapDwld" +// ); model.addAttribute("paramVO", couponVO); // return "sopmal/mpage/bnef/DwldCouponDtlsR"; @@ -228,36 +413,53 @@ public class MyBnefController { /** * 마이페이지 > 쿠폰 > 다운로드 가능 쿠폰 조회 > 스크롤 * @param couponVO - * @param model * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value = "/selectDwldCouponDtlsScrolInqire") - public ResponseEntity selectDwldCouponDtlsScrolInqire(MyBnefCouponVO couponVO) { + @RequestMapping(value = "/selectDwldCouponDtlsScrolInqire", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity selectDwldCouponDtlsScrolInqire(BODwldCouponVO couponVO) { couponVO.setServerDv("sopmal"); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBODwldCouponDtlsInqire", couponVO), - ReplyFromResrc::getReply + Map content = selectBODwldCouponDtlsInqire(couponVO); + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBODwldCouponDtlsInqire", couponVO), +// ReplyFromResrc::getReply +// ); } /** * 쿠폰 정보 조회 팝업 * - * @param CouponVO couponVO + * @param dwldCouponVO * @param model * @return */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectCouponDtlInfoInqirePopup") - public String selectCouponDtlInfoInqirePopup(MyBnefCouponVO couponVO, ModelMap model, HttpServletRequest request) { - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponInfoInqirePopup", couponVO), - model, - "resultMap" - ); + public String selectCouponDtlInfoInqirePopup(BODwldCouponVO dwldCouponVO, ModelMap model, HttpServletRequest request) { + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + + 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", couponVO), +// model, +// "resultMap" +// ); // return "sopmal/mpage/bnef/UsePosblCouponDtlPopupR"; return Util.getDeviceType(request) + "/mpage/bnef/UsePosblCouponDtlPopupR"; @@ -267,18 +469,28 @@ public class MyBnefController { /** * 쿠폰 정보 조회 팝업 *z - * @param CouponVO couponVO + * @param couponVO * @param model * @return */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectDwldYCouponDtlInfoInqirePopup") - public String selectDwldYCouponDtlInfoInqirePopup(MyBnefCouponVO couponVO, ModelMap model, HttpServletRequest request) { - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBODwldYCouponInfoInqirePopup", couponVO), - model, - "resultMap" - ); + public String selectDwldYCouponDtlInfoInqirePopup(BODwldCouponVO couponVO, ModelMap model, HttpServletRequest request) { + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + + Map content = new HashMap<>(); + log.debug("vo is {}", couponVO); + + DataMap result = service.selectBODwldYCouponInfoInqirePopup(couponVO); + log.debug("vo is {}", result); + content.put("dwldCouponVO", result); // 발송정보 + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBODwldYCouponInfoInqirePopup", couponVO), +// model, +// "resultMap" +// ); // return "sopmal/mpage/bnef/UsePosblCouponDtlPopupR"; return Util.getDeviceType(request) + "/mpage/bnef/UsePosblCouponDtlPopupR"; @@ -291,12 +503,34 @@ public class MyBnefController { * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value = "/insertCouponRegist") - public ResponseEntity insertCouponRegist(@Validated MyBnefCouponVO couponVO, BindingResult bindingResult) { - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/insertBOCodeCouponRegist", couponVO), - ReplyFromResrc::getReply + @RequestMapping(value = "/insertCouponRegist", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity insertCouponRegist(@Validated BODwldCouponVO dwldCouponVO, BindingResult bindingResult) { + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + dwldCouponVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드 + } + dwldCouponVO.setRegusr(user.getUserInnb()); // 등록자 + dwldCouponVO.setUpdusr(user.getUserInnb()); // 수정자 + dwldCouponVO.setMbrInnb(Integer.valueOf(user.getUserInnb())); // 회원 고유번호 + dwldCouponVO.setMbrDvCd(user.getMbrDvCd()); // 회원 구분 코드 + dwldCouponVO.setMbrNm(user.getMbrNm()); // 회원 명 + String secretKey = commonService.selectSecretkey(); + dwldCouponVO.setSecretKey(secretKey); + + // service 호출 + Map message = new HashMap<>(); + message = service.insertBOCodeCouponRegist(dwldCouponVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/insertBOCodeCouponRegist", couponVO), +// ReplyFromResrc::getReply +// ); } @@ -306,12 +540,18 @@ public class MyBnefController { * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value = "/insertDwldCouponAllRegist") - public ResponseEntity insertDwldCouponAllRegist(@Validated MyBnefCouponVO couponVO, BindingResult bindingResult) { - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/insertBODwldCouponAllRegist", couponVO), - ReplyFromResrc::getReply + @RequestMapping(value = "/insertDwldCouponAllRegist", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity insertDwldCouponAllRegist(@Validated BODwldCouponVO couponVO, BindingResult bindingResult) { + Map content = insertBODwldCouponAllRegist(couponVO); + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/insertBODwldCouponAllRegist", couponVO), +// ReplyFromResrc::getReply +// ); } @@ -321,12 +561,18 @@ public class MyBnefController { * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value = "/insertDwldCouponRegist") - public ResponseEntity insertDwldCouponRegist(@Validated MyBnefCouponVO couponVO, BindingResult bindingResult) { - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/insertBODwldCouponAllRegist", couponVO), - ReplyFromResrc::getReply + @RequestMapping(value = "/insertDwldCouponRegist", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity insertDwldCouponRegist(@Validated BODwldCouponVO couponVO, BindingResult bindingResult) { + Map content = insertBODwldCouponAllRegist(couponVO); + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/insertBODwldCouponAllRegist", couponVO), +// ReplyFromResrc::getReply +// ); } /** @@ -335,12 +581,24 @@ public class MyBnefController { * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value = "/selectCouponDownYn") - public ResponseEntity selectCouponDownYn(@Validated MyBnefCouponVO couponVO) { - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectCouponDownYn", couponVO), - ReplyFromResrc::getReply + @RequestMapping(value = "/selectCouponDownYn", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity selectCouponDownYn(@Validated BODwldCouponVO vo) { + DataMap content = new DataMap(); + + String couponInnb = ""; + log.debug("쿠폰 다운로드 여부 파라메타 : {}", vo); + couponInnb = service.selectCouponDownYn(vo); + content.put("couponInnb", couponInnb); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectCouponDownYn", couponVO), +// ReplyFromResrc::getReply +// ); } @@ -356,21 +614,45 @@ public class MyBnefController { */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value = "/selectCashDtlsInqireForm") - public String selectCashDtlsInqireForm(MyBnefMlgVO mlgVO, ModelMap model, HttpServletRequest request) { - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/selectBOCashBlce", mlgVO), - model, - "resultMap" - ); + public String selectCashDtlsInqireForm(MyBnefMlgVO mlgVO, BOCashVO cashVo, BOMbrVO gradVO, ModelMap model, HttpServletRequest request) { + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + + if("01".equals(user.getSysDvCd())){ + cashVo.setSopmalCd(user.getSopmalCd()); + cashVo.setMbrDvCd(user.getMbrDvCd()); + cashVo.setMbrInnb(String.valueOf(user.getUserInnb())); + } + + // service 호출 + DataMap content = new DataMap(); + + //충전형 마일리지 잔액 조회 + BigDecimal blce = boMlgService.selectBOCashBlce(cashVo); + content.put("blce", blce); + + //마일리지 적립 구분 코드 + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + bOMaComncdVO.setGroupCd("MLG_ACCML_DV"); + List mlgAccmlDv = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + content.put("mlgAccmlDv", mlgAccmlDv); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/selectBOCashBlce", mlgVO), +// model, +// "resultMap" +// ); model.addAttribute("paramVO", mlgVO); // 마이페이지 > 상단 회원 정보 ( 등금, 이름, 충전형 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 ) - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", mlgVO), - model, - "mpageResultMap" - ); + Map content2 = selectBOMpageInfoInqire(gradVO); + model.addAttribute("mpageResultMap", content2); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", mlgVO), +// model, +// "mpageResultMap" +// ); return Util.getDeviceType(request) + "/mpage/bnef/CashDtlsRForm"; } @@ -384,12 +666,14 @@ public class MyBnefController { */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value = "/selectCashDtlsInqire") - public String selectCashDtlsInqire(MyBnefMlgVO mlgVO, ModelMap model, HttpServletRequest request) { - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/selectBOCashList", mlgVO), - model, - "resultMap" - ); + public String selectCashDtlsInqire(MyBnefMlgVO mlgVO, BOCashVO cashVo, ModelMap model, HttpServletRequest request) { + DataMap content = selectBOCashList(cashVo); + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/selectBOCashList", mlgVO), +// model, +// "resultMap" +// ); model.addAttribute("paramVO", mlgVO); return Util.getDeviceType(request) + "/mpage/bnef/CashDtlsR"; @@ -398,49 +682,348 @@ public class MyBnefController { /** * 마이페이지 > 충전형 마일리지 목록 조회 > 스크롤 - * @param mlgVO + * @param cashVo * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value = "/selectCashDtlsScrolInqire") - public ResponseEntity selectCashDtlsScrolInqire(MyBnefMlgVO mlgVO) { - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/selectBOCashList", mlgVO), - ReplyFromResrc::getReply + @RequestMapping(value = "/selectCashDtlsScrolInqire", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity selectCashDtlsScrolInqire(BOCashVO cashVo) { + DataMap content = selectBOCashList(cashVo); + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/selectBOCashList", mlgVO), +// ReplyFromResrc::getReply +// ); } /** * 마이페이지 > 충전형 마일리지 > 상품권번호조회 - * @param mlgVO + * @param cashVo * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value = "/selectGiftCardCrtfcNb") - public ResponseEntity selectGiftCardCrtfcNb(MyBnefCashVO vo) { - if (vo.getCrtfcNb() == null || vo.getCrtfcNb().isEmpty()) { + @RequestMapping(value = "/selectGiftCardCrtfcNb", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity selectGiftCardCrtfcNb(BOCashVO cashVo) { + if (cashVo.getCrtfcNb() == null || cashVo.getCrtfcNb().isEmpty()) { throw new WnbtRestException("상품권 인증번호를 입력해주세요"); } - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/selectBOGiftCardCrtfcNb", vo), - ReplyFromResrc::getReply + + // service 호출 + DataMap message = new DataMap(); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + + if ("01".equals(user.getSysDvCd())) { + cashVo.setSopmalCd(user.getSopmalCd()); + } + + log.debug("상품권 등록 컨트롤러 cashVO is {} ", cashVo); + message = boMlgService.selectBOGiftCardCrtfcNb(cashVo); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/selectBOGiftCardCrtfcNb", vo), +// ReplyFromResrc::getReply +// ); } /** * 마이페이지 > 충전형 마일리지 > 상품권 등록 - * @param mlgVO + * @param cashVo * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value = "/insertGiftCard") - public ResponseEntity insertGiftCard(MyBnefCashVO vo) { - if (vo.getPinNb() == null || vo.getPinNb().isEmpty()) { + @RequestMapping(value = "/insertGiftCard", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity insertGiftCard(BOCashVO cashVo) { + if (cashVo.getPinNb() == null || cashVo.getPinNb().isEmpty()) { throw new WnbtRestException("상품권 pin 번호를 입력해주세요"); } - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/insertBOCashReg", vo), - ReplyFromResrc::getReply + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + + if("01".equals(user.getSysDvCd())){ + cashVo.setSopmalCd(user.getSopmalCd()); + cashVo.setMbrDvCd(user.getMbrDvCd()); + cashVo.setMbrInnb(String.valueOf(user.getUserInnb())); + cashVo.setUpdusr(user.getUserInnb()); + } + + // service 호출 + DataMap message = new DataMap(); + + log.debug("상품권 등록 컨트롤러 cashVO is {} ", cashVo); + message = boMlgService.insertBOCashReg(cashVo); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/insertBOCashReg", vo), +// ReplyFromResrc::getReply +// ); + } + + /** + * bo로직 사이트 메인페이지 등급, 마일리지, 쿠폰, 위시리스트, 배송중 정보 조회 + * + */ + public Map selectBOMpageInfoInqire(BOMbrVO vo) { + // 사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + vo.setSopmalCd(user.getSopmalCd()); + vo.setMbrInnb(String.valueOf(user.getUserInnb())); + vo.setMbrDvCd(user.getMbrDvCd()); + + // 상품 옵션 조회 + Map message = new HashMap<>(); + message = boMbrService.selectBOMpageInfoInqire(vo); + + BOSiteVO siteVO = new BOSiteVO(); + siteVO.setSopmalCd(vo.getSopmalCd()); + siteVO.setCookieValArr(vo.getCookieValArr()); + + List recentGoods = null; + + if (vo.getCookieValArr() != null) { + recentGoods = boSiteService.selectBOMainRecentGoods(siteVO); + message.put("recentGoods", recentGoods); + } + + return message; + } + + /** + * bo로직 마일리지 목록 조회 + */ + public Map selectBOMlgListInqire(BOMlgSrchVO boMlgSrchVO) { + //사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + + if ("sopmal".equals(boMlgSrchVO.getServerDv())) { + boMlgSrchVO.setMbrDvCd(user.getMbrDvCd()); + boMlgSrchVO.setMbrInnb(user.getUserInnb()); + } + + if("01".equals(user.getSysDvCd())){ + boMlgSrchVO.setSopmalCd(user.getSopmalCd()); + } + + //페이징 처리를 위한 pagination 객체 생성 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(boMlgSrchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(boMlgSrchVO.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + + //페이징 처리를 위한 값 설정 + boMlgSrchVO.setPaginationInfo(paginationInfo); + boMlgSrchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + boMlgSrchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + boMlgSrchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + // 목록 조회 + List resultList = null; + resultList = boMlgService.selectBOMlgListInqire(boMlgSrchVO); + + //마일리지 목록 조회 결과 및 페이징정보 넣기 + Map content = new HashMap<>(); + content.put("paginationInfo", boMlgSrchVO.getPaginationInfo()); + content.put("resultList",resultList); + + //회원정보 + DataMap mbr = new DataMap(); + mbr.put("secretKey", boCommonService.selectSecretkey()); + mbr.put("mbrInnb", boMlgSrchVO.getMbrInnb()); + mbr.put("mbrDvCd", boMlgSrchVO.getMbrDvCd()); + DataMap mbrInfo = new DataMap(); + mbrInfo = boMbrService.selectSimpleMbrInfo(mbr); + content.put("mbrInfo", mbrInfo); + content.put("mlgSrchVo", boMlgSrchVO); + + //잔액 합계 + BigDecimal blceSum = boMlgService.selectBOMlgBlceSum(boMlgSrchVO); + content.put("blceSum", blceSum); + + //30일이내 소멸예정 합계 + BigDecimal endInMnthBlceSum = boMlgService.selectBOEndInMnthMlgBlceSum(boMlgSrchVO); + content.put("endInMnthBlceSum", endInMnthBlceSum); + + // 공통코드 호출 + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + //마일리지 적용 사유 구분 코드 + bOMaComncdVO.setGroupCd("MLG_ACCML_DV"); + List mlgAccmlDv = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + content.put("mlgAccmlDv", mlgAccmlDv); + + return content; + } + + /** + * bo로직 회원 사용가능 쿠폰 목록 조회 ( 마이페이지, CRM ) + */ + public Map selectBOCouponUsePosblDtlsInqire(BODwldCouponVO dwldCouponVO) { + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + dwldCouponVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드 + dwldCouponVO.setMbrDvCd(user.getMbrDvCd()); // 회원 구분 코드 + dwldCouponVO.setMbrInnb(Integer.valueOf(user.getUserInnb())); // 회원 고유번호 + } else { + dwldCouponVO.setServerDv("admin"); + } + dwldCouponVO.setRegusr(user.getUserInnb()); // 등록자 + dwldCouponVO.setUpdusr(user.getUserInnb()); // 수정자 + + 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 resultList = null; + resultList = service.selectBOCouponUsePosblDtlsInqire(dwldCouponVO); + + // Map객체에 필요 정보 할당 + Map content = new HashMap<>(); + content.put("paramVO", dwldCouponVO); + content.put("resultList", resultList); + content.put("paginationInfo", dwldCouponVO.getPaginationInfo()); + + return content; + } + + /** + * bo로직 회원 다운로드 가능 쿠폰 목록 조회 ( 마이페이지, CRM ) + */ + public Map selectBODwldCouponDtlsInqire(BODwldCouponVO dwldCouponVO) { + // 작성자 정보 할당 + 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()); // 수정자 + + + 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 resultList = null; + resultList = service.selectBODwldCouponDtlsInqire(dwldCouponVO); + log.debug(" 쿠폰 목록 확인 : {}", resultList); + // Map객체에 필요 정보 할당 + Map content = new HashMap<>(); + content.put("paramVO", dwldCouponVO); + content.put("resultList", resultList); + content.put("paginationInfo", dwldCouponVO.getPaginationInfo()); + log.debug("컨텐츠 맵 확인 : {}", content); + return content; + } + + /** + * bo로직 모든 쿠폰 다운로드 + */ + public Map insertBODwldCouponAllRegist(BODwldCouponVO dwldCouponVO) { + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + dwldCouponVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드 + dwldCouponVO.setMbrInnb(user.getUserInnb()); // 회원 고유번호 + dwldCouponVO.setMbrDvCd(user.getMbrDvCd()); // 회원 구분 코드 + dwldCouponVO.setMbrNm(user.getMbrNm()); // 회원 명 + dwldCouponVO.setMbtlnb(user.getMbtlnb()); //전화번호 + } else { + dwldCouponVO.setMbrInnb(dwldCouponVO.getMbrInnb()); // 회원 고유번호 + dwldCouponVO.setMbrDvCd(dwldCouponVO.getMbrDvCd()); // 회원 구분 코드 + dwldCouponVO.setMbrNm(dwldCouponVO.getMbrNm()); // 회원 명 + dwldCouponVO.setMbtlnb(dwldCouponVO.getMbtlnb()); //전화번호 + } + dwldCouponVO.setRegusr(user.getUserInnb()); // 등록자 + dwldCouponVO.setUpdusr(user.getUserInnb()); // 수정자 + dwldCouponVO.setSecretKey(commonService.selectSecretkey()); + + log.debug("쿠폰 다운로드 쿠폰 값 확인 : {}", dwldCouponVO); + + // service 호출 + Map message = new HashMap<>(); + message = service.insertBODwldCouponAllRegist(dwldCouponVO); + + return message; + } + + /** + * bo로직 충전형 마일리지 내역 조회 + */ + public DataMap selectBOCashList(BOCashVO cashVo) { + + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + + if ("01".equals(user.getSysDvCd())) { + cashVo.setSopmalCd(user.getSopmalCd()); + cashVo.setMbrDvCd(user.getMbrDvCd()); + cashVo.setMbrInnb(String.valueOf(user.getUserInnb())); + } + //페이징 처리를 위한 pagination 객체 생성 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(cashVo.getPageIndex()); + paginationInfo.setRecordCountPerPage(cashVo.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + cashVo.setPaginationInfo(paginationInfo); + + //페이징 처리를 위한 값 설정 + cashVo.setFirstIndex(paginationInfo.getFirstRecordIndex()); + cashVo.setLastIndex(paginationInfo.getLastRecordIndex()); + cashVo.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + // service 호출 + //회원정보 + DataMap mbr = new DataMap(); + mbr.put("secretKey", boCommonService.selectSecretkey()); + mbr.put("mbrInnb", cashVo.getMbrInnb()); + mbr.put("mbrDvCd", cashVo.getMbrDvCd()); + DataMap mbrInfo = new DataMap(); + mbrInfo = boMbrService.selectSimpleMbrInfo(mbr); + + // 충전형 마일리지 목록 조회 + List cashList = boMlgService.selectBOCashList(cashVo); + + //충전형 마일리지 잔액 조회 + BigDecimal blce = boMlgService.selectBOCashBlce(cashVo); + + DataMap content = new DataMap(); + content.put("cashList", cashList); + content.put("paginationInfo", paginationInfo); + content.put("mbrInfo", mbrInfo); + content.put("blce", blce); + + return content; } } diff --git a/src/main/java/com/wb/domainserver/domain/sopmal/mpage/mbr/controller/MyMbrController.java b/src/main/java/com/wb/domainserver/domain/sopmal/mpage/mbr/controller/MyMbrController.java index 5c8ca7e8..9fa2eb38 100644 --- a/src/main/java/com/wb/domainserver/domain/sopmal/mpage/mbr/controller/MyMbrController.java +++ b/src/main/java/com/wb/domainserver/domain/sopmal/mpage/mbr/controller/MyMbrController.java @@ -1,5 +1,60 @@ package com.wb.domainserver.domain.sopmal.mpage.mbr.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.store.sopmal.service.BOMaSopmalService; +import com.wb.domainserver.domain.admin.store.sopmal.vo.BOMaSopmalVO; +import com.wb.domainserver.domain.admin.sys.comncd.vo.BOMaComncdVO; +import com.wb.domainserver.domain.gcone.bbs.bbs.service.BOBbsService; +import com.wb.domainserver.domain.gcone.bbs.bbs.vo.BOBbsVO; +import com.wb.domainserver.domain.gcone.bbs.gnrlbbsctt.service.BOGnrlbbscttService; +import com.wb.domainserver.domain.gcone.bbs.gnrlbbsctt.vo.BOGnrlbbscttVO; +import com.wb.domainserver.domain.gcone.common.service.BOCommonService; +import com.wb.domainserver.domain.gcone.common.vo.BOCommonVO; +import com.wb.domainserver.domain.gcone.mbr.mbr.service.BOMbrService; +import com.wb.domainserver.domain.gcone.mbr.mbr.vo.BOMbrVO; +import com.wb.domainserver.domain.gcone.mbr.mbr.vo.BOWishVO; +import com.wb.domainserver.domain.gcone.mbr.mbr.vo.BOWithdrawalVO; +import com.wb.domainserver.domain.gcone.ntcn.mssage.service.BOMssageService; +import com.wb.domainserver.domain.gcone.ordr.ordr.service.BOOrdrService; +import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOCrmDlvylcVO; +import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrDlvyVO; +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.gcone.setup.site.service.BOSiteService; +import com.wb.domainserver.domain.gcone.setup.site.vo.BOSiteVO; +import com.wb.domainserver.domain.sopmal.mpage.mbr.vo.*; +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.SendToResrc; +import com.wb.domainserver.util.communicate.ValidateResultConverter; +import com.wb.domainserver.util.dataaccess.DataMap; +import com.wb.domainserver.util.string.StringUtil; +import com.wb.domainserver.util.util.Util; +import jakarta.servlet.http.HttpServletRequest; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +import java.math.BigInteger; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -7,41 +62,6 @@ import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; -import com.wb.domainserver.domain.sopmal.csc.vo.GnrlBbscttVO; -import com.wb.domainserver.domain.sopmal.mbr.vo.MbrVO; -import com.wb.domainserver.domain.sopmal.mpage.mbr.vo.*; -import com.wb.domainserver.domain.sopmal.mpage.ordr.vo.MyOrdrDlvyVO; -import com.wb.domainserver.util.string.StringUtil; -import com.wb.domainserver.util.util.Util; -import jakarta.servlet.http.HttpServletRequest; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Controller; -import org.springframework.ui.ModelMap; -import org.springframework.validation.BindingResult; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; - -import com.fasterxml.jackson.databind.ObjectMapper; -import com.wb.domainserver.common.msg.GconeMessageSource; -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.authorization.annotation.AuthPolicy; -import com.wb.domainserver.security.authorization.annotation.Policy; -import com.wb.domainserver.util.communicate.BoResultMapConverter; -import com.wb.domainserver.util.communicate.RESRC; -import com.wb.domainserver.util.communicate.ReplyFromResrc; -import com.wb.domainserver.util.communicate.SendToResrc; -import com.wb.domainserver.util.communicate.ValidateResultConverter; - -import lombok.extern.slf4j.Slf4j; - /** * * 마이페이지 회원 @@ -76,6 +96,28 @@ public class MyMbrController { @Autowired private GconeMessageSource gconeMessageSource; + @Autowired + private BOMbrService service; + @Autowired + private BOGradbnefService mbrGradService; + @Autowired + private BOMaSopmalService maSopmalService; + @Autowired + private BOCommonService boCommonService; + @Autowired + private PaginationProperties paginationProperties; + @Autowired + private BOCommonService commonService; + @Autowired + private BOMssageService boMssageService; + @Autowired + private BOSiteService boSiteService; + @Autowired + private BOOrdrService boOrdrService; + @Autowired + private BOGnrlbbscttService boGnrlbbscttService; + @Autowired + private BOBbsService bbsService; /** @@ -85,50 +127,194 @@ public class MyMbrController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectMpageMainInqire") - public String selectMpageMainInqire(HttpServletRequest request, ModelMap model, MyOrdrDlvyVO ordrDlvyVO) throws Exception { + public String selectMpageMainInqire(HttpServletRequest request, ModelMap model, BOOrdrDlvyVO ordrDlvyVO, BOWishVO wishVO, BOMbrVO vo) throws Exception { model.addAttribute("paramVO", new ObjectMapper().writeValueAsString(ordrDlvyVO)); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOMpageOrdrSttusInqire", ordrDlvyVO), - model, - "ordrSttusMap" - ); + //사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if ("01".equals(user.getSysDvCd())) { + ordrDlvyVO.setSopmalCd(user.getSopmalCd()); + ordrDlvyVO.setMbrInnb(BigInteger.valueOf(user.getUserInnb())); + ordrDlvyVO.setMbrDvCd(user.getMbrDvCd()); + } - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOWslistInqire", ordrDlvyVO), - model, - "wishListMap" - ); + Map content = new HashMap<>(); + List resultList = boOrdrService.selectBOMpageOrdrSttusInqire(ordrDlvyVO); + content.put("resultList", resultList); + + model.addAttribute("ordrSttusMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOMpageOrdrSttusInqire", ordrDlvyVO), +// model, +// "ordrSttusMap" +// ); + + // 사용자 정보 추출 및 적용 + wishVO.setSopmalCd(user.getSopmalCd()); + wishVO.setMbrInnb(user.getUserInnb()); + wishVO.setMbrDvCd(user.getMbrDvCd()); + + // 페이징 객체 생성 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(wishVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(wishVO.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + + // 페이징정보 할당 + wishVO.setPaginationInfo(paginationInfo); + wishVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + wishVO.setLastIndex(paginationInfo.getLastRecordIndex()); + wishVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + // 목록 조회 + List resultList2 = null; + resultList2 = service.selectBOWslistInqire(wishVO); + + // Map객체에 필요 정보 할당 + Map content2 = new HashMap<>(); + content2.put("paramVO", wishVO); + content2.put("resultList", resultList2); + content2.put("paginationInfo", wishVO.getPaginationInfo()); + + model.addAttribute("wishListMap", content2); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOWslistInqire", ordrDlvyVO), +// model, +// "wishListMap" +// ); // 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 ) - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", ordrDlvyVO), - model, - "mpageResultMap" - ); + // 사용자 정보 추출 및 적용 + vo.setSopmalCd(user.getSopmalCd()); + vo.setMbrInnb(String.valueOf(user.getUserInnb())); + vo.setMbrDvCd(user.getMbrDvCd()); + + // 상품 옵션 조회 + Map message = new HashMap<>(); + message = service.selectBOMpageInfoInqire(vo); + + BOSiteVO siteVO = new BOSiteVO(); + siteVO.setSopmalCd(vo.getSopmalCd()); + siteVO.setCookieValArr(vo.getCookieValArr()); + + List recentGoods = null; + if (vo.getCookieValArr() != null) { + recentGoods = boSiteService.selectBOMainRecentGoods(siteVO); + + message.put("recentGoods", recentGoods); + } + + model.addAttribute("mpageResultMap", message); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", ordrDlvyVO), +// model, +// "mpageResultMap" +// ); String diviceTy = Util.getDeviceType(request); if("sopmal".equals(diviceTy)){ //pc버전만 조회 //qna 조회 - GnrlBbscttVO bbsctt = new GnrlBbscttVO(); + BOGnrlbbscttVO bbsctt = new BOGnrlbbscttVO(); bbsctt.setBbsTyCd("05"); bbsctt.setBbsId("goods_qna"); bbsctt.setServerDv("sopmal"); bbsctt.setReqUrl("mpage"); bbsctt.setPageUnit(5); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttListInqire", bbsctt), - model, - "qnaResultMap" - ); + + if ("01".equals(user.getSysDvCd())) {//사용자 조회 일 경우 + bbsctt.setSopmalCd(user.getSopmalCd()); + } + + if (!"crm".equals(bbsctt.getReqUrl())) { + if (user.getUserInnb() > 0) { + bbsctt.setRegusr(user.getUserInnb()); + if ("sopmal".equals(bbsctt.getServerDv())) { + bbsctt.setRegusrDvCd("01"); + } else { + bbsctt.setRegusrDvCd("02"); + } + } else { + bbsctt.setRegusr(0); + bbsctt.setRegusrDvCd("99"); + } + } + // pagination + PaginationInfo paginationInfo2 = new PaginationInfo(); + paginationInfo2.setCurrentPageNo(bbsctt.getPageIndex()); + paginationInfo2.setRecordCountPerPage(bbsctt.getPageUnit()); + paginationInfo2.setPageSize(paginationProperties.getPageSize()); + + bbsctt.setPaginationInfo(paginationInfo2); + bbsctt.setFirstIndex(paginationInfo2.getFirstRecordIndex()); + bbsctt.setLastIndex(paginationInfo2.getLastRecordIndex()); + bbsctt.setRecordCountPerPage(paginationInfo2.getRecordCountPerPage()); + + // 게시글 목록조회 + Map resultList3 = new HashMap(); + resultList3 = boGnrlbbscttService.selectBOBbscttListInqire(bbsctt); + + // 게시판 설정 정보 조회 + BOBbsVO bbsVO = new BOBbsVO(); + // bbsVO에 쇼핑몰코드, 해당 게시판 set + bbsVO.setSopmalCd(bbsctt.getSopmalCd()); + bbsVO.setBbsId(bbsctt.getBbsId()); + bbsVO.setBbsTyCd(bbsctt.getBbsTyCd()); + DataMap bbsInfo = new DataMap(); + bbsInfo = bbsService.selectBOBbsSetupInfo(bbsVO); + DataMap content3 = new DataMap(); + + content3.put("bbsInfo", bbsInfo); + content3.put("bbsctt", bbsctt); + content3.put("resultList", resultList3); + content3.put("paginationInfo", bbsctt.getPaginationInfo()); + + model.addAttribute("qnaResultMap", content3); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttListInqire", bbsctt), +// model, +// "qnaResultMap" +// ); //리뷰 조회 - bbsctt.setUseAt("Y"); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOMyRvwListInqire", bbsctt), - model, - "rvw" - ); + BOGnrlbbscttVO bbsctt2 = new BOGnrlbbscttVO(); + bbsctt2.setBbsTyCd("05"); + bbsctt2.setBbsId("goods_qna"); + bbsctt2.setServerDv("sopmal"); + bbsctt2.setReqUrl("mpage"); + bbsctt2.setPageUnit(5); + bbsctt2.setUseAt("Y"); + + if ("01".equals(user.getSysDvCd())) { + bbsctt.setSopmalCd(user.getSopmalCd()); + } + if (!"crm".equals(bbsctt.getReqUrl())) { + bbsctt.setRegusr(user.getUserInnb()); + } + // pagination + PaginationInfo paginationInfo3 = new PaginationInfo(); + paginationInfo3.setCurrentPageNo(bbsctt2.getPageIndex()); + paginationInfo3.setRecordCountPerPage(bbsctt2.getPageUnit()); + paginationInfo3.setPageSize(paginationProperties.getPageSize()); + + bbsctt2.setPaginationInfo(paginationInfo3); + bbsctt2.setFirstIndex(paginationInfo3.getFirstRecordIndex()); + bbsctt2.setLastIndex(paginationInfo3.getLastRecordIndex()); + bbsctt2.setRecordCountPerPage(paginationInfo3.getRecordCountPerPage()); + // 게시글 목록조회 + Map resultList4 = new HashMap(); + resultList4 = boGnrlbbscttService.selectBOMyRvwListInqire(bbsctt2); + + DataMap content4 = new DataMap(); + content4.put("bbscttVO", bbsctt2); + content4.put("resultList", resultList4); + content4.put("paginationInfo", bbsctt2.getPaginationInfo()); + + model.addAttribute("rvw", content4); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOMyRvwListInqire", bbsctt), +// model, +// "rvw" +// ); } return diviceTy + "/mpage/main/MpageMainR"; @@ -141,12 +327,18 @@ public class MyMbrController { */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value="/selectMbrInfoUpdtPasswordCnfirmForm") - public String selectMbrInfoUpdtPasswordCnfirmForm(MyMbrVO mymbrVO, ModelMap model, HttpServletRequest request){ + public String selectMbrInfoUpdtPasswordCnfirmForm(BOMbrVO mymbrVO, ModelMap model, HttpServletRequest request){ + // 사용자 정보 추출 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + mymbrVO.setMbrDvCd(user.getMbrDvCd()); + mymbrVO.setMbrInnb(String.valueOf(user.getUserInnb())); - Map resultMap = responseHandler.handleResponseAsMap( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOExtrlIntrlckAt", mymbrVO) - ); - mymbrVO.setExtrlIntrlckAt((String) resultMap.get("extrlIntrlckAt")); + String result = service.selectBOExtrlIntrlckAt(mymbrVO); + +// Map resultMap = responseHandler.handleResponseAsMap( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOExtrlIntrlckAt", mymbrVO) +// ); + mymbrVO.setExtrlIntrlckAt(result); if(mymbrVO.getExtrlIntrlckAt().equals("Y")) { return selectMbrInfoUpdtForm(mymbrVO, model, request); @@ -157,16 +349,21 @@ public class MyMbrController { /** * 회원 비밀번호 확인 * @param mymbrVO - * @param bindingResult * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/selectMbrInfoUpdtPasswordCnfirm") - public ResponseEntity selectMbrInfoUpdtPasswordCnfirm(MyMbrVO mymbrVO){ - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrPasswordCnfirm", mymbrVO), - ReplyFromResrc::getReply + @RequestMapping(value="/selectMbrInfoUpdtPasswordCnfirm", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity selectMbrInfoUpdtPasswordCnfirm(BOMbrVO mymbrVO){ + Map content = selectBOMbrPasswordCnfirm(mymbrVO); + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrPasswordCnfirm", mymbrVO), +// ReplyFromResrc::getReply +// ); } @@ -177,14 +374,52 @@ public class MyMbrController { */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value="/selectMbrInfoUpdtForm") - public String selectMbrInfoUpdtForm(MyMbrVO mymbrVO, ModelMap model, HttpServletRequest request){ - mymbrVO.setServerDv("sopmal"); + public String selectMbrInfoUpdtForm(BOMbrVO vo, ModelMap model, HttpServletRequest request){ + vo.setServerDv("sopmal"); + // 사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + vo.setUpdusr(user.getUserInnb()); + vo.setMbrInnb(String.valueOf(user.getUserInnb())); + vo.setMbrDvCd(user.getMbrDvCd()); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrInfoUpdtInqire", mymbrVO), - model, - "resultMap" - ); + //시크릿키 set + String secretKey = ""; + secretKey = commonService.selectSecretkey(); + vo.setSecretKey(secretKey); + + //회원정보 수정 조회 + DataMap result = new DataMap(); + result = service.selectBOMbrInfoUpdtInqire(vo); + + //회원등급 조회 + BOGradbnefVO paramVO = new BOGradbnefVO(); + paramVO.setSopmalCd(vo.getSopmalCd()); + List gradList = null; + gradList = mbrGradService.selectBOMbrGradListInqireWithoutPaging(paramVO); + + //이메일 주소 + BOMaComncdVO cdVO = new BOMaComncdVO(); + List email = new ArrayList<>(); + cdVO.setGroupCd("EMAIL_ADRES"); + email = service.selectCommCode(cdVO); + + // Map객체에 필요 정보 할당 + Map content = new HashMap<>(); + content.put("result", result); + content.put("paramVO", vo); + content.put("gradList", gradList); + content.put("email", email); + content.put("extrlIntrlckAt", service.selectBOIdSearch(vo).get("extrlIntrlckAt")); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrInfoUpdtInqire", mymbrVO), +// model, +// "resultMap" +// ); return Util.getDeviceType(request) + "/mpage/mbr/MbrInfoUpdtU"; } @@ -194,8 +429,8 @@ public class MyMbrController { * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value="/updateMbrIdUpdt" , method = RequestMethod.POST) - public ResponseEntity updateMbrIdUpdt(@Validated MyMbrIdChngVO mymbrVO, BindingResult bindingResult){ + @RequestMapping(value="/updateMbrIdUpdt" , method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateMbrIdUpdt(@Validated MyMbrIdChngVO mymbrVO, BOMbrVO vo, BindingResult bindingResult){ // 정합성 검사 if (bindingResult.hasErrors()) { throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); @@ -221,11 +456,36 @@ public class MyMbrController { if (password.equals(mymbrVO.getMbrId())) { throw new WnbtRestException("비밀번호는 아이디와 동일할 수 없습니다."); } + // 사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + vo.setSopmalCd(user.getSopmalCd()); + vo.setUpdusr(user.getUserInnb()); + vo.setMbrInnb(String.valueOf(user.getUserInnb())); + vo.setMbrDvCd(user.getMbrDvCd()); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/updateBOMbrIdUpdt", mymbrVO), - ReplyFromResrc::getReply + BOCommonVO commVO = new BOCommonVO(); + commVO.setPass(vo.getNewPassword()); // 변경할 비밀번호 + commVO.setEncptKeyDvCd("01"); // 회원 + commVO.setIdntfcInnb(String.valueOf(user.getUserInnb())); // 회원고유번호 + + //변경할 비밀번호 암호화 + String newPwd = commonService.generateKey(commVO); + vo.setNewPassword(newPwd); + + Map content = new HashMap<>(); + + // 아이디 수정 + content = service.selectBOMbrIdUpdt(vo); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/updateBOMbrIdUpdt", mymbrVO), +// ReplyFromResrc::getReply +// ); } /** @@ -234,8 +494,8 @@ public class MyMbrController { * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value="/updateMbrPasswordUpdt" , method = RequestMethod.POST) - public ResponseEntity updateMbrPasswordUpdt(@Validated MyMbrPwdChngVO mymbrVO, BindingResult bindingResult){ + @RequestMapping(value="/updateMbrPasswordUpdt" , method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateMbrPasswordUpdt(@Validated MyMbrPwdChngVO mymbrVO, BOMbrVO vo, BindingResult bindingResult){ // 정합성 검사 if (bindingResult.hasErrors()) { throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); @@ -243,9 +503,10 @@ public class MyMbrController { //비밀번호 변경시 /*1 비밀번호 변경 시 현재 비밀번호 확인*/ - Map resultMap = responseHandler.handleResponseAsMap( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrPasswordCnfirm", mymbrVO) - ); + Map resultMap = selectBOMbrPasswordCnfirm(vo); +// Map resultMap = responseHandler.handleResponseAsMap( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrPasswordCnfirm", mymbrVO) +// ); int result = (int) resultMap.get("result"); if (result == 0) { throw new WnbtRestException("현재 비밀번호가 일치하지 않습니다"); @@ -279,29 +540,77 @@ public class MyMbrController { throw new WnbtRestException("현재 비밀번호와 동일한 비밀번호를 재사용할 수 없습니다."); } - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/updateBOMbrPasswordUpdt", mymbrVO), - ReplyFromResrc::getReply + // 사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + vo.setSopmalCd(user.getSopmalCd()); + vo.setUpdusr(user.getUserInnb()); + vo.setMbrInnb(String.valueOf(user.getUserInnb())); + vo.setMbrDvCd(user.getMbrDvCd()); + + BOCommonVO commVO = new BOCommonVO(); + commVO.setPass(vo.getNewPassword()); // 변경할 비밀번호 + commVO.setEncptKeyDvCd("01"); // 회원 + commVO.setIdntfcInnb(String.valueOf(user.getUserInnb())); // 회원고유번호 + + //변경할 비밀번호 암호화 + String newPwd = commonService.generateKey(commVO); + vo.setNewPassword(newPwd); + + Map content = new HashMap<>(); + + // 비밀번호 수정 + content = service.selectBOMbrPasswordUpdt(vo); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/updateBOMbrPasswordUpdt", mymbrVO), +// ReplyFromResrc::getReply +// ); } - @Policy(AuthPolicy.PUBLIC)@RequestMapping(value="/selectCrtnbSndng")public String selectCrtnbSndng(){return "/0";} + @Policy(AuthPolicy.PUBLIC) + @RequestMapping(value="/selectCrtnbSndng" + )public String selectCrtnbSndng(){return "/0";} /** * 회원 정보 수정 (휴대폰번호 수정) - * @param mymbrVO + * @param vo * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value="/updateMbrMblphonInfoUpdt") - public ResponseEntity updateMbrMblphonInfoUpdt(@Validated MyMbrVO mymbrVO, BindingResult bindingResult){ - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/updateBOMbrMblphonInfoUpdt", mymbrVO), - ReplyFromResrc::getReply + @RequestMapping(value="/updateMbrMblphonInfoUpdt", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateMbrMblphonInfoUpdt(@Validated BOMbrVO vo, BindingResult bindingResult){ + // 사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + vo.setSopmalCd(user.getSopmalCd()); + vo.setUpdusr(user.getUserInnb()); + vo.setMbrInnb(String.valueOf(user.getUserInnb())); + vo.setMbrDvCd(user.getMbrDvCd()); + + String secretKey = boCommonService.selectSecretkey(); + vo.setSecretKey(secretKey); + + Map content = new HashMap<>(); + content = service.updateBOMbrMblphonInfoUpdt(vo); + // Map객체에 필요 정보 할당 + content.put("paramVO", vo); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/updateBOMbrMblphonInfoUpdt", mymbrVO), +// ReplyFromResrc::getReply +// ); } @@ -312,59 +621,105 @@ public class MyMbrController { * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value="/updateMbrEmailInfoUpdt") + @RequestMapping(value="/updateMbrEmailInfoUpdt", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity updateMbrEmailInfoUpdt(@Validated MyMbrEmailChngVO mymbrVO, BindingResult bindingResult){ // 정합성 검사 if (bindingResult.hasErrors()) { throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); } + // 사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + BOMbrVO vo = new BOMbrVO(); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/updateBOMbrEmailInfoUpdt", mymbrVO), - ReplyFromResrc::getReply + vo.setEmail(mymbrVO.getEmail()); + vo.setSopmalCd(user.getSopmalCd()); + vo.setUpdusr(user.getUserInnb()); + vo.setMbrInnb(String.valueOf(user.getUserInnb())); + vo.setMbrDvCd(user.getMbrDvCd()); + + String secretKey = boCommonService.selectSecretkey(); + vo.setSecretKey(secretKey); + + Map content = new HashMap<>(); + content = service.updateBOMbrEmailInfoUpdt(vo); + // Map객체에 필요 정보 할당 + content.put("paramVO", vo); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/updateBOMbrEmailInfoUpdt", mymbrVO), +// ReplyFromResrc::getReply +// ); } /** * 계정 연동 활성화 - * @param mymbrVO + * @param vo * @param bindingResult * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value="/insertAcntCnncSttusRegist" , method = RequestMethod.POST) - public ResponseEntity insertAcntCnncSttusRegist(MyMbrVO mymbrVO, BindingResult bindingResult){ + @RequestMapping(value="/insertAcntCnncSttusRegist" , method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity insertAcntCnncSttusRegist(BOMbrVO vo, BindingResult bindingResult){ // 정합성 검사 if (bindingResult.hasErrors()) { throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); } + // 사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + vo.setSopmalCd(user.getSopmalCd()); + vo.setUpdusr(user.getUserInnb()); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/insertBOAcntCnncSttusRegist", mymbrVO), - ReplyFromResrc::getReply + Map message = new HashMap<>(); + message = service.insertBOAcntCnncSttusRegist(vo); // 계정 연동 등록 + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/insertBOAcntCnncSttusRegist", mymbrVO), +// ReplyFromResrc::getReply +// ); } /** * 계정 연동 비활성화 - * @param mymbrVO + * @param vo * @param bindingResult * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value="/deleteAcntCnncSttusDel" , method = RequestMethod.POST) - public ResponseEntity deleteAcntCnncSttusDel(MyMbrVO mymbrVO, BindingResult bindingResult){ + @RequestMapping(value="/deleteAcntCnncSttusDel" , method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity deleteAcntCnncSttusDel(BOMbrVO vo, BindingResult bindingResult){ // 정합성 검사 if (bindingResult.hasErrors()) { throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); } + // 사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + vo.setSopmalCd(user.getSopmalCd()); + vo.setUpdusr(user.getUserInnb()); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/deleteBOAcntCnncSttusDel", mymbrVO), - ReplyFromResrc::getReply + Map message = new HashMap<>(); + message = service.deleteBOAcntCnncSttusDel(vo); // 계정 연동 삭제 + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/deleteBOAcntCnncSttusDel", mymbrVO), +// ReplyFromResrc::getReply +// ); } @@ -374,21 +729,33 @@ public class MyMbrController { * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value="/updateMbrInfoUpdt") - public ResponseEntity updateMbrInfoUpdt(@Validated MyMbrVO mymbrVO, BindingResult bindingResult){ - mymbrVO.setServerDv("sopmal"); + @RequestMapping(value="/updateMbrInfoUpdt", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateMbrInfoUpdt(@Validated MyMbrVO mymbrVO, BOMbrVO vo, BindingResult bindingResult){ + vo.setServerDv("sopmal"); + // 사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); // 정합성 검사 if (bindingResult.hasErrors()) { throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); } - mymbrVO.setMbtlnb(mymbrVO.getMbtlnb().replace("-","")); + vo.setMbtlnb(vo.getMbtlnb().replace("-","")); //모바일일 시 진행 if("mobile".equals(mymbrVO.getUtilDv())){ - Map resultMap = responseHandler.handleResponseAsMap( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrMbtlnbCompare", mymbrVO) - ); - int result = (Integer) resultMap.get("result"); + if("01".equals(user.getSysDvCd())){ + vo.setMbrInnb(String.valueOf(user.getUserInnb())); + vo.setMbrDvCd(user.getMbrDvCd()); + } + + //시크릿키 set + String secretKey = ""; + secretKey = commonService.selectSecretkey(); + vo.setSecretKey(secretKey); + +// Map resultMap = responseHandler.handleResponseAsMap( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrMbtlnbCompare", mymbrVO) +// ); + int result = service.selectBOMbrMbtlnbCompare(vo); if(result == 0){ if(!"Y".equals(mymbrVO.getMbtlnbChngAt())){ throw new WnbtRestException("휴대폰 인증이 필요합니다."); @@ -396,18 +763,36 @@ public class MyMbrController { } } - if (mymbrVO.getBrthDe() != null) { - mymbrVO.setBrthDe(mymbrVO.getBrthDe().replace(",", "")); + if (vo.getBrthDe() != null) { + vo.setBrthDe(vo.getBrthDe().replace(",", "")); } - if (mymbrVO.getMarktRecptnAgreAt() == null || mymbrVO.getMarktRecptnAgreAt().isEmpty()) { - mymbrVO.setMarktRecptnAgreAt("N"); + if (vo.getMarktRecptnAgreAt() == null || vo.getMarktRecptnAgreAt().isEmpty()) { + vo.setMarktRecptnAgreAt("N"); } - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/updateBOMbrInfoUpdt", mymbrVO), - ReplyFromResrc::getReply + vo.setSopmalCd(user.getSopmalCd()); + vo.setRegusr(user.getUserInnb()); + vo.setUpdusr(user.getUserInnb()); + vo.setMbrInnb(String.valueOf(user.getUserInnb())); + vo.setMbrDvCd(user.getMbrDvCd()); + + String secretKey = ""; + secretKey = commonService.selectSecretkey(); + vo.setSecretKey(secretKey); + + Map message = new HashMap<>(); + message = service.updateBOMbrInfoUpdt(vo); // 회원 정보 수정 + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/updateBOMbrInfoUpdt", mymbrVO), +// ReplyFromResrc::getReply +// ); } @@ -418,13 +803,26 @@ public class MyMbrController { */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value = "/selectMbrSecsnForm") - public String selectMbrSecsnForm(ModelMap model, HttpServletRequest request, MyMbrVO mymbrVO) { - mymbrVO.setServerDv("sopmal"); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrSecsnForm", mymbrVO), - model, - "resultMap" - ); + public String selectMbrSecsnForm(ModelMap model, HttpServletRequest request, BOMbrVO vo) { + vo.setServerDv("sopmal"); + BOMaSopmalVO sopmalVo = new BOMaSopmalVO(); + if ("sopmal".equals(vo.getServerDv())) { + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + vo.setMbrInnb(String.valueOf(user.getUserInnb())); + vo.setMbrDvCd(String.valueOf(user.getMbrDvCd())); + sopmalVo.setSopmalCd(user.getSopmalCd()); + } + // Map객체에 필요 정보 할당 + Map content = new HashMap<>(); + content.put("paramVO", vo); + content.put("sopmalInfo", maSopmalService.selectBOSopmalFooterInfo(sopmalVo).get("sopmalInfo")); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrSecsnForm", mymbrVO), +// model, +// "resultMap" +// ); return Util.getDeviceType(request) + "/mpage/mbr/MbrSecsnU"; } @@ -435,22 +833,92 @@ public class MyMbrController { * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value="/updateMbrSecsn") - public ResponseEntity updateMbrSecsn(@Validated WithdrawalVO vo, BindingResult bindingResult, HttpServletRequest request){ + @RequestMapping(value="/updateMbrSecsn", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateMbrSecsn(@Validated BOWithdrawalVO bowithdrawalVO, BindingResult bindingResult, HttpServletRequest request){ //validation 체크 if (bindingResult.hasErrors()) { throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); } - vo.setServerDv("sopmal"); + + bowithdrawalVO.setServerDv("sopmal"); //ip주소 get Map requestInfo = Util.getRequestInfo(request); String ip = (String) requestInfo.get("XForwardedFor"); - vo.setRegistIp(ip); + bowithdrawalVO.setRegistIp(ip); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/updateBOMbrSecsn", vo), - ReplyFromResrc::getReply + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if (StringUtil.isEmpty(bowithdrawalVO.getSopmalCd())) {//사용자 + bowithdrawalVO.setSopmalCd(user.getSopmalCd()); + } + bowithdrawalVO.setRegusr(user.getUserInnb()); + bowithdrawalVO.setUpdusr(user.getUserInnb()); + bowithdrawalVO.setSecretKey(commonService.selectSecretkey()); + + + if ("sopmal".equals(bowithdrawalVO.getServerDv())) { + List mbrArr = new ArrayList<>(); + List mbrDvCdArr = new ArrayList<>(); + mbrArr.add(String.valueOf(user.getUserInnb())); + mbrDvCdArr.add(String.valueOf(user.getMbrDvCd())); + bowithdrawalVO.setMbrarr(mbrArr); + bowithdrawalVO.setMbrDvCdArr(mbrDvCdArr); + } + + //관리자 로그 문장 만듦 + DataMap mngrLog = new DataMap(); + DataMap data = new DataMap(); + data.put("id", user.getMbrId()); + data.put("registIp", bowithdrawalVO.getRegistIp()); + data.put("before", "일반회원"); + data.put("after", "탈퇴회원"); + data.put("actionDv", "withdrawal"); + + mngrLog = service.makeMngrLog(data); + + bowithdrawalVO.setMngrLogStrt(StringUtil.isNullToString(mngrLog.get("mngrLogStrt"))); + bowithdrawalVO.setMngrLogEnd(StringUtil.isNullToString(mngrLog.get("mngrLogEnd"))); + + //회원탈퇴 + Map message = new HashMap<>(); + message = service.updateBOMbrSecsn(bowithdrawalVO); + + //회원탈퇴 안내문자 + String result = (String) message.get("result"); + if ("success".equals(result)) { + //메세지 타겟 대상 + List messageTarget = new ArrayList<>(); + List withdrawalList = new ArrayList<>(); + withdrawalList = (List) message.get("withdrawalList"); + //회원 고유번호 + if (!CollectionUtils.isEmpty(withdrawalList)) { + //메시지 + Map sopmalInfoMap = new HashMap<>(); + BOMaSopmalVO vo = new BOMaSopmalVO(); + vo.setSopmalCd(bowithdrawalVO.getSopmalCd()); + DataMap sopmalInfo = (DataMap) sopmalInfoMap.get("sopmalInfo"); + for (DataMap withdrawal : withdrawalList) { + DataMap mbrInfo = new DataMap(); + mbrInfo = service.selectSimpleMbrInfo(withdrawal); + withdrawal.put("formDvCd", "FORM_DV_MBR"); + withdrawal.put("formDtlDvCd", "02"); + withdrawal.put("userid",mbrInfo.get("mbrId")); + withdrawal.put("sopmalCd", vo.getSopmalCd()); + messageTarget.add(withdrawal); + } + + boMssageService.insertBOAtmcsndng(messageTarget); + } + } + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/updateBOMbrSecsn", vo), +// ReplyFromResrc::getReply +// ); } @@ -458,7 +926,6 @@ public class MyMbrController { /** * 배송지 관리 목록 조회 이동 * @param dlvylcVO - * @param ModelMap * @return MbrDlvylcListInqireR.jsp */ @Policy(AuthPolicy.PUBLIC) @@ -467,13 +934,14 @@ public class MyMbrController { return Util.getDeviceType(request)+"/mpage/mbr/DlvylcManageRForm"; } + /** * 배송지 관리 * @return */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value="/selectDlvylcManagePopup") - public String selectDlvylcManagePopup(HttpServletRequest request, DlvylcVO dlvylcVO, ModelMap model){ + public String selectDlvylcManagePopup(HttpServletRequest request, BOCrmDlvylcVO dlvylcVO, ModelMap model){ String jspPath = ""; dlvylcVO.setServerDv("sopmal"); //popUp or page 호출인지에 따라 페이지유닛 및 경로 분기 @@ -493,12 +961,37 @@ public class MyMbrController { jspPath = Util.getDeviceType(request)+"/mpage/mbr/DlvylcManageR"; } dlvylcVO.setServerDv("sopmal"); - //BO에서 API 호출 - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOMbrDlvylcListInqire", dlvylcVO), - model, - "resultMap" - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if ("01".equals(user.getSysDvCd())) { + dlvylcVO.setMbrInnb(user.getUserInnb()); + dlvylcVO.setMbrDvCd(user.getMbrDvCd()); + } + + //페이징 정보 set + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(dlvylcVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(dlvylcVO.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + + dlvylcVO.setPaginationInfo(paginationInfo); + dlvylcVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + dlvylcVO.setLastIndex(paginationInfo.getLastRecordIndex()); + dlvylcVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + /*목록 조회*/ + List resultList = boOrdrService.selectBOMbrDlvylcListInqire(dlvylcVO); + + Map content = new HashMap<>(); + content.put("paramVO", dlvylcVO); + content.put("resultList", resultList); + content.put("paginationInfo", dlvylcVO.getPaginationInfo()); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOMbrDlvylcListInqire", dlvylcVO), +// model, +// "resultMap" +// ); //기존 페이지 유지 model.addAttribute("pageIndex", dlvylcVO.getPageIndex()); model.addAttribute("formId", dlvylcVO.getFormId()); @@ -515,14 +1008,16 @@ public class MyMbrController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectDlvylcUpdtPopupForm") - public String selectDlvylcUpdtPopupForm(HttpServletRequest request, ModelMap model, DlvylcVO dlvylcVO){ + public String selectDlvylcUpdtPopupForm(HttpServletRequest request, ModelMap model, BOCrmDlvylcVO dlvylcVO){ dlvylcVO.setServerDv("sopmal"); - //BO API 호출하여 상세 조회 - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBODlvylcUpdtPopupForm",dlvylcVO), - model, - "dtlDlvylc" - ); + + Map content = selectBODlvylcUpdtPopupForm(dlvylcVO); + model.addAttribute("dtlDlvylc", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBODlvylcUpdtPopupForm",dlvylcVO), +// model, +// "dtlDlvylc" +// ); model.addAttribute("pageIndex",dlvylcVO.getPageIndex()); return Util.getDeviceType(request)+"/mpage/mbr/DlvylcUpdtPopupU"; } @@ -533,14 +1028,16 @@ public class MyMbrController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectDlvylcUpdtMobilePopupForm") - public String selectDlvylcUpdtMobilePopupForm(HttpServletRequest request, ModelMap model, DlvylcVO dlvylcVO){ - Map paramMap = new HashMap<>(); + public String selectDlvylcUpdtMobilePopupForm(HttpServletRequest request, ModelMap model, BOCrmDlvylcVO dlvylcVO){ dlvylcVO.setServerDv("sopmal"); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBODlvylcUpdtPopupForm", dlvylcVO), - model, - "dtlDlvylc" - ); + + Map content = selectBODlvylcUpdtPopupForm(dlvylcVO); + model.addAttribute("dtlDlvylc", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBODlvylcUpdtPopupForm", dlvylcVO), +// model, +// "dtlDlvylc" +// ); //모델 객체에 상세 조회 및 페이지 인덱스,회원고유번호 담음 // model.addAttribute("dtlDlvylc",BoResultMapConverter.convert(new ObjectMapper(), reply.getReply())); @@ -553,16 +1050,15 @@ public class MyMbrController { * @return ResponseEntity */ @Policy(AuthPolicy.RESTRICTED) - @PostMapping(value="/updateDlvylcUpdt") - public ResponseEntity updateDlvylcUpdt(@Validated DlvylcVO dlvylcVO, - BindingResult bindingResult){ + @PostMapping(value="/updateDlvylcUpdt", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateDlvylcUpdt(@Validated DlvylcVO dlvylcVO, BOCrmDlvylcVO crmDlvylcVO, BindingResult bindingResult){ //입력값 정합성 점검결과 처리 if(bindingResult.hasErrors()) { throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); } //휴대폰번호 정합성 체크 - String mbtlnb = dlvylcVO.getMbtlnb(); + String mbtlnb = crmDlvylcVO.getMbtlnb(); mbtlnb = mbtlnb.replace("-", ""); int mbtlnbLen = mbtlnb.length(); if (!(mbtlnbLen >= 8 && mbtlnbLen <= 12)) { @@ -571,18 +1067,39 @@ public class MyMbrController { //도로명 지번 분기처리 하여 vo에 set함 if("01".equals(dlvylcVO.getAdresDv())) { - dlvylcVO.setRnmAdres(dlvylcVO.getAdres()); - dlvylcVO.setLnbAdres(null); + crmDlvylcVO.setRnmAdres(dlvylcVO.getAdres()); + crmDlvylcVO.setLnbAdres(null); }else if("02".equals(dlvylcVO.getAdresDv())){ - dlvylcVO.setLnbAdres(dlvylcVO.getAdres()); - dlvylcVO.setRnmAdres(null); + crmDlvylcVO.setLnbAdres(dlvylcVO.getAdres()); + crmDlvylcVO.setRnmAdres(null); } dlvylcVO.setServerDv("sopmal"); - //BO API 호출 => 배송지 수정 - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/updateBODlvylcUpdt", dlvylcVO), - ReplyFromResrc::getReply + //수정자 set + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if ("01".equals(user.getSysDvCd())) { + crmDlvylcVO.setMbrInnb(user.getUserInnb()); + crmDlvylcVO.setMbrDvCd(user.getMbrDvCd()); + } + crmDlvylcVO.setUpdusr(user.getUserInnb()); + //기본배송지 + String dftDlvylcAt = crmDlvylcVO.getDftDlvylcAt(); + // 기본 배송지 체크 시('Y') 다른 배송지 N으로 수정 + if (dftDlvylcAt.equals("Y")) { + boOrdrService.updateBODftDlvylcAt(crmDlvylcVO); + } + + //자주쓰는 배송지 수정 + Map message = boOrdrService.updateBODlvylc(crmDlvylcVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/updateBODlvylcUpdt", dlvylcVO), +// ReplyFromResrc::getReply +// ); } /** * 배송지 등록 팝업 이동 @@ -601,36 +1118,58 @@ public class MyMbrController { * @return ResponseEntity */ @Policy(AuthPolicy.RESTRICTED) - @PostMapping(value="/insertDlvylcRegist") - public ResponseEntity insertDlvylcRegist(@Validated DlvylcVO dlvylcVO, - BindingResult bindingResult){ + @PostMapping(value="/insertDlvylcRegist", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity insertDlvylcRegist(@Validated DlvylcVO dlvylcVO, BOCrmDlvylcVO crmDlvylcVO, BindingResult bindingResult){ //입력값 정합성 점검결과 처리 if(bindingResult.hasErrors()) { throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); } //휴대폰번호 정합성 체크 - String mbtlnb = dlvylcVO.getMbtlnb(); + String mbtlnb = crmDlvylcVO.getMbtlnb(); mbtlnb = mbtlnb.replace("-",""); int mbtlnbLen = mbtlnb.length(); if(!(mbtlnbLen >= 8 && mbtlnbLen <= 12)){ throw new WnbtRestException("번호는 8자~12자 입니다."); } - dlvylcVO.setServerDv("sopmal"); + crmDlvylcVO.setServerDv("sopmal"); //등록 jsp에서 넘어온 주소를 도로명 지번 분기처리 하여 vo에 set함 - if("01".equals(dlvylcVO.getAdresDv())) { - dlvylcVO.setRnmAdres(dlvylcVO.getAdres()); - dlvylcVO.setLnbAdres(null); - }else if("02".equals(dlvylcVO.getAdresDv())){ - dlvylcVO.setLnbAdres(dlvylcVO.getAdres()); - dlvylcVO.setRnmAdres(null); + if("01".equals(crmDlvylcVO.getAdresDv())) { + crmDlvylcVO.setRnmAdres(crmDlvylcVO.getAdres()); + crmDlvylcVO.setLnbAdres(null); + }else if("02".equals(crmDlvylcVO.getAdresDv())){ + crmDlvylcVO.setLnbAdres(crmDlvylcVO.getAdres()); + crmDlvylcVO.setRnmAdres(null); } - //BO API 호출 => 배송지 등록 - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/insertBODlvylcRegist", dlvylcVO), - ReplyFromResrc::getReply + + //등록자 set + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + crmDlvylcVO.setRegusr(user.getUserInnb()); + crmDlvylcVO.setUpdusr(user.getUserInnb()); + if ("01".equals(user.getSysDvCd())) { + crmDlvylcVO.setMbrInnb(user.getUserInnb()); + crmDlvylcVO.setMbrDvCd(user.getMbrDvCd()); + } + //기본 배송지 체크 여부 확인 + String dftDlvylcAt = crmDlvylcVO.getDftDlvylcAt(); + //등록시 체크 여부에 따라 'Y'일 시 기존 자주쓰는 배송지 'N'으로 UPDATE + if (dftDlvylcAt.equals("Y")) { + boOrdrService.updateBODftDlvylcAt(crmDlvylcVO); + } + log.debug("insertDlvylcRegist CrmDlvylc : {}", crmDlvylcVO); + //service에서 등록 결과 메시지 담음 + Map message = boOrdrService.insertBODlvylcRegist(crmDlvylcVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/insertBODlvylcRegist", dlvylcVO), +// ReplyFromResrc::getReply +// ); } /** * 배송지 삭제 @@ -638,14 +1177,25 @@ public class MyMbrController { * @return ResponseEntity */ @Policy(AuthPolicy.RESTRICTED) - @PostMapping(value="/deleteDlvylcDel") - public ResponseEntity deleteDlvylcDel(DlvylcVO dlvylcVO){ + @PostMapping(value="/deleteDlvylcDel", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity deleteDlvylcDel(BOCrmDlvylcVO dlvylcVO){ dlvylcVO.setServerDv("sopmal"); - //BO API 호출 => 배송지 삭제 - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/deleteBODlvylcDel", dlvylcVO), - ReplyFromResrc::getReply + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if ("01".equals(user.getSysDvCd())) { + dlvylcVO.setMbrInnb(user.getUserInnb()); + dlvylcVO.setMbrDvCd(user.getMbrDvCd()); + } + //service에서 삭제 결과 갖고 옴 + Map message = boOrdrService.deleteBODlvylc(dlvylcVO); + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/deleteBODlvylcDel", dlvylcVO), +// ReplyFromResrc::getReply +// ); } /** * 기본배송지 수정 @@ -653,14 +1203,63 @@ public class MyMbrController { * @return ResponseEntity */ @Policy(AuthPolicy.RESTRICTED) - @PostMapping(value="/updatedftDlvylcAtUpdt") - public ResponseEntity updatedftDlvylcAtUpdt(DlvylcVO dlvylcVO){ + @PostMapping(value="/updatedftDlvylcAtUpdt", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updatedftDlvylcAtUpdt(BOCrmDlvylcVO dlvylcVO){ dlvylcVO.setServerDv("sopmal"); - //BO API 호출 => 기본배송지 수정 - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/updateBOdftDlvylcAtUpdt", dlvylcVO), - ReplyFromResrc::getReply + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if ("01".equals(user.getSysDvCd())) { + dlvylcVO.setMbrInnb(user.getUserInnb()); + dlvylcVO.setMbrDvCd(user.getMbrDvCd()); + } + Map message = boOrdrService.updateBOdftDlvylcAtUpdt(dlvylcVO); + message = boOrdrService.updateBODftDlvylcAtYset(dlvylcVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/updateBOdftDlvylcAtUpdt", dlvylcVO), +// ReplyFromResrc::getReply +// ); } + + /** + * 회원 비밀번호 확인 + */ + public Map selectBOMbrPasswordCnfirm(BOMbrVO vo) { + // 사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + vo.setMbrDvCd(user.getMbrDvCd()); + vo.setMbrInnb(String.valueOf(user.getUserInnb())); + + Integer result = null; + result = service.selectBOMbrPasswordCnfirm(vo); + + // Map객체에 필요 정보 할당 + Map content = new HashMap<>(); + content.put("result", result); + + return content; + } + + /** + * bo로직 회원 자주쓰는 배송지 상세 조회 + */ + public Map selectBODlvylcUpdtPopupForm(BOCrmDlvylcVO crmDlvylcVO) { + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if ("01".equals(user.getSysDvCd())) { + crmDlvylcVO.setMbrInnb(user.getUserInnb()); + crmDlvylcVO.setMbrDvCd(user.getMbrDvCd()); + } + //회원 자주쓰는 배송지 상세 조회 + BOCrmDlvylcVO resultVO = boOrdrService.selectBODlvylcUpdtPopupForm(crmDlvylcVO); + + //상세 조회 정보 resultVO에 put + Map content = new HashMap<>(); + content.put("resultVO", resultVO); + return content; + } } diff --git a/src/main/java/com/wb/domainserver/domain/sopmal/mpage/ordr/controller/MyOrdrController.java b/src/main/java/com/wb/domainserver/domain/sopmal/mpage/ordr/controller/MyOrdrController.java index 10215343..53023ed2 100644 --- a/src/main/java/com/wb/domainserver/domain/sopmal/mpage/ordr/controller/MyOrdrController.java +++ b/src/main/java/com/wb/domainserver/domain/sopmal/mpage/ordr/controller/MyOrdrController.java @@ -3,15 +3,56 @@ package com.wb.domainserver.domain.sopmal.mpage.ordr.controller; import com.fasterxml.jackson.core.JsonProcessingException; 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.store.sopmal.service.BOMaSopmalService; +import com.wb.domainserver.domain.admin.sys.comncd.service.BOMaComncdService; +import com.wb.domainserver.domain.admin.sys.comncd.vo.BOMaComncdVO; +import com.wb.domainserver.domain.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.goods.purchs.vo.BOOrderLogVO; +import com.wb.domainserver.domain.gcone.mbr.mbr.service.BOMbrService; +import com.wb.domainserver.domain.gcone.mbr.mbr.vo.BOMbrVO; +import com.wb.domainserver.domain.gcone.mbr.mbr.vo.BOWishVO; +import com.wb.domainserver.domain.gcone.ntcn.mssage.service.BOMssageService; +import com.wb.domainserver.domain.gcone.ordr.dlivy.service.BODlivyService; +import com.wb.domainserver.domain.gcone.ordr.dlivy.vo.BODlivyUpdtVO; +import com.wb.domainserver.domain.gcone.ordr.dlivy.vo.BODlivyVO; +import com.wb.domainserver.domain.gcone.ordr.ordr.service.BOOrdrService; +import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOIndvdlSetleVO; +import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrDlvyVO; +import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrShippingVO; +import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrVO; +import com.wb.domainserver.domain.gcone.ordr.pay.vo.BOPayVO; +import com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.service.BORtngudrefndService; +import com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.vo.BORtngudrefndSrchVO; +import com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.vo.BORtngudrefndVO; +import com.wb.domainserver.domain.gcone.ordr.selngpruf.service.BOSelngprufService; +import com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO; +import com.wb.domainserver.domain.gcone.promtn.coupon.service.BOCouponService; +import com.wb.domainserver.domain.gcone.setup.dlvygrp.service.BODlvygrpService; +import com.wb.domainserver.domain.gcone.setup.gradbnef.service.BOGradbnefService; +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.gcone.setup.ordrmngr.service.BOOrdrMngrService; +import com.wb.domainserver.domain.gcone.setup.site.service.BOSiteService; +import com.wb.domainserver.domain.gcone.setup.site.vo.BOSiteVO; import com.wb.domainserver.domain.sopmal.mpage.ordr.vo.*; +import com.wb.domainserver.exception.WnbtRestException; +import com.wb.domainserver.response.ApiResponse; 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.cookie.CookieUtil; +import com.wb.domainserver.util.dataaccess.DataMap; import com.wb.domainserver.util.util.Util; import jakarta.servlet.http.Cookie; import jakarta.servlet.http.HttpServletRequest; @@ -19,16 +60,21 @@ import lombok.extern.slf4j.Slf4j; import org.apache.logging.log4j.util.Base64Util; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.validation.BindingResult; import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; +import java.math.BigInteger; import java.util.HashMap; +import java.util.List; +import java.util.Map; @Controller @RequestMapping("/sopmal/mpage/ordr") @@ -44,6 +90,42 @@ public class MyOrdrController { @Autowired private GconeMessageSource gconeMessageSource; + @Autowired + private BOMbrService service; + @Autowired + private BOGradbnefService mbrGradService; + @Autowired + private BOMaComncdService bOMaComncdService; + @Autowired + private BOMaSopmalService maSopmalService; + @Autowired + private BOCommonService boCommonService; + @Autowired + private PaginationProperties paginationProperties; + @Autowired + private BOGoodsService boGoodsService; + @Autowired + private BOCommonService commonService; + @Autowired + private BOCouponService couponService; + @Autowired + private BOMssageService boMssageService; + @Autowired + private BOSiteService boSiteService; + @Autowired + private BOOrdrService boOrdrService; + @Autowired + private BOOrdrMngrService boOrdrMngrService; + @Autowired + private BODlivyService dlivyService; + @Autowired + private BONbkkService nbkkService; + @Autowired + private BODlvygrpService dlvyGroupService; + @Autowired + private BORtngudrefndService boRtngudrefndService; + @Autowired + private BOSelngprufService boSelngprufService; /* #################################### 사용자 > 마이페이지 > MY쇼핑 > 주문/배송조회 시작 @@ -55,15 +137,17 @@ public class MyOrdrController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectMpageInfoRefreshInqire") - public String selectMpageInfoRefreshInqire(HttpServletRequest request, ModelMap model, MyOrdrDlvyVO ordrDlvyVO) throws Exception { + public String selectMpageInfoRefreshInqire(HttpServletRequest request, ModelMap model, MyOrdrDlvyVO ordrDlvyVO, BOMbrVO vo) throws Exception { model.addAttribute("paramVO", new ObjectMapper().writeValueAsString(ordrDlvyVO)); // 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 ) - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", ordrDlvyVO), - model, - "mpageResultMap" - ); + Map content = selectBOMpageInfoInqire(vo); + model.addAttribute("mpageResultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", ordrDlvyVO), +// model, +// "mpageResultMap" +// ); // return Util.getDeviceType(request) + "/mpage/MypageRight"; return "comm/mpage/MypageRight"; @@ -76,15 +160,17 @@ public class MyOrdrController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectMbrOrdrListInqire") - public String selectMbrOrdrListInqire(HttpServletRequest request, ModelMap model, MyOrdrDlvyVO ordrDlvyVO) throws Exception { + public String selectMbrOrdrListInqire(HttpServletRequest request, ModelMap model, MyOrdrDlvyVO ordrDlvyVO, BOMbrVO vo) throws Exception { model.addAttribute("paramVO", new ObjectMapper().writeValueAsString(ordrDlvyVO)); // 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 ) - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", ordrDlvyVO), - model, - "mpageResultMap" - ); + Map content = selectBOMpageInfoInqire(vo); + model.addAttribute("mpageResultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", ordrDlvyVO), +// model, +// "mpageResultMap" +// ); return Util.getDeviceType(request) + "/mpage/ordr/OrdrDlvyListR"; } @@ -97,13 +183,15 @@ public class MyOrdrController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectMbrOrdrListInqireAjax") - public String selectMbrOrdrListInqireAjax(ModelMap model, MyOrdrDlvyVO ordrDlvyVO) { + public String selectMbrOrdrListInqireAjax(ModelMap model, BOOrdrDlvyVO ordrDlvyVO) { - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOMbrOrdrListInqireAjax", ordrDlvyVO), - model, - "data" - ); + Map content = selectBOMbrOrdrListInqireAjax(ordrDlvyVO); + model.addAttribute("data", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOMbrOrdrListInqireAjax", ordrDlvyVO), +// model, +// "data" +// ); return "sopmal/mpage/ordr/OrdrDlvyListRList"; } @@ -116,13 +204,15 @@ public class MyOrdrController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectMbrOrdrListInqireMapge") - public String selectMbrOrdrListInqireMapge(ModelMap model, MyOrdrDlvyVO ordrDlvyVO) { + public String selectMbrOrdrListInqireMapge(ModelMap model, BOOrdrDlvyVO ordrDlvyVO) { - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOMbrOrdrListInqireAjax", ordrDlvyVO), - model, - "data" - ); + Map content = selectBOMbrOrdrListInqireAjax(ordrDlvyVO); + model.addAttribute("data", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOMbrOrdrListInqireAjax", ordrDlvyVO), +// model, +// "data" +// ); return "sopmal/mpage/ordr/OrdrDlvyListMpageRList"; } @@ -134,13 +224,19 @@ public class MyOrdrController { * @return ResponseEntity */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/selectMbrOrdrListInqireScrollAjax") - public ResponseEntity selectMbrOrdrListInqireScrollAjax(ModelMap model, MyOrdrDlvyVO ordrDlvyVO) { + @RequestMapping(value="/selectMbrOrdrListInqireScrollAjax", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity selectMbrOrdrListInqireScrollAjax(ModelMap model, BOOrdrDlvyVO ordrDlvyVO) { - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOMbrOrdrListInqireAjax", ordrDlvyVO), - ReplyFromResrc::getReply + Map content = selectBOMbrOrdrListInqireAjax(ordrDlvyVO); + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOMbrOrdrListInqireAjax", ordrDlvyVO), +// ReplyFromResrc::getReply +// ); } /** @@ -150,93 +246,162 @@ public class MyOrdrController { * @throws JsonProcessingException */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/updateCanclOrdr") - public ResponseEntity updateCanclOrdr(MyOrdrDlvyVO ordrDlvyVO) throws JsonProcessingException { + @RequestMapping(value="/updateCanclOrdr", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateCanclOrdr(BOOrdrDlvyVO ordrDlvyVO) throws JsonProcessingException { + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + BOPayVO payVO = new BOPayVO(); + //주문 취소 상태 수정 + Map message = new HashMap<>(); {{ + message.put("status", "0"); + message.put("message", ""); + }}; - /** - Map resultMap = responseHandler.handleResponseAsMap( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/updateBOCanclOrdr", ordrDlvyVO) - ); + try { + BOOrdrVO ordrVO = new BOOrdrVO(); + String[] ordrInnbs = {ordrDlvyVO.getOrdrInnb()}; + ordrVO.setSopmalCd(ordrDlvyVO.getSopmalCd()); // 쇼핑몰코드 + ordrVO.setOrdrInnbs(ordrInnbs); // 주문고유번호 + ordrVO.setOrdrSttusCd("95"); // 상태코드 + ordrVO.setMbrDvCd(user.getMbrDvCd());; + ordrVO.setOrdrrNm(user.getMbrNm());; + ordrVO.setCurrOrdrSttusCd(ordrDlvyVO.getCurrOrdrSttusCd()); + boOrdrService.updateOrdrSttusCd(ordrVO); + } catch (Exception e) { + message.put("status", "1"); + message.put("message", "주문 취소를 실패하였습니다"); + }; - if ("1".equals(resultMap.get("status"))) { - List> errorList = new ArrayList<>(); - - errorList.add(ValidateResultConverter.setErrorMap("error", (String) resultMap.get("message"))); - - throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList)); + // 회원 사이트정보 갱신 + try { + payVO.setSopmalCd(user.getSopmalCd()); + payVO.setMbrInnb(String.valueOf(user.getUserInnb())); + payVO.setMbrDvCd(user.getMbrDvCd()); + boOrdrService.updateMbrSiteUpdtOrdrRefund(payVO); + } catch (Exception e) { + log.error("회원 사이트정보 갱신 실패!"); } - WnbtResponse response = WnbtResponse.builder().resBody(new WnbtResponseBody(new ObjectMapper().writeValueAsString(resultMap))).build(); - */ - - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/updateBOCanclOrdr", ordrDlvyVO), - ReplyFromResrc::getReply + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/updateBOCanclOrdr", ordrDlvyVO), +// ReplyFromResrc::getReply +// ); } /** * 마이 페이지 > MY쇼핑 > 주문/배송조회 > 주문 기준 구매 확정 * @param ordrVO * @return ResponseEntity - * @throws JsonProcessingException */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/updatePurchsDcsnByOrdr") - public ResponseEntity updateBOPurchsDcsnByOrdr(MyOrdrVO ordrVO) throws JsonProcessingException { + @RequestMapping(value="/updatePurchsDcsnByOrdr", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateBOPurchsDcsnByOrdr(BOOrdrVO ordrVO) { + Map content = new HashMap<>() {{ + put("status", "0"); + put("message", "구매확정을 완료 하였습니다."); + }}; - /** - Map resultMap = responseHandler.handleResponseAsMap( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/updateBOPurchsDcsnByOrdr", ordrVO) - ); + BODlivyUpdtVO boDlivyVO = new BODlivyUpdtVO(); - if ("1".equals(resultMap.get("status"))) { - List> errorList = new ArrayList<>(); + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if ("01".equals(user.getSysDvCd())) { + boDlivyVO.setSopmalCd(user.getSopmalCd()); + } + boDlivyVO.setRegusr(user.getUserInnb()); // 등록자 + boDlivyVO.setUpdusr(user.getUserInnb()); // 수정자 + boDlivyVO.setOpetrNm(user.getMbrNm()); // 처리자 명 + boDlivyVO.setMbrDvCd(user.getMbrDvCd()); // 회원 구분 + boDlivyVO.setMbrInnb(String.valueOf(user.getUserInnb())); // 회원 고유번호 - errorList.add(ValidateResultConverter.setErrorMap("error", (String) resultMap.get("message"))); + try { + // service.updatePurchsDcsnByOrdr(ordrVO); - throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList)); + boDlivyVO.setOrdrInnb(ordrVO.getOrdrInnb()); + dlivyService.updateBOPurchsDcsnSttusUpdt(boDlivyVO); + } catch (WnbtRestException wre) { + content = new HashMap<>() {{ + put("status", "1"); + put("message",wre.getMessage()); + }}; + } catch (Exception e) { + content = new HashMap<>() {{ + put("status", "1"); + put("message", "구매확정을 실패하였습니다.\n관리자에게 문의하시기 바랍니다."); + }}; } - WnbtResponse response = WnbtResponse.builder().resBody(new WnbtResponseBody(new ObjectMapper().writeValueAsString(resultMap))).build(); - */ - - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/updateBOPurchsDcsnByOrdr", ordrVO), - ReplyFromResrc::getReply + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/updateBOPurchsDcsnByOrdr", ordrVO), +// ReplyFromResrc::getReply +// ); } /** * 마이 페이지 > MY쇼핑 > 주문/배송조회 > 상품 기준 구매 확정 * @param ordrVO * @return ResponseEntity - * @throws JsonProcessingException */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/updatePurchsDcsnByItem") - public ResponseEntity updatePurchsDcsnByItem(MyOrdrVO ordrVO) throws JsonProcessingException { + @RequestMapping(value="/updatePurchsDcsnByItem", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updatePurchsDcsnByItem(BOOrdrVO ordrVO) { + Map content = new HashMap<>() {{ + put("status", "0"); + put("message", "구매확정을 완료 하였습니다."); + }}; - /** - Map resultMap = responseHandler.handleResponseAsMap( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/updatePurchsDcsnByItem", ordrVO) - ); + BODlivyUpdtVO boDlivyVO = new BODlivyUpdtVO(); - if ("1".equals(resultMap.get("status"))) { - List> errorList = new ArrayList<>(); + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if ("01".equals(user.getSysDvCd())) { + boDlivyVO.setSopmalCd(user.getSopmalCd()); + } + boDlivyVO.setRegusr(user.getUserInnb()); // 등록자 + boDlivyVO.setUpdusr(user.getUserInnb()); // 수정자 + boDlivyVO.setOpetrNm(user.getMbrNm()); // 처리자 명 + boDlivyVO.setMbrDvCd(user.getMbrDvCd()); // 회원 구분 + boDlivyVO.setMbrInnb(String.valueOf(user.getUserInnb())); // 회원 고유번호 - errorList.add(ValidateResultConverter.setErrorMap("error", (String) resultMap.get("message"))); + try { + // service.updatePurchsDcsnByItem(ordrVO); + boDlivyVO.setOrdrGoodsOptnInnb(ordrVO.getOrdrGoodsOptnInnb()); + boDlivyVO.setOptnTy(ordrVO.getOptnTy()); + boDlivyVO.setOrdrInnb(ordrVO.getOrdrInnb()); - throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList)); + dlivyService.updateBOPurchsDcsnSttusUpdt(boDlivyVO); + } catch (WnbtRestException wre) { + content = new HashMap<>() {{ + put("status", "1"); + put("message", wre.getMessage()); + }}; + } catch (Exception e) { + + + content = new HashMap<>() {{ + put("status", "1"); + put("message", "구매확정을 실패하였습니다.\n관리자에게 문의하시기 바랍니다."); + }}; } - WnbtResponse response = WnbtResponse.builder().resBody(new WnbtResponseBody(new ObjectMapper().writeValueAsString(resultMap))).build(); - */ - - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/updatePurchsDcsnByItem", ordrVO), - ReplyFromResrc::getReply + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/updatePurchsDcsnByItem", ordrVO), +// ReplyFromResrc::getReply +// ); } /** @@ -245,21 +410,35 @@ public class MyOrdrController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectMbrOrdrDtlInqire") - public String selectOrdrDtlInqire(HttpServletRequest request, ModelMap model, MyOrdrDlvyVO ordrDlvyVO) throws Exception { - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOMbrOrdrDtlInqire", ordrDlvyVO), - model, - "data" - ); + public String selectOrdrDtlInqire(HttpServletRequest request, ModelMap model, BOOrdrDlvyVO ordrDlvyVO, BOMbrVO vo) throws Exception { + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if ("01".equals(user.getSysDvCd())) { + ordrDlvyVO.setSopmalCd(user.getSopmalCd()); + } + Map message = boOrdrService.selectMbrOrdrDtlInqire(ordrDlvyVO); + /**발급대상구분코드*/ + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + bOMaComncdVO.setGroupCd("ISSU_TRGET_DV"); + List issuTrgetDv = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + message.put("issuTrgetDv", issuTrgetDv); + model.addAttribute("data", message); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOMbrOrdrDtlInqire", ordrDlvyVO), +// model, +// "data" +// ); model.addAttribute("paramVO", new ObjectMapper().writeValueAsString(ordrDlvyVO)); model.addAttribute("vo", ordrDlvyVO); // 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 ) - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", ordrDlvyVO), - model, - "mpageResultMap" - ); + Map content = selectBOMpageInfoInqire(vo); + model.addAttribute("mpageResultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", ordrDlvyVO), +// model, +// "mpageResultMap" +// ); return Util.getDeviceType(request) + "/mpage/ordr/OrdrDtlR"; } @@ -268,33 +447,47 @@ public class MyOrdrController { * 마이 페이지 > MY쇼핑 > 주문/배송조회 > 배송지 수정 * @param param * @return ResponseEntity - * @throws JsonProcessingException */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/updateDlvylc") - public ResponseEntity updateDlvylc(@RequestBody HashMap param) throws JsonProcessingException { - - /** - Map resultMap = responseHandler.handleResponseAsMap( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/updateBODlvylc", param) - ); - - if ("1".equals(resultMap.get("status"))) { - List> errorList = new ArrayList<>(); - - errorList.add(ValidateResultConverter.setErrorMap("error", (String) resultMap.get("message"))); - - throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList)); + @RequestMapping(value="/updateDlvylc", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateDlvylc(@RequestBody DataMap param) { + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + param.put("mbrInnb", user.getUserInnb()); + param.put("mbrDvCd", user.getMbrDvCd()); + if ("01".equals(user.getSysDvCd())) { + param.put("sopmalCd", user.getSopmalCd()); } + Map message = boOrdrService.updateDlvylc(param); - WnbtResponse response = WnbtResponse.builder().resBody(new WnbtResponseBody(new ObjectMapper().writeValueAsString(resultMap))).build(); + // 배송지 정보 변경 주문 로그 + BOOrderLogVO logVO = new BOOrderLogVO(); + logVO.setOrdrInnb(BigInteger.valueOf(Long.valueOf((String) param.get("ordrInnb")))); + logVO.setSopmalCd((String) param.get("sopmalCd")); + if ("0".equals(message.get("status"))) { + logVO.setLogSj("배송지 정보 변경"); + logVO.setLogDtlCn("배송지 정보 변경을 처리하였습니다."); + } else { + logVO.setLogSj("배송지 정보 변경 실패"); + logVO.setLogDtlCn("배송지 정보 변경을 실패하였습니다."); + } + logVO.setLogDvCd("02"); + if ("01".equals(user.getSysDvCd())) { + logVO.setDvCd("01"); + } else { + logVO.setDvCd("02"); + } + logVO.setOpetrNm(user.getMbrNm()); + boOrdrService.updateDlvylcInfoLogRegist(logVO); - // return ResponseEntity.status(HttpStatus.OK).body(response); - */ - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/updateBODlvylc", param), - ReplyFromResrc::getReply + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/updateBODlvylc", param), +// ReplyFromResrc::getReply +// ); } /** @@ -303,13 +496,15 @@ public class MyOrdrController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectSetleCanclPopupForm") - public String selectSetleCanclPopupForm(HttpServletRequest request,ModelMap model, MyOrdrDlvyVO ordrDlvyVO) throws JsonProcessingException { - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOSetleCanclRefndRegist", ordrDlvyVO), - model, - "data" - ); + public String selectSetleCanclPopupForm(HttpServletRequest request,ModelMap model, BOOrdrVO ordrDlvyVO) throws JsonProcessingException { + Map content = selectBOSetleCanclRefndRegist(ordrDlvyVO); + model.addAttribute("data", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOSetleCanclRefndRegist", ordrDlvyVO), +// model, +// "data" +// ); ObjectMapper objectMapper = new ObjectMapper(); model.addAttribute("adscript", Base64Util.encode(objectMapper.writeValueAsString(model.getAttribute("data")))); @@ -324,31 +519,44 @@ public class MyOrdrController { * @throws JsonProcessingException */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/insertSetleCanclRegist") - public ResponseEntity registSetleCancl(@RequestBody HashMap param) throws JsonProcessingException { + @RequestMapping(value="/insertSetleCanclRegist", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity registSetleCancl(@RequestBody DataMap param) throws JsonProcessingException { + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if ("01".equals(user.getSysDvCd())) { + param.put("sopmalCd", user.getSopmalCd()); + param.put("mbrInnb", user.getUserInnb()); + } else { + param.put("mngrInnb", user.getUserInnb()); + } + param.put("updusr", user.getUserInnb()); + param.put("mbrDvCd", user.getMbrDvCd()); + param.put("userName", user.getMbrNm()); + param.put("mbrNm", user.getMbrNm()); - /** - Map resultMap = responseHandler.handleResponseAsMap( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/insertBOSetleCanclRegist", param) - ); - if ("1".equals(resultMap.get("status"))) { - List> errorList = new ArrayList<>(); + log.debug("반품신청 테스트 param 확인 : {}", param); + Map message = boOrdrService.insertSetleCanclRegist(param); - errorList.add(ValidateResultConverter.setErrorMap("error", (String) resultMap.get("message"))); - - throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList)); + // 회원 사이트정보 갱신 ============================================================== + try { + BOPayVO payVO = new BOPayVO(); + payVO.setSopmalCd(user.getSopmalCd()); + payVO.setMbrInnb(String.valueOf(user.getUserInnb())); + payVO.setMbrDvCd(user.getMbrDvCd()); + boOrdrService.updateMbrSiteUpdtOrdrRefund(payVO); + } catch (Exception e) { + log.error("회원 사이트정보 갱신 실패!"); } - WnbtResponse response = WnbtResponse.builder().resBody(new WnbtResponseBody(new ObjectMapper().writeValueAsString(resultMap))).build(); - - */ - - // return ResponseEntity.status(HttpStatus.OK).body(response); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/insertBOSetleCanclRegist", param), - ReplyFromResrc::getReply + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/insertBOSetleCanclRegist", param), +// ReplyFromResrc::getReply +// ); } /* #################################### 사용자 > 마이페이지 > MY쇼핑 > 주문/배송조회 종료 @@ -363,14 +571,16 @@ public class MyOrdrController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectIndvdlSetleInqire") - public String selectIndvdlSetleInqire(HttpServletRequest request, ModelMap model, MyIndvdlSetleVO indvdlSetleVO) { + public String selectIndvdlSetleInqire(HttpServletRequest request, ModelMap model, BOMbrVO vo) { // 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 ) - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", indvdlSetleVO), - model, - "mpageResultMap" - ); + Map content = selectBOMpageInfoInqire(vo); + model.addAttribute("mpageResultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", indvdlSetleVO), +// model, +// "mpageResultMap" +// ); return Util.getDeviceType(request) + "/mpage/ordr/IndvdlSetleR"; } @@ -381,13 +591,14 @@ public class MyOrdrController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectIndvdlSetleInqireAjax") - public String selectIndvdlSetleInqireAjax(HttpServletRequest request, ModelMap model, MyIndvdlSetleVO indvdlSetleVO) { - - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOIndvdlSetleInqireAjax", indvdlSetleVO), - model, - "data" - ); + public String selectIndvdlSetleInqireAjax(HttpServletRequest request, ModelMap model, BOIndvdlSetleVO indvdlSetleVO) { + Map content = selectBOIndvdlSetleInqireAjax(indvdlSetleVO); + model.addAttribute("data", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOIndvdlSetleInqireAjax", indvdlSetleVO), +// model, +// "data" +// ); return Util.getDeviceType(request) + "/mpage/ordr/IndvdlSetleRList"; } @@ -397,13 +608,18 @@ public class MyOrdrController { * @return ResponseEntity */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/selectIndvdlSetleInqireScrollAjax") - public ResponseEntity selectIndvdlSetleInqireScrollAjax(ModelMap model, MyIndvdlSetleVO indvdlSetleVO) { - - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOIndvdlSetleInqireAjax", indvdlSetleVO), - ReplyFromResrc::getReply + @RequestMapping(value="/selectIndvdlSetleInqireScrollAjax", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity selectIndvdlSetleInqireScrollAjax(ModelMap model, BOIndvdlSetleVO indvdlSetleVO) { + Map content = selectBOIndvdlSetleInqireAjax(indvdlSetleVO); + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOIndvdlSetleInqireAjax", indvdlSetleVO), +// ReplyFromResrc::getReply +// ); } /* #################################### 사용자 > 마이페이지 > MY쇼핑 > 개인결제 종료 @@ -415,14 +631,22 @@ public class MyOrdrController { */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value="/selectDlvyInqire") - public String selectDlvyInqire(MyDlivyVO dlivyVO, ModelMap model, HttpServletRequest request){ + public String selectDlvyInqire(BODlivyVO boDlivyVO, ModelMap model, HttpServletRequest request){ + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + boDlivyVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드 + } + Map content = new HashMap<>(); + content = dlivyService.selectBOOrdrDlvyDtlsInqire(boDlivyVO); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/dlivy/selectBOOrdrDlvyDtlsInqire", dlivyVO), - model, - "resultMap" - ); + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/dlivy/selectBOOrdrDlvyDtlsInqire", dlivyVO), +// model, +// "resultMap" +// ); // return "sopmal/mpage/ordr/DlvyInqireR"; return Util.getDeviceType(request) + "/mpage/ordr/DlvyInqireR"; @@ -435,21 +659,49 @@ public class MyOrdrController { */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value="/selectRtngudCanclRefndForm") - public String selectRtngudCanclRefndForm(MyRefundVO refundVO, ModelMap model, HttpServletRequest request) throws JsonProcessingException { - refundVO.setServerDv("sopmal"); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/Rtngudrefnd/selectBORtngudRefndListInqireForm", refundVO), - model, - "resultMap" - ); - model.addAttribute("paramVO", refundVO); + public String selectRtngudCanclRefndForm(BORtngudrefndVO boRtngudrefndVO, BOMbrVO vo, ModelMap model, HttpServletRequest request) throws JsonProcessingException { + boRtngudrefndVO.setServerDv("sopmal"); + vo.setServerDv("sopmal"); + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + boRtngudrefndVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰코드 + } + + Map content = new HashMap<>(); + // 공통코드 호출 + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + //환불 처리 상태 공통 코드 + bOMaComncdVO.setGroupCd("REFUND_PROCS_STTUS"); + List refndProcsSttus = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + content.put("refndProcsSttus", refndProcsSttus); + //반품 처리 상태 공통 코드 + bOMaComncdVO.setGroupCd("RETURN_PROCS_STTUS"); + List rtngudProcsSttus = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + content.put("rtngudProcsSttus", rtngudProcsSttus); + // 반품 방법 코드 + bOMaComncdVO.setGroupCd("RETURN_MTH"); + List returnMtcCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + content.put("returnMtcCdList", returnMtcCdList); + // Map객체에 필요 정보 할당 + content.put("paramVO", boRtngudrefndVO); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/Rtngudrefnd/selectBORtngudRefndListInqireForm", refundVO), +// model, +// "resultMap" +// ); + model.addAttribute("paramVO", boRtngudrefndVO); // 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 ) - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", refundVO), - model, - "mpageResultMap" - ); + Map content2 = selectBOMpageInfoInqire(vo); + model.addAttribute("mpageResultMap", content2); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", refundVO), +// model, +// "mpageResultMap" +// ); return Util.getDeviceType(request) + "/mpage/ordr/RtngudCanclRefndListFormR"; } @@ -460,13 +712,16 @@ public class MyOrdrController { */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value="/selectRtngudCanclRefndInqire") - public String selectRtngudCanclRefndInqire(MyRefundVO refundVO, ModelMap model, HttpServletRequest request){ + public String selectRtngudCanclRefndInqire(MyRefundVO refundVO, BORtngudrefndSrchVO boRtngudrefndSrchVO, ModelMap model, HttpServletRequest request){ refundVO.setServerDv("sopmal"); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/Rtngudrefnd/selectBOMbrRefundListInqire", refundVO), - model, - "resultMap" - ); + + Map content = selectBOMbrRefundListInqire(boRtngudrefndSrchVO); + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/Rtngudrefnd/selectBOMbrRefundListInqire", refundVO), +// model, +// "resultMap" +// ); model.addAttribute("paramVO", refundVO); // return "sopmal/mpage/ordr/RtngudCanclRefndListR"; @@ -476,18 +731,21 @@ public class MyOrdrController { /** * 마이페이지 > 반품/환불 목록 조회 > 스크롤 - * @param mlgVO - * @param model * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value = "/selectRtngudCanclRefndScrolInqire") - public ResponseEntity selectRtngudCanclRefndScrolInqire(MyRefundVO refundVO) { - refundVO.setServerDv("sopmal"); - return responseHandler.handleMapResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/Rtngudrefnd/selectBOMbrRefundListInqire", refundVO), - result -> ResponseEntity.status(HttpStatus.OK).body(result) + @RequestMapping(value = "/selectRtngudCanclRefndScrolInqire", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity selectRtngudCanclRefndScrolInqire(BORtngudrefndSrchVO boRtngudrefndSrchVO) { + Map content = selectBOMbrRefundListInqire(boRtngudrefndSrchVO); + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() ); +// return responseHandler.handleMapResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/Rtngudrefnd/selectBOMbrRefundListInqire", refundVO), +// result -> ResponseEntity.status(HttpStatus.OK).body(result) +// ); } @@ -497,22 +755,89 @@ public class MyOrdrController { */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value="/selectRtngudCanclRefndDtlInqire") - public String selectRtngudCanclRefndDtlInqire(MyRefundVO refundVO, ModelMap model, HttpServletRequest request){ - refundVO.setServerDv("sopmal"); + public String selectRtngudCanclRefndDtlInqire(BORtngudrefndVO boRtngudrefndVO, BOMbrVO vo, ModelMap model, HttpServletRequest request){ + boRtngudrefndVO.setServerDv("sopmal"); + vo.setServerDv("sopmal"); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/Rtngudrefnd/selectBORtngudRefndDtlInqire", refundVO), - model, - "resultMap" - ); - model.addAttribute("paramVO", refundVO); + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + boRtngudrefndVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰코드 + } + + // 공통코드 호출 + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + bOMaComncdVO.setGroupCd("RETURN_DLVY_PYMNT_TY"); // 반품배송비 지불 타입 코드 + List returnDlvyPymntTyCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("RETURN_RESN_DTL"); // 반품상세사유 + List returnResnDtlCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("RETURN_DLVY_RSPNSBL"); // 반품배송비 지불 책임 코드 + List returnDlvyRspnsbl = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("SETLE_MTH"); // 환불방법 + List refundMth = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("RETURN_PROCS_STTUS"); // 반품 처리상태 코드 + List returnProcsSttusCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("REFUND_PROCS_STTUS"); // 환불 처리상태 코드 + List refundProcsSttusCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + bOMaComncdVO.setGroupCd("RETURN_MTH"); // 반품 방법 코드 : 회수 방법 + List returnMthCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + bOMaComncdVO.setGroupCd("TOSS_BANK_CD"); // TOSS은행코드 + List kcpBankCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + bOMaComncdVO.setGroupCd("TOSS_BANK_CD"); // TOSS은행코드 + List toosBankCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + // 무통장 계좌 정보 + BOSetupNbkkVO boShopSetupVO = new BOSetupNbkkVO(); + boShopSetupVO.setSopmalCd(boRtngudrefndVO.getSopmalCd()); + boShopSetupVO.setUseAt("Y"); + Map setupJson = nbkkService.selectBOSopmalSetupList(boShopSetupVO); + List sopmalSetupVO = (List) setupJson.get("refundAcntSetup"); + log.debug("반품 배송비 계좌 json : {}", sopmalSetupVO); + + // Map객체에 필요 정보 할당 + Map content = new HashMap<>(); + + content.put("result", boRtngudrefndService.selectBORtngudRefndDtlInqire(boRtngudrefndVO)); + content.put("paramVO", boRtngudrefndVO); + content.put("returnDlvyPymntTyCdList", returnDlvyPymntTyCdList); + content.put("returnResnList", returnResnDtlCdList); + content.put("returnDlvyRspnsbl", returnDlvyRspnsbl); + content.put("refundMth", refundMth); + content.put("returnProcsSttusCdList", returnProcsSttusCdList); + content.put("refundProcsSttusCdList", refundProcsSttusCdList); + content.put("returnMthCdList", returnMthCdList); + content.put("bankAccount", sopmalSetupVO); + + Map resultData = (Map) content.get("result"); // TODO : ( 2024-08-22 ) 통장 코드 환불 선택해서 입력 Npay , 에스크로, 페이코 고려되어있지않음 확인시 수정 필요 + DataMap order = new DataMap(); + order = (DataMap) resultData.get("refnd"); + log.debug("order : {} ", order); + if ( order != null && ( "gcpay".equals(order.get("pgCmpnyNm")) || "toss".equals(order.get("pgCmpnyNm")) || "tosspay".equals(order.get("pgCmpnyNm")) ) ) { + content.put("bankCdList", toosBankCdList); + } else if ( order != null && ( "kcp".equals(order.get("pgCmpnyNm")) ) ) { + content.put("bankCdList", kcpBankCdList); + } else { + content.put("bankCdList", toosBankCdList); + } + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/Rtngudrefnd/selectBORtngudRefndDtlInqire", refundVO), +// model, +// "resultMap" +// ); + model.addAttribute("paramVO", boRtngudrefndVO); // 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 ) - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", refundVO), - model, - "mpageResultMap" - ); + Map content2 = selectBOMpageInfoInqire(vo); + model.addAttribute("mpageResultMap", content2); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", refundVO), +// model, +// "mpageResultMap" +// ); return Util.getDeviceType(request) + "/mpage/ordr/RtngudCanclRefndDtlR"; } @@ -522,14 +847,50 @@ public class MyOrdrController { * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value="/updateRtngudCanclRefndUpdt") - public ResponseEntity updateRtngudCanclRefndUpdt(MyRefundVO refundVO, ModelMap model){ - log.debug("ordrVO is {}", refundVO); + @RequestMapping(value="/updateRtngudCanclRefndUpdt", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateRtngudCanclRefndUpdt(BORtngudrefndVO boRtngudrefndVO, ModelMap model){ + log.debug("ordrVO is {}", boRtngudrefndVO); + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + boRtngudrefndVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰코드 + } + boRtngudrefndVO.setRegusr(user.getUserInnb()); // 등록자 + boRtngudrefndVO.setUpdusr(user.getUserInnb()); // 수정자 + boRtngudrefndVO.setMbrDvCd(user.getMbrDvCd()); // 회원 구문 코드 + boRtngudrefndVO.setMbrNm(user.getMbrNm()); // 회원 명 + log.debug("넘겨받은 파라미터 확인 : {}", boRtngudrefndVO); + // 반품 환불 수정 + Map message = new HashMap<>(); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/Rtngudrefnd/updateBOOrderReUpdt", refundVO), - ReplyFromResrc::getReply + message = boRtngudrefndService.updateBOOrderReUpdt(boRtngudrefndVO); + log.debug("환불 저장 컨트롤러 message : {}", message); + // 10. 회원 사이트정보 갱신 ============================================================== + try { + BOPayVO payVO = new BOPayVO(); + if ("01".equals(user.getSysDvCd())) { + payVO.setSopmalCd(user.getSopmalCd()); + payVO.setMbrInnb(String.valueOf(user.getUserInnb())); + payVO.setMbrDvCd(user.getMbrDvCd()); + }else{ + payVO.setSopmalCd(String.valueOf(boRtngudrefndVO.getSopmalCd())); + payVO.setMbrInnb(String.valueOf(boRtngudrefndVO.getSiteMbrInnb())); + payVO.setMbrDvCd(String.valueOf(boRtngudrefndVO.getSiteMbrDvCd())); + } + boOrdrService.updateMbrSiteUpdtOrdrRefund(payVO); + } catch (Exception e) { + log.error("회원 사이트정보 갱신 실패!"); + } + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/Rtngudrefnd/updateBOOrderReUpdt", refundVO), +// ReplyFromResrc::getReply +// ); } @@ -540,13 +901,15 @@ public class MyOrdrController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectRetrunRegistPopupForm") - public String selectRetrunRegistPopupForm(HttpServletRequest request,ModelMap model, MyOrdrDlvyVO ordrDlvyVO) { + public String selectRetrunRegistPopupForm(HttpServletRequest request,ModelMap model, BOOrdrVO ordrDlvyVO) { - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOSetleCanclRefndRegist", ordrDlvyVO), - model, - "data" - ); + Map content = selectBOSetleCanclRefndRegist(ordrDlvyVO); + model.addAttribute("data", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOSetleCanclRefndRegist", ordrDlvyVO), +// model, +// "data" +// ); return Util.getDeviceType(request) + "/mpage/ordr/RefundRegistPopupC"; } @@ -558,23 +921,34 @@ public class MyOrdrController { */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value="/selectGiftListInqireForm") - public String selectGiftListInqireForm(MyOrdrShippingVO ordrShippingVO, ModelMap model, HttpServletRequest request) throws JsonProcessingException { - log.debug("선물함 이동 ordrShippingVO is {}", ordrShippingVO); - model.addAttribute("paramVO", new ObjectMapper().writeValueAsString(ordrShippingVO)); + public String selectGiftListInqireForm(BOOrdrShippingVO ordrSrchVO, BOMbrVO vo, ModelMap model, HttpServletRequest request) throws JsonProcessingException { + log.debug("선물함 이동 ordrShippingVO is {}", ordrSrchVO); + model.addAttribute("paramVO", new ObjectMapper().writeValueAsString(ordrSrchVO)); + Map content = new HashMap<>(); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOUserGiftOrdrListInqireForm", ordrShippingVO), - model, - "resultMap" - ); + // 공통코드 호출 + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + bOMaComncdVO.setGroupCd(""); // + List purchsEvtDvList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + content.put("paramVO", ordrSrchVO); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOUserGiftOrdrListInqireForm", ordrShippingVO), +// model, +// "resultMap" +// ); // model.addAttribute("paramVO", ordrShippingVO); // 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 ) - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", ordrShippingVO), - model, - "mpageResultMap" - ); + Map content2 = selectBOMpageInfoInqire(vo); + model.addAttribute("mpageResultMap", content2); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", ordrShippingVO), +// model, +// "mpageResultMap" +// ); return Util.getDeviceType(request) + "/mpage/ordr/GiftListFormR"; } @@ -586,14 +960,15 @@ public class MyOrdrController { */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value="/selectGiftListInqire") - public String selectGiftListInqire(MyOrdrShippingVO ordrShippingVO, ModelMap model, HttpServletRequest request){ + public String selectGiftListInqire(BOOrdrShippingVO ordrShippingVO, ModelMap model, HttpServletRequest request){ log.debug("ordrShippingVO is {}", ordrShippingVO); - - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOUserGiftOrdrListInqireAjax", ordrShippingVO), - model, - "resultMap" - ); + Map content = selectBOUserGiftOrdrListInqireAjax(ordrShippingVO); + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOUserGiftOrdrListInqireAjax", ordrShippingVO), +// model, +// "resultMap" +// ); return Util.getDeviceType(request) + "/mpage/ordr/GiftListR"; } @@ -605,13 +980,19 @@ public class MyOrdrController { * @return ResponseEntity */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/selectMbrGfitListInqireScrollAjax") - public ResponseEntity selectMbrGfitListInqireScrollAjax(ModelMap model, MyOrdrDlvyVO ordrDlvyVO) { + @RequestMapping(value="/selectMbrGfitListInqireScrollAjax", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity selectMbrGfitListInqireScrollAjax(ModelMap model, BOOrdrShippingVO ordrDlvyVO) { - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOUserGiftOrdrListInqireAjax", ordrDlvyVO), - ReplyFromResrc::getReply + Map content = selectBOUserGiftOrdrListInqireAjax(ordrDlvyVO); + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOUserGiftOrdrListInqireAjax", ordrDlvyVO), +// ReplyFromResrc::getReply +// ); } @@ -621,13 +1002,27 @@ public class MyOrdrController { */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value="/selectGiftOrdrSittnPopupForm") - public String selectGiftOrdrSittnPopupForm(MyOrdrShippingVO ordrShippingVO, ModelMap model, HttpServletRequest request){ - log.debug("ordrShippingVO is {}", ordrShippingVO); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOUserGiftShippSittnPopup", ordrShippingVO), - model, - "resultMap" - ); + public String selectGiftOrdrSittnPopupForm(BOOrdrShippingVO ordrSrchVO, ModelMap model, HttpServletRequest request){ + log.debug("ordrShippingVO is {}", ordrSrchVO); + + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if ("01".equals(user.getSysDvCd())) { + ordrSrchVO.setSopmalCd(user.getSopmalCd()); + } + + Map content = new HashMap<>(); + + List resultList = boOrdrService.selectBOUserGiftShippSittnPopup(ordrSrchVO); + + content.put("resultList", resultList); + content.put("paramVO", ordrSrchVO); + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOUserGiftShippSittnPopup", ordrShippingVO), +// model, +// "resultMap" +// ); return Util.getDeviceType(request) + "/mpage/ordr/GiftOrdrSittnPopupR"; } @@ -639,22 +1034,35 @@ public class MyOrdrController { */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value="/selectWslistInqireForm") - public String selectWslistInqireForm(MyWishVO wishVO, ModelMap model, HttpServletRequest request){ + public String selectWslistInqireForm(BOWishVO wishVO, BOMbrVO vo, ModelMap model, HttpServletRequest request){ wishVO.setServerDv("sopmal"); + vo.setServerDv("sopmal"); + // 사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + wishVO.setSopmalCd(user.getSopmalCd()); + wishVO.setMbrInnb(user.getUserInnb()); + wishVO.setMbrDvCd(user.getMbrDvCd()); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOWslistInqireForm", wishVO), - model, - "resultMap" - ); + // Map객체에 필요 정보 할당 + Map content = new HashMap<>(); + content.put("paramVO", wishVO); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOWslistInqireForm", wishVO), +// model, +// "resultMap" +// ); model.addAttribute("paramVO", wishVO); // 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 ) - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", wishVO), - model, - "mpageResultMap" - ); + Map content2 = selectBOMpageInfoInqire(vo); + model.addAttribute("mpageResultMap", content2); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", wishVO), +// model, +// "mpageResultMap" +// ); return Util.getDeviceType(request) + "/mpage/ordr/WslistInqireRForm"; } @@ -664,12 +1072,9 @@ public class MyOrdrController { * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value="/insertWslistGoods") - public ResponseEntity insertWslistGoods(MyWishVO wishVO, HttpServletRequest request){ - - + @RequestMapping(value="/insertWslistGoods", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity insertWslistGoods(BOWishVO wishVO, HttpServletRequest request){ String agentId = ""; - Cookie[] cookies = request.getCookies(); if(cookies != null){ @@ -678,13 +1083,31 @@ public class MyOrdrController { wishVO.setAgentId(agentId); } } - wishVO.setIp(request.getAttribute("LoggingClientIp").toString()); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/insertBOWslistGoods", wishVO), - ReplyFromResrc::getReply + // 사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + wishVO.setSopmalCd(user.getSopmalCd()); + wishVO.setRegusr(user.getUserInnb()); + wishVO.setUpdusr(user.getUserInnb()); + wishVO.setMbrDvCd(user.getMbrDvCd()); + wishVO.setMbrInnb(user.getUserInnb()); + + DataMap message = service.insertWslistGoods(wishVO); + BOGoodsVO boGoodsVO = new BOGoodsVO(); + boGoodsVO.setGoodsInnb(String.valueOf(wishVO.getGoodsInnb())); + boGoodsVO.setSopmalCd(wishVO.getSopmalCd()); + boGoodsService.updateWslistCnt(boGoodsVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/insertBOWslistGoods", wishVO), +// ReplyFromResrc::getReply +// ); } @@ -694,14 +1117,16 @@ public class MyOrdrController { */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value="/selectWslistInqire") - public String selectWslistInqire(MyWishVO wishVO, ModelMap model, HttpServletRequest request){ + public String selectWslistInqire(BOWishVO wishVO, ModelMap model, HttpServletRequest request){ wishVO.setServerDv("sopmal"); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOWslistInqire", wishVO), - model, - "resultMap" - ); + Map content = selectBOWslistInqire(wishVO); + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOWslistInqire", wishVO), +// model, +// "resultMap" +// ); model.addAttribute("paramVO", wishVO); // return "sopmal/mpage/ordr/WslistInqireR"; @@ -711,19 +1136,23 @@ public class MyOrdrController { /** * 마이페이지 > 위시리스트 목록 조회 > 스크롤 - * @param mlgVO - * @param model * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value = "/selectWslistScrolInqire") - public ResponseEntity selectWslistScrolInqire(MyWishVO wishVO) { + @RequestMapping(value = "/selectWslistScrolInqire", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity selectWslistScrolInqire(BOWishVO wishVO) { wishVO.setServerDv("sopmal"); - return responseHandler.handleMapResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOWslistInqire", wishVO), - result -> ResponseEntity.status(HttpStatus.OK).body(result) + Map content = selectBOWslistInqire(wishVO); + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() ); +// return responseHandler.handleMapResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOWslistInqire", wishVO), +// result -> ResponseEntity.status(HttpStatus.OK).body(result) +// ); } @@ -733,15 +1162,35 @@ public class MyOrdrController { */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value="/selectGoodsOptnSlcPopup") - public String selectGoodsOptnSlcPopup(@RequestBody MyWishVO wishVO, ModelMap model, HttpServletRequest request){ -// ReplyFromResrc reply = sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBORelateGoodsPopup", wishVO); -// model.addAttribute("resultMap", BoResultMapConverter.convert(new ObjectMapper(), reply.getReply())); + public String selectGoodsOptnSlcPopup(@RequestBody BOGoodsVO vo, ModelMap model, HttpServletRequest request){ + //사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + vo.setMbrInnb(String.valueOf(user.getUserInnb())); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBORelateGoodsPopup", wishVO), - model, - "resultMap" - ); + Map content = new HashMap<>(); + DataMap optnList = new DataMap(); + DataMap goodsDtl = new DataMap(); + optnList = boGoodsService.selectBOGoodsOptionList(vo); + goodsDtl = boGoodsService.selectBOGoodsDtlInfo(vo); + + // 장바구니구분코드 + BOMaComncdVO maComncdVO = new BOMaComncdVO(); + maComncdVO.setGroupCd("CART_DV"); + List cartDvList = bOMaComncdService.selectBOCommcdDetailList(maComncdVO); + + content.put("cartDvList", cartDvList); + content.put("goodsDtl", goodsDtl); + content.put("optnList", optnList); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBORelateGoodsPopup", wishVO), +// model, +// "resultMap" +// ); return Util.getDeviceType(request)+"/mpage/ordr/GoodsSlcPopupR"; } @@ -754,40 +1203,72 @@ public class MyOrdrController { * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value="/deleteWslistGoodsDel" , method = RequestMethod.POST) - public ResponseEntity deleteWslistGoodsDel(@Validated MyWishVO wishVO, BindingResult bindingResult ){ + @RequestMapping(value="/deleteWslistGoodsDel" , method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity deleteWslistGoodsDel(@Validated BOWishVO wishVO, BindingResult bindingResult ){ + // 사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + wishVO.setSopmalCd(user.getSopmalCd()); + wishVO.setMbrInnb(user.getUserInnb()); + wishVO.setMbrDvCd(user.getMbrDvCd()); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/deleteBOWslistGoodsDel", wishVO), - ReplyFromResrc::getReply + // 상품 옵션 조회 + Map message = new HashMap<>(); + message = service.deleteBOWslistGoodsDel(wishVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/deleteBOWslistGoodsDel", wishVO), +// ReplyFromResrc::getReply +// ); } /** * 정기 배송 관리 목록 폼 이동 - * @param ordrShippingVO + * @param ordrSrchVO * @param model * @return */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value="/selectFdrmDlvyInqireForm") - public String selectFdrmDlvyInqireForm(MyOrdrShippingVO ordrShippingVO, ModelMap model){ - log.debug("wishVO is {}", ordrShippingVO); + public String selectFdrmDlvyInqireForm(BOOrdrShippingVO ordrSrchVO, BOMbrVO vo, ModelMap model){ + log.debug("wishVO is {}", ordrSrchVO); + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if ("01".equals(user.getSysDvCd())) { + ordrSrchVO.setSopmalCd(user.getSopmalCd()); + } - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOFdrmDlvyForm", ordrShippingVO), - model, - "resultMap" - ); - model.addAttribute("paramVO", ordrShippingVO); + Map content = new HashMap<>(); + + // 공통코드 호출 + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + bOMaComncdVO.setGroupCd("PURCHS_EVT_DV"); // 배송주기 코드 + List dlvyCycleCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + content.put("paramVO", ordrSrchVO); + content.put("dlvyCycleCdList", dlvyCycleCdList); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOFdrmDlvyForm", ordrShippingVO), +// model, +// "resultMap" +// ); + model.addAttribute("paramVO", ordrSrchVO); // 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 ) - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", ordrShippingVO), - model, - "mpageResultMap" - ); + Map content2 = selectBOMpageInfoInqire(vo); + model.addAttribute("resultMap", content2); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", ordrShippingVO), +// model, +// "mpageResultMap" +// ); return "sopmal/mpage/ordr/FdrmDlvyFormR"; } @@ -795,20 +1276,44 @@ public class MyOrdrController { /** * 정기 배송 관리 목록 조회 - * @param ordrShippingVO + * @param ordrSrchVO * @param model * @return */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value="/selectFdrmDlvyInqire") - public String selectFdrmDlvyInqire(MyOrdrShippingVO ordrShippingVO, ModelMap model){ - log.debug("wishVO is {}", ordrShippingVO); + public String selectFdrmDlvyInqire(BOOrdrShippingVO ordrSrchVO, ModelMap model){ + log.debug("wishVO is {}", ordrSrchVO); + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if ("01".equals(user.getSysDvCd())) { + ordrSrchVO.setSopmalCd(user.getSopmalCd()); + } - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOFdrmDlvyInqire", ordrShippingVO), - model, - "resultMap" - ); + Map content = new HashMap<>(); + + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(ordrSrchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(ordrSrchVO.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + + ordrSrchVO.setPaginationInfo(paginationInfo); + ordrSrchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + ordrSrchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + ordrSrchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + List allOrdrList = boOrdrService.selectBOFdrmDlvyInqire(ordrSrchVO); + + content.put("allOrdrList", allOrdrList); + content.put("paramVO", ordrSrchVO); + content.put("paginationInfo", ordrSrchVO.getPaginationInfo()); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOFdrmDlvyInqire", ordrShippingVO), +// model, +// "resultMap" +// ); return "sopmal/mpage/ordr/FdrmDlvyR"; } @@ -822,14 +1327,31 @@ public class MyOrdrController { */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value="/selectFdrmDlvyCycleChngForm") - public String selectFdrmDlvyCycleChngForm(MyOrdrShippingVO ordrShippingVO, ModelMap model){ + public String selectFdrmDlvyCycleChngForm(BOOrdrShippingVO ordrShippingVO, ModelMap model){ log.debug("wishVO is {}", ordrShippingVO); + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if ("01".equals(user.getSysDvCd())) { + ordrShippingVO.setSopmalCd(user.getSopmalCd()); + } - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOFdrmDlvyCycleChngForm", ordrShippingVO), - model, - "resultMap" - ); + Map content = new HashMap<>(); + + // 공통코드 호출 + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + bOMaComncdVO.setGroupCd("DLVY_CYCLE"); // 배송주기 코드 + List dlvyCycleCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + log.debug("DLVY_CYCLE : {}", dlvyCycleCdList); + content.put("paramVO", ordrShippingVO); + content.put("dlvyCycleCdList", dlvyCycleCdList); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOFdrmDlvyCycleChngForm", ordrShippingVO), +// model, +// "resultMap" +// ); return "sopmal/mpage/ordr/FdrmDlvyCycleChngU"; } @@ -841,7 +1363,7 @@ public class MyOrdrController { * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value="/updateFdrmDlvyCycleChng ") + @RequestMapping(value="/updateFdrmDlvyCycleChng ", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity updateFdrmDlvyCycleChng (MyOrdrShippingVO ordrShippingVO){ log.debug("ordrShippingVO is {}", ordrShippingVO); @@ -858,12 +1380,23 @@ public class MyOrdrController { * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value = "/updateCashReceipt") - public ResponseEntity updateCashReceipt(MyOrdrVO vo) { - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/selngpruf/updateCashReceipt", vo), - ReplyFromResrc::getReply + @RequestMapping(value = "/updateCashReceipt", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateCashReceipt(BOSelngprufVO vo) { + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + Map message = boSelngprufService.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 +// ); } @@ -874,13 +1407,277 @@ public class MyOrdrController { * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value = "/updateCashReceiptInfo") - public ResponseEntity updateCashReceiptInfo(MyOrdrVO vo) { - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/selngpruf/updateBOCshRcipt", vo), - ReplyFromResrc::getReply - ); - } - + @RequestMapping(value = "/updateCashReceiptInfo", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateCashReceiptInfo(BOSelngprufVO vo) { + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + vo.setUpdusr(user.getUserInnb()); + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + Map message = boSelngprufService.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 +// ); + } + + + /** + * bo로직 사이트 메인페이지 등급, 마일리지, 쿠폰, 위시리스트, 배송중 정보 조회 + * + */ + public Map selectBOMpageInfoInqire(BOMbrVO vo) { + // 사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + vo.setSopmalCd(user.getSopmalCd()); + vo.setMbrInnb(String.valueOf(user.getUserInnb())); + vo.setMbrDvCd(user.getMbrDvCd()); + + // 상품 옵션 조회 + Map message = new HashMap<>(); + message = service.selectBOMpageInfoInqire(vo); + + BOSiteVO siteVO = new BOSiteVO(); + siteVO.setSopmalCd(vo.getSopmalCd()); + siteVO.setCookieValArr(vo.getCookieValArr()); + + List recentGoods = null; + if (vo.getCookieValArr() != null) { + recentGoods = boSiteService.selectBOMainRecentGoods(siteVO); + message.put("recentGoods", recentGoods); + } + return message; + } + + /** + * 사용자 > 마이페이지 > 주문/배송 조회 + */ + public Map selectBOMbrOrdrListInqireAjax(BOOrdrDlvyVO ordrDlvyVO) { + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if ("01".equals(user.getSysDvCd())) { + ordrDlvyVO.setSopmalCd(user.getSopmalCd()); + } + ordrDlvyVO.setMbrInnb(BigInteger.valueOf(user.getUserInnb())); + ordrDlvyVO.setMbrDvCd(user.getMbrDvCd()); + + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(ordrDlvyVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(ordrDlvyVO.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + + ordrDlvyVO.setPaginationInfo(paginationInfo); + ordrDlvyVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + ordrDlvyVO.setLastIndex(paginationInfo.getLastRecordIndex()); + ordrDlvyVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + ordrDlvyVO.setMbrInnb(BigInteger.valueOf(MemberJwtContextHolder.getMemberInfo().getUserInnb())); + + List resultList = boOrdrService.selectMbrOrdrListInqireAjax(ordrDlvyVO); + + Map content = new HashMap<>(); + + content.put("resultList", resultList); + content.put("paginationInfo", ordrDlvyVO.getPaginationInfo()); + + return content; + } + + /** + * bo로직 관리자 > 주문 > 주문관리 > 전체 주문 조회 > 전체주문상세 조회 > 결제취소/환불신청 정보 조회 + */ + public Map selectBOSetleCanclRefndRegist(BOOrdrVO ordrVO) { + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if ("01".equals(user.getSysDvCd())) { + ordrVO.setSopmalCd(user.getSopmalCd()); + ordrVO.setSysDvCd("S"); // 쇼핑몰 + } else { + ordrVO.setSysDvCd("A"); // 관리자 + } + + Map content = boOrdrService.selectBOSetleCanclRefndRegist(ordrVO); + content.put("mbrInnb", user.getUserInnb()); + + // 공통코드 호출 + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + bOMaComncdVO.setGroupCd("KCP_BANK_CD"); // KCP은행코드 + List kcpBankCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + bOMaComncdVO.setGroupCd("TOSS_BANK_CD"); // TOSS은행코드 + List toosBankCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + DataMap order = (DataMap) content.get("order"); // TODO : ( 2024-08-22 ) 통장 코드 환불 선택해서 입력 Npay , 에스크로, 페이코 고려되어있지않음 확인시 수정 필요 + log.debug("order : {} ", order); + if (order != null && ("gcpay".equals(order.get("pgCmpnyNm")) || "toss".equals(order.get("pgCmpnyNm")) || "tosspay".equals(order.get("pgCmpnyNm")))) { + content.put("bankCdList", toosBankCdList); + } else if (order != null && ("kcp".equals(order.get("pgCmpnyNm")))) { + content.put("bankCdList", kcpBankCdList); + } else { + content.put("bankCdList", toosBankCdList); + } + + + // 무통장 계좌 정보 + BOSetupNbkkVO boShopSetupVO = new BOSetupNbkkVO(); + boShopSetupVO.setSopmalCd(ordrVO.getSopmalCd()); + boShopSetupVO.setUseAt("Y"); + Map setupJson = nbkkService.selectBOSopmalSetupList(boShopSetupVO); + List sopmalSetupVO = (List) setupJson.get("refundAcntSetup"); + log.debug("반품 배송비 계좌 json : {}", sopmalSetupVO); + + content.put("bankAccount", sopmalSetupVO); + + DataMap returnDataMap = new DataMap(); + returnDataMap = dlvyGroupService.selectBOReturnAddressInqire(ordrVO); + + String returnAddress = ""; + returnAddress = returnDataMap.get("rtnlcAdres") + " " + returnDataMap.get("rtnlcDtlAdres"); + content.put("returnAddress", returnAddress); + log.debug("반송지 : {}", content.get("returnAddress")); + + return content; + } + + /** + * bo로직 사용자 > 마이페이지 > MY쇼핑 > 개인결제 목록 조회 + */ + public Map selectBOIndvdlSetleInqireAjax(BOIndvdlSetleVO indvdlSetleVO) { + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if ("01".equals(user.getSysDvCd())) { + indvdlSetleVO.setSopmalCd(user.getSopmalCd()); + } + + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(indvdlSetleVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(indvdlSetleVO.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + + indvdlSetleVO.setPaginationInfo(paginationInfo); + indvdlSetleVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + indvdlSetleVO.setLastIndex(paginationInfo.getLastRecordIndex()); + indvdlSetleVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + indvdlSetleVO.setMbrInnb(new BigInteger(String.valueOf(MemberJwtContextHolder.getMemberInfo().getUserInnb()))); + + List resultList = boOrdrService.selectIndvdlSetleInqireAjax(indvdlSetleVO); + + Map content = new HashMap<>(); + + content.put("resultList", resultList); + content.put("paginationInfo", indvdlSetleVO.getPaginationInfo()); + + return content; + } + + /** + * 반품 환불 목록 조회 ( 사용자 ) + */ + public Map selectBOMbrRefundListInqire(BORtngudrefndSrchVO boRtngudrefndSrchVO) { + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + boRtngudrefndSrchVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰코드 + } + boRtngudrefndSrchVO.setRegusr(user.getUserInnb()); // 등록자 + boRtngudrefndSrchVO.setUpdusr(user.getUserInnb()); // 수정자 + boRtngudrefndSrchVO.setMbrInnb(user.getUserInnb()); // 회원 고유번호 + boRtngudrefndSrchVO.setMbrDvCd(user.getMbrDvCd()); // 회원 구분코드 + + // 페이징 객체 생성 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(boRtngudrefndSrchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(boRtngudrefndSrchVO.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + + // 페이징정보 할당 + boRtngudrefndSrchVO.setPaginationInfo(paginationInfo); + boRtngudrefndSrchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + boRtngudrefndSrchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + boRtngudrefndSrchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + // 목록 조회 + List resultList = null; + resultList = boRtngudrefndService.selectBOMbrRefundListInqire(boRtngudrefndSrchVO); + + // Map객체에 필요 정보 할당 + Map content = new HashMap<>(); + content.put("paramVO", boRtngudrefndSrchVO); + content.put("resultList", resultList); + content.put("paginationInfo", boRtngudrefndSrchVO.getPaginationInfo()); + + return content; + } + + + /** + * bo로직 사용자 > 마이페이지 > 선물함 주문 목록 조회 + */ + public Map selectBOUserGiftOrdrListInqireAjax(BOOrdrShippingVO ordrSrchVO) { + // 작성자 정보 할당 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if ("01".equals(user.getSysDvCd())) { + ordrSrchVO.setSopmalCd(user.getSopmalCd()); + ordrSrchVO.setMbrDvCd(user.getMbrDvCd()); + ordrSrchVO.setMbrInnb(user.getUserInnb()); + } + + Map content = new HashMap<>(); + + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(ordrSrchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(ordrSrchVO.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + + ordrSrchVO.setPaginationInfo(paginationInfo); + ordrSrchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + ordrSrchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + ordrSrchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + List allOrdrList = boOrdrService.selectBOUserGiftOrdrListInqireAjax(ordrSrchVO); + + content.put("allOrdrList", allOrdrList); + content.put("resultList", allOrdrList); + content.put("paramVO", ordrSrchVO); + content.put("paginationInfo", ordrSrchVO.getPaginationInfo()); + + return content; + } + + /** + * 위시리스트 목록 조회 + */ + public Map selectBOWslistInqire(BOWishVO wishVO) { + // 사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + wishVO.setSopmalCd(user.getSopmalCd()); + wishVO.setMbrInnb(user.getUserInnb()); + wishVO.setMbrDvCd(user.getMbrDvCd()); + + // 페이징 객체 생성 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(wishVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(wishVO.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + + // 페이징정보 할당 + wishVO.setPaginationInfo(paginationInfo); + wishVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + wishVO.setLastIndex(paginationInfo.getLastRecordIndex()); + wishVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + // 목록 조회 + List resultList = null; + resultList = service.selectBOWslistInqire(wishVO); + + // Map객체에 필요 정보 할당 + Map content = new HashMap<>(); + content.put("paramVO", wishVO); + content.put("resultList", resultList); + content.put("paginationInfo", wishVO.getPaginationInfo()); + + return content; + } }