From def917ce1f31b6900f92bcd3efe779f2ce16c5f5 Mon Sep 17 00:00:00 2001 From: jazz Date: Tue, 18 Nov 2025 13:36:06 +0900 Subject: [PATCH] =?UTF-8?q?fo=20bo=20=EB=A8=B8=EC=A7=80=EC=9E=91=EC=97=85(?= =?UTF-8?q?admin)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mtng/controller/MaMtngController.java | 302 +++++++++--- .../controller/MaAtmcSndngController.java | 75 ++- .../email/controller/MaEmailController.java | 156 ++++-- .../ntcn/sms/controller/MaSmsController.java | 160 +++++-- .../stl/controller/MaStlMssageController.java | 144 +++++- .../tmplt/controller/MaTmpltController.java | 382 ++++++++++++--- .../controller/MaMarktAnalsController.java | 125 +++-- .../bsnm/controller/MaBsnmController.java | 256 +++++++--- .../domain/admin/store/bsnm/vo/BOBsnmVO.java | 9 + .../controller/MaExtlinkController.java | 221 +++++++-- .../admin/store/extlink/vo/BOMaExtlinkVO.java | 2 + .../controller/MaMbrgradController.java | 130 +++-- .../admin/store/mbrgrad/vo/BOMaMbrgradVO.java | 5 +- .../sopmal/controller/MaSopmalController.java | 443 +++++++++++++++--- .../admin/store/sopmal/vo/BOMaSopmalVO.java | 22 + .../controller/MaSopthemaController.java | 210 ++++++--- .../admin/store/sopthema/vo/BOSopThemaVO.java | 3 + .../stplat/controller/MaStplatController.java | 323 ++++++++++--- .../admin/store/stplat/vo/BOStplatVO.java | 26 +- 19 files changed, 2420 insertions(+), 574 deletions(-) diff --git a/src/main/java/com/wb/domainserver/domain/admin/instcSle/mtng/controller/MaMtngController.java b/src/main/java/com/wb/domainserver/domain/admin/instcSle/mtng/controller/MaMtngController.java index ca6b3a4a..be141360 100644 --- a/src/main/java/com/wb/domainserver/domain/admin/instcSle/mtng/controller/MaMtngController.java +++ b/src/main/java/com/wb/domainserver/domain/admin/instcSle/mtng/controller/MaMtngController.java @@ -1,20 +1,38 @@ package com.wb.domainserver.domain.admin.instcSle.mtng.controller; import com.wb.domainserver.common.msg.GconeMessageSource; +import com.wb.domainserver.common.mvc.tags.ui.pagination.PaginationInfo; +import com.wb.domainserver.common.prop.PaginationProperties; +import com.wb.domainserver.domain.admin.instcSle.mtng.service.BOMaMtngService; +import com.wb.domainserver.domain.admin.instcSle.mtng.vo.BOMaMtngSrchVO; +import com.wb.domainserver.domain.admin.instcSle.mtng.vo.BOMaMtngVO; import com.wb.domainserver.domain.admin.instcSle.mtng.vo.MaMtngSrchVO; import com.wb.domainserver.domain.admin.instcSle.mtng.vo.MaMtngVO; +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.BOMbrAppnVO; +import com.wb.domainserver.domain.gcone.mbr.mbr.vo.BOMbrVO; +import com.wb.domainserver.domain.gcone.ordr.ordr.service.BOOrdrService; import com.wb.domainserver.exception.WnbtRestException; import com.wb.domainserver.response.WnbtResponse; +import com.wb.domainserver.response.WnbtResponseBody; import com.wb.domainserver.response.WnbtWebClientResponseHandler; +import com.wb.domainserver.security.authentication.AnonymousUser; +import com.wb.domainserver.security.authentication.MemberJwtContextHolder; import com.wb.domainserver.security.authorization.annotation.AuthPolicy; import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.util.communicate.RESRC; import com.wb.domainserver.util.communicate.ReplyFromResrc; import com.wb.domainserver.util.communicate.SendToResrc; +import com.wb.domainserver.util.dataaccess.DataMap; import com.wb.domainserver.util.excel.ExcelDownloadUtil; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -58,56 +76,138 @@ public class MaMtngController { @Autowired private GconeMessageSource gconeMessageSource; + + @Autowired + private BOMaMtngService service; + @Autowired + private BOMbrService bombrService; + @Autowired + private BOMaSopmalService maSopmalService; + @Autowired + private BOMaComncdService bOMaComncdService; + @Autowired + private BOCommonService boCommonService; + @Autowired + private PaginationProperties paginationProperties; + + @Autowired + private BOOrdrService boOrdrService; + /** * 부정판매 대상자 목록 조회 - * @param maMtngSrchVO + * @param boMaMtngSrchVO * @param model * @return String */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping("/selectItcSleMtngListInqireForm") - public String selectItcSleMtngListInqireForm(ModelMap model,MaMtngSrchVO maMtngSrchVO) { - //BO에서 API 호출(부정 판매 대상자 검색 폼 코드 조회) - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/instcSle/mtng/selectBOItcSleMtngListInqireForm", maMtngSrchVO), - model, - "resultSrchMap" - ); + public String selectItcSleMtngListInqireForm(ModelMap model, BOMaMtngSrchVO boMaMtngSrchVO) { + /*쇼핑몰*/ + List brand = new ArrayList<>(); + brand = maSopmalService.selectBOSopmalCdNm(); + + /*리셀러지정구분*/ + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + bOMaComncdVO.setGroupCd("RSLR_APPN_DV"); + List appen = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + /*식별기준*/ + bOMaComncdVO.setGroupCd("IDNTFC_STDR"); + List idntfcStdr = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + Map resultMap = new HashMap<>(); + //브랜드 + resultMap.put("brand",brand); + /*리셀러지정구분*/ + resultMap.put("appen",appen); + /*식별기준*/ + resultMap.put("idntfcStdr",idntfcStdr); + resultMap.put("boMaMtngSrchVO",boMaMtngSrchVO); + + model.addAttribute("resultSrchMap", resultMap); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/instcSle/mtng/selectBOItcSleMtngListInqireForm", maMtngSrchVO), +// model, +// "resultSrchMap" +// ); return "admin/instcSle/mtng/MaItcSleMtngListInqireRForm"; } /** * 부정판매 대상자 목록 조회 - * @param maMtngSrchVO + * @param boMaMtngSrchVO * @param model * @return String */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectItcSleMtngListInqire", method = RequestMethod.POST) - public String selectItcSleMtngListInqire(ModelMap model,MaMtngSrchVO maMtngSrchVO) { - //BO 회원 목록조회 API 호출 - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/instcSle/mtng/selectBOItcSleMtngListInqire", maMtngSrchVO), - model, - "resultListMap" - ); - model.addAttribute("mbrSrchVO", maMtngSrchVO); + public String selectItcSleMtngListInqire(ModelMap model,BOMaMtngSrchVO boMaMtngSrchVO) { + + //페이징 처리를 위한 pagination 객체 생성 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(boMaMtngSrchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(boMaMtngSrchVO.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + boMaMtngSrchVO.setPaginationInfo(paginationInfo); + + //페이징 처리를 위한 값 설정 + boMaMtngSrchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + boMaMtngSrchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + boMaMtngSrchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + //시크릿키 set + boMaMtngSrchVO.setSecretKey(boCommonService.selectSecretkey()); + + //부정 판매 대상자 목록 조회 결과 및 페이징정보 넣기 + Map content = new HashMap<>(); + content.put("paginationInfo", boMaMtngSrchVO.getPaginationInfo()); + content.put("boMaMtngSrchVO",boMaMtngSrchVO); + content.put("resultMap", service.selectBOItcSleMtngListInqire(boMaMtngSrchVO)); + + model.addAttribute("resultListMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/instcSle/mtng/selectBOItcSleMtngListInqire", maMtngSrchVO), +// model, +// "resultListMap" +// ); + model.addAttribute("mbrSrchVO", boMaMtngSrchVO); return "admin/instcSle/mtng/MaItcSleMtngListInqireR"; } /** * 엑셀 다운로드 - * @param MaMtngSrchVO + * @param boMaMtngSrchVO * @param response */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value="/selectItcSleMtngListExcelDwld" , method = RequestMethod.POST) - public void selectExcelList(MaMtngSrchVO maMtngSrchVO,HttpServletResponse response) { - maMtngSrchVO.setPageIndex(1); //10000건까지 엑셀 출력 - maMtngSrchVO.setPageUnit(10000); //10000건까지 엑셀 출력 + public void selectExcelList(BOMaMtngSrchVO boMaMtngSrchVO,HttpServletResponse response) { + boMaMtngSrchVO.setPageIndex(1); //10000건까지 엑셀 출력 + boMaMtngSrchVO.setPageUnit(10000); //10000건까지 엑셀 출력 - Map resultMap = responseHandler.handleResponseAsMap( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/instcSle/mtng/selectBOItcSleMtngListInqire",maMtngSrchVO) - ); + //페이징 처리를 위한 pagination 객체 생성 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(boMaMtngSrchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(boMaMtngSrchVO.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + boMaMtngSrchVO.setPaginationInfo(paginationInfo); + + //페이징 처리를 위한 값 설정 + boMaMtngSrchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + boMaMtngSrchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + boMaMtngSrchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + //시크릿키 set + boMaMtngSrchVO.setSecretKey(boCommonService.selectSecretkey()); + + //부정 판매 대상자 목록 조회 결과 및 페이징정보 넣기 + Map resultMap = new HashMap<>(); + resultMap.put("paginationInfo", boMaMtngSrchVO.getPaginationInfo()); + resultMap.put("boMaMtngSrchVO",boMaMtngSrchVO); + resultMap.put("resultMap", service.selectBOItcSleMtngListInqire(boMaMtngSrchVO)); + +// Map resultMap = responseHandler.handleResponseAsMap( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/instcSle/mtng/selectBOItcSleMtngListInqire",maMtngSrchVO) +// ); List> resultMapList = (List>) resultMap.get("resultMap"); List> dataList = new ArrayList<>(); @@ -149,30 +249,46 @@ public class MaMtngController { headerMap.put("registDt", "지정일"); ExcelDownloadUtil.createExcel("injustice_seller_list_" + str, headerMap, dataList, response); } catch (IOException ioe) { + log.error("엑셀다운로드 중 오류가 발생하였습니다.", ioe.getMessage()); throw new WnbtRestException("엑셀다운로드 중 오류가 발생하였습니다."); } catch (Exception e) { - log.error("엑셀다운로드 중 오류가 발생하였습니다.", e); + log.error("엑셀다운로드 중 오류가 발생하였습니다.", e.getMessage()); throw new WnbtRestException("엑셀다운로드 중 오류가 발생하였습니다."); } } /** * 부정판매 대상자 상세 조회 - * @param MaMtngSrchVO + * @param boMaMtngVO * @param model * @return String */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping("/selectItcSleMtngDtlInqire") - public String selectItcSleMtngDtlInqire(ModelMap model, MaMtngVO maMtngVO) { - log.info("부정판매 대상자 고유번호 확인 : {}", maMtngVO.getAppnInnb()); - //BO 회원 목록조회 API 호출 - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/instcSle/mtng/selectBOItcSleMtngDtlInqire", maMtngVO), - model, - "resultFO1" - ); - model.addAttribute("maMtngSrchVO",maMtngVO); + public String selectItcSleMtngDtlInqire(ModelMap model, BOMaMtngVO boMaMtngVO) { + log.info("부정판매 대상자 고유번호 확인 : {}", boMaMtngVO.getAppnInnb()); + BOMbrVO mbrVO = new BOMbrVO(); + + DataMap resultData = new DataMap(); + /*회원고유번호*/ + mbrVO.setMbrInnb(boMaMtngVO.getIdntfcInfo()); + /*회원구분코드*/ + mbrVO.setMbrDvCd(boMaMtngVO.getMbrDvCd()); + /*쇼핑몰코드*/ + mbrVO.setSopmalCd(boMaMtngVO.getSopmalCd()); + resultData = bombrService.selectBOMbrInfoUpdtInqire(mbrVO); + + Map content = new HashMap<>(); + + content.put("mbrInfo", resultData); + + model.addAttribute("resultFO1", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/instcSle/mtng/selectBOItcSleMtngDtlInqire", maMtngVO), +// model, +// "resultFO1" +// ); + model.addAttribute("maMtngSrchVO",boMaMtngVO); return "admin/instcSle/mtng/MaItcSleMtngDtlInqireR"; } @@ -182,12 +298,39 @@ public class MaMtngController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping("/selectItcSleOrdrInfoInqire") - public String selectItcSleOrdrInfoInqire(ModelMap model, MaMtngVO maMtngVO) { - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/instcSle/mtng/selectBOItcSleOrdrInfoInqire", maMtngVO), - model, - "resultFO2" - ); + public String selectItcSleOrdrInfoInqire(ModelMap model, BOMaMtngVO boMaMtngVO) { + log.info("부정 판매 대상 param{} 주문 정보",boMaMtngVO.getIdntfcInfo()); + log.info("부정 판매 대상 param{} 주문 정보",boMaMtngVO.getMbrDvCd()); + Map content = new HashMap<>(); + + //페이징 처리를 위한 pagination 객체 생성 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(boMaMtngVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(boMaMtngVO.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + boMaMtngVO.setPaginationInfo(paginationInfo); + + //페이징 처리를 위한 값 설정 + boMaMtngVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + boMaMtngVO.setLastIndex(paginationInfo.getLastRecordIndex()); + boMaMtngVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + List ordrInfo = new ArrayList<>(); + ordrInfo = service.selectBOItcSleOrdrInfoInqire(boMaMtngVO); + + //부정 판매 대상자 목록 조회 결과 및 페이징정보 넣기 + content.put("paginationInfo", boMaMtngVO.getPaginationInfo()); + + content.put("boMaMtngVO", boMaMtngVO); + + content.put("ordrInfo", ordrInfo); + + model.addAttribute("resultFO2", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/instcSle/mtng/selectBOItcSleOrdrInfoInqire", maMtngVO), +// model, +// "resultFO2" +// ); return "admin/instcSle/mtng/MaItcSleOrdrInfoInqireR"; } @@ -197,28 +340,79 @@ public class MaMtngController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping("/selectItcSleHistInfoInqire") - public String selectItcSleHistInfoInqire(ModelMap model, MaMtngVO maMtngVO) { - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/instcSle/mtng/selectBOItcSleHistInfoInqire", maMtngVO), - model, - "resultFO3" - ); + public String selectItcSleHistInfoInqire(ModelMap model, BOMaMtngVO boMaMtngVO) { + + log.debug("부정 판매 대상 지정 이력 정보 param{}",boMaMtngVO.getAppnInnb()); + Map content = new HashMap<>(); + + //페이징 처리를 위한 pagination 객체 생성 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(boMaMtngVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(boMaMtngVO.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + boMaMtngVO.setPaginationInfo(paginationInfo); + + //페이징 처리를 위한 값 설정 + boMaMtngVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + boMaMtngVO.setLastIndex(paginationInfo.getLastRecordIndex()); + boMaMtngVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + //부정 판매 대상자 목록 조회 결과 및 페이징정보 넣기 + content.put("paginationInfo", boMaMtngVO.getPaginationInfo()); + + content.put("histInfo", service.selectBOItcSleHistInfoInqire(boMaMtngVO)); + + content.put("boMaMtngVO", boMaMtngVO); + + model.addAttribute("resultFO3", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/instcSle/mtng/selectBOItcSleHistInfoInqire", maMtngVO), +// model, +// "resultFO3" +// ); return "admin/instcSle/mtng/MaItcSleHistInfoInqireR"; } /** * 일반, 블랙리스트, 화이트리스트 변경. - * @parmam maMtngVO + * @parmam boMbrAppnVO */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping("/updateMbrRslrList") - public ResponseEntity updateMbrRslrList(ModelMap model, MaMtngVO maMtngVO) { - log.info("appnInnb is {}", maMtngVO.getAppnInnb()); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/instcSle/mtng/updateBOMbrRslrList", maMtngVO), - ReplyFromResrc::getReply + @RequestMapping(value="/updateMbrRslrList", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateMbrRslrList(ModelMap model, BOMbrAppnVO boMbrAppnVO) { + log.info("appnInnb is {}", boMbrAppnVO.getAppnInnb()); + + log.info("updateBOMbrRslrList(boMbrAppnVO = {})", boMbrAppnVO.getAppnDvCd()); + + Map content = new HashMap<>(); + + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); +// boMbrAppnVO.setRegusr(user.getUserInnb()); + boMbrAppnVO.setUpdusr(user.getUserInnb()); + + log.info("getId = {}", user.getId()); + log.info("getUserInnb = {}", user.getUserInnb()); + log.info("getMbrId = {}", user.getMbrId()); + + +// if(StringUtil.isEmpty(boMbrAppnVO.getSopmalCd())){ +// boMbrAppnVO.setSopmalCd(user.getSopmalCd()); +// } + String secretKey = boCommonService.selectSecretkey(); + boMbrAppnVO.setSecretKey(secretKey); + + content = service.updateBOMbrRslrList(boMbrAppnVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/instcSle/mtng/updateBOMbrRslrList", maMtngVO), +// ReplyFromResrc::getReply +// ); } diff --git a/src/main/java/com/wb/domainserver/domain/admin/ntcn/atmcsndng/controller/MaAtmcSndngController.java b/src/main/java/com/wb/domainserver/domain/admin/ntcn/atmcsndng/controller/MaAtmcSndngController.java index 9c753f5a..1d600347 100644 --- a/src/main/java/com/wb/domainserver/domain/admin/ntcn/atmcsndng/controller/MaAtmcSndngController.java +++ b/src/main/java/com/wb/domainserver/domain/admin/ntcn/atmcsndng/controller/MaAtmcSndngController.java @@ -1,19 +1,28 @@ package com.wb.domainserver.domain.admin.ntcn.atmcsndng.controller; import com.wb.domainserver.common.msg.GconeMessageSource; +import com.wb.domainserver.domain.admin.ntcn.atmcsndng.service.BOMaAtmcSndngService; +import com.wb.domainserver.domain.admin.ntcn.atmcsndng.vo.BOMaAtmcSndngVO; import com.wb.domainserver.domain.admin.ntcn.atmcsndng.vo.MaAtmcSndngVO; import com.wb.domainserver.domain.mngr.ntcn.atmcsndng.vo.AtmcSndngVO; import com.wb.domainserver.exception.WnbtRestException; +import com.wb.domainserver.exception.code.ErrorCode; import com.wb.domainserver.response.WnbtResponse; +import com.wb.domainserver.response.WnbtResponseBody; import com.wb.domainserver.response.WnbtWebClientResponseHandler; +import com.wb.domainserver.security.authentication.AnonymousUser; +import com.wb.domainserver.security.authentication.MemberJwtContextHolder; import com.wb.domainserver.security.authorization.annotation.AuthPolicy; import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.util.communicate.RESRC; import com.wb.domainserver.util.communicate.ReplyFromResrc; import com.wb.domainserver.util.communicate.SendToResrc; import com.wb.domainserver.util.communicate.ValidateResultConverter; +import com.wb.domainserver.util.dataaccess.DataMap; +import com.wb.domainserver.util.string.StringUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -22,6 +31,8 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; +import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -57,6 +68,9 @@ public class MaAtmcSndngController { @Autowired private GconeMessageSource gconeMessageSource; + @Autowired + private BOMaAtmcSndngService service; + /** * 자동 발송 관리 페이지 * @return String @@ -74,15 +88,37 @@ public class MaAtmcSndngController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectAtmcSndngManageListInqire") - public String selectAtmcSndngManageListInqire(MaAtmcSndngVO vo, ModelMap model) { + public String selectAtmcSndngManageListInqire(BOMaAtmcSndngVO vo, ModelMap model) { log.debug("자동 발송 관리 진입 =>{}", vo); try { - Map resultMap = responseHandler.handleResponseAsMap( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/atmcsndng/selectBOAtmcSndngManageListInqire", vo) - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + vo.setFormDvCd("FORM_DV_"); + + //시스템 02 + vo.setMngrDv("02"); + + Map resultMap = new HashMap<>(); + //검색 폼 code + List sopmal = service.selectBOSopmalAtmcSndng(); + resultMap.put("sopmal",sopmal); + //초기 쇼핑몰 코드 없을 경우 목록의 첫번째 입력 + if("".equals(StringUtil.isNullToString(vo.getSopmalCd()))) { + vo.setSopmalCd(StringUtil.isNullToString(sopmal.get(0).get("sopmalCd"))); + } + resultMap.put("bOAtmcSndngVO", vo); + resultMap.put("boCtrlMap", service.selectBOAtmcSndngManageListInqire(vo)); + resultMap.put("shopAtmcSndntTme", service.selectBOShopAtmcSndngTme(vo)); + +// Map resultMap = responseHandler.handleResponseAsMap( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/atmcsndng/selectBOAtmcSndngManageListInqire", vo) +// ); model.addAttribute("resultListMap", resultMap.get("boCtrlMap")); model.addAttribute("bOAtmcSndngVO",resultMap.get("bOAtmcSndngVO")); @@ -91,9 +127,11 @@ public class MaAtmcSndngController { model.addAttribute("shopAtmcSndntTme", resultMap.get("shopAtmcSndntTme")); } catch (WnbtRestException wre){ - throw new WnbtRestException(wre.getMessage()); + log.error(wre.getMessage(), wre); + throw new WnbtRestException(ErrorCode.INTERNAL_SERVER_ERROR); } catch (Exception e) { log.error(e.getMessage(), e); + throw new WnbtRestException(ErrorCode.INTERNAL_SERVER_ERROR); } return "admin/ntcn/atmcsndng/MaAtmcSndngListR"; @@ -101,23 +139,36 @@ public class MaAtmcSndngController { /** * 자동 발송 관리 페이지 > 자동 발송 관리 - 자동 발송 관리 수정 - * @param vo + * @param boAtmcSndngVO * @param bindingResult 바인딩 및 정합성 점검결과 객체 * @return ResponseEntity */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value="/updateAtmcSndngManage", method = RequestMethod.POST) - public ResponseEntity updateAtmcSndngManage(@Validated AtmcSndngVO atmcSndngVO, BindingResult bindingResult){ + @RequestMapping(value="/updateAtmcSndngManage", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateAtmcSndngManage(@Validated BOMaAtmcSndngVO boAtmcSndngVO, BindingResult bindingResult){ - log.debug("자동 발송 관리 수정 FO 파라미터 vo =>{}", atmcSndngVO); + log.debug("자동 발송 관리 수정 FO 파라미터 vo =>{}", boAtmcSndngVO); if(bindingResult.hasErrors()) { throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); } + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/atmcsndng/updateBOAtmcSndngManageUpdt", atmcSndngVO), - ReplyFromResrc::getReply + if("01".equals(user.getSysDvCd())){ + boAtmcSndngVO.setSopmalCd(user.getSopmalCd()); + } + + Map message = new HashMap<>(); + message = service.updateBOAtmcSndngManageUpdt(boAtmcSndngVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/atmcsndng/updateBOAtmcSndngManageUpdt", atmcSndngVO), +// ReplyFromResrc::getReply +// ); } diff --git a/src/main/java/com/wb/domainserver/domain/admin/ntcn/email/controller/MaEmailController.java b/src/main/java/com/wb/domainserver/domain/admin/ntcn/email/controller/MaEmailController.java index cacd5f9b..4facabc8 100644 --- a/src/main/java/com/wb/domainserver/domain/admin/ntcn/email/controller/MaEmailController.java +++ b/src/main/java/com/wb/domainserver/domain/admin/ntcn/email/controller/MaEmailController.java @@ -1,12 +1,20 @@ package com.wb.domainserver.domain.admin.ntcn.email.controller; +import com.wb.domainserver.common.mvc.tags.ui.pagination.PaginationInfo; +import com.wb.domainserver.common.prop.PaginationProperties; +import com.wb.domainserver.domain.admin.ntcn.email.service.BOMaEmailService; +import com.wb.domainserver.domain.admin.ntcn.email.vo.BOMaEmailSrchVO; import com.wb.domainserver.domain.admin.ntcn.email.vo.MaEmailSrchVO; +import com.wb.domainserver.domain.admin.store.sopmal.service.BOMaSopmalService; +import com.wb.domainserver.domain.gcone.common.service.BOCommonService; import com.wb.domainserver.exception.WnbtRestException; import com.wb.domainserver.response.WnbtWebClientResponseHandler; +import com.wb.domainserver.security.authentication.MemberJwtContextHolder; import com.wb.domainserver.security.authorization.annotation.AuthPolicy; import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.util.communicate.RESRC; import com.wb.domainserver.util.communicate.SendToResrc; +import com.wb.domainserver.util.dataaccess.DataMap; import com.wb.domainserver.util.excel.ExcelDownloadUtil; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; @@ -49,62 +57,139 @@ public class MaEmailController { private SendToResrc sendToResrc; /** 공통 메시지 처리를 위한 메시지 객체 */ + @Autowired + private BOMaEmailService service; + @Autowired + private BOMaSopmalService maSopmalService; + @Autowired + private PaginationProperties paginationProperties; + @Autowired + private BOCommonService boCommonService; + /** * 이메일 발송 내역 페이지(폼) * @param model - * @param maEmailSrchVO + * @param bOMaEmailSrchVO * @return String */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping("/selectEmailSndngDtlsListInqireForm") - public String selectEmailSndngDtlsListInqireForm(ModelMap model, MaEmailSrchVO maEmailSrchVO) { - //BO에서 API 호출(이메일 발송내 목록 조회) - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/email/selectBOMaEmailSndngListInqireForm", maEmailSrchVO), - model, - "resultSrchMap" - ); + public String selectEmailSndngDtlsListInqireForm(ModelMap model, BOMaEmailSrchVO bOMaEmailSrchVO) { + Map resultMap = new HashMap<>(); + List code = null; + //검색 폼 paramVO + code = maSopmalService.selectBOSopmalCdNm(); + //검색 폼 code + resultMap.put("bOMaEmailSrchVO",bOMaEmailSrchVO); + resultMap.put("code", code); + + model.addAttribute("resultSrchMap", resultMap); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/email/selectBOMaEmailSndngListInqireForm", maEmailSrchVO), +// model, +// "resultSrchMap" +// ); return "admin/ntcn/email/MaEmailSndngDtlsListInqireRForm"; } /** * 이메일 발송 내역 - 리스트 조회 * @param model - * @param maEmailSrchVO + * @param bOMaEmailSrchVO * @return String */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping("/selectEmailSndngDtlsListInqire") - public String selectEmailSndngDtlsListInqire(ModelMap model, MaEmailSrchVO maEmailSrchVO) { + public String selectEmailSndngDtlsListInqire(ModelMap model, BOMaEmailSrchVO bOMaEmailSrchVO) { //BO 이메일 발송내 목록 조회 API 호출 try { - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/email/selectBOMaEmailSndngListInqire", maEmailSrchVO), - model, - "resultListMap" - ); - model.addAttribute("emailSrchVO",maEmailSrchVO); + String srchShop = bOMaEmailSrchVO.getSrchShop(); + if (srchShop == null) { + bOMaEmailSrchVO.setSrchShop(MemberJwtContextHolder.getMemberInfo().getSopmalCd()); + } else if (srchShop.equals("ALL")) { + bOMaEmailSrchVO.setSrchShop(null); + } + Map content = new HashMap<>(); + //페이징 처리를 위한 pagination 객체 생성 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(bOMaEmailSrchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(bOMaEmailSrchVO.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + bOMaEmailSrchVO.setPaginationInfo(paginationInfo); + + //페이징 처리를 위한 값 설정 + bOMaEmailSrchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + bOMaEmailSrchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + bOMaEmailSrchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + //시크릿 키 설정 + String secretKey = boCommonService.selectSecretkey(); + bOMaEmailSrchVO.setSecretKey(secretKey); + + //이메일 발송 내역 조회 결과 및 페이징정보 넣기 + content.put("paginationInfo", bOMaEmailSrchVO.getPaginationInfo()); + content.put("boCtrlMap", service.selectBOMaEmailSndngListInqire(bOMaEmailSrchVO)); + content.put("BOMaEmailSrchVO", bOMaEmailSrchVO); + + model.addAttribute("resultSrchMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/email/selectBOMaEmailSndngListInqire", maEmailSrchVO), +// model, +// "resultListMap" +// ); + model.addAttribute("emailSrchVO",bOMaEmailSrchVO); } catch (WnbtRestException wre){ + log.error(wre.getMessage(), wre); throw new WnbtRestException(wre.getMessage()); } catch (Exception e) { log.error(e.getMessage(), e); + throw new WnbtRestException(e.getMessage()); } return "admin/ntcn/email/MaEmailSndngDtlsListInqireR"; } /** * 이메일 발송 내역 - 엑셀 다운로드 - * @param maEmailSrchVO + * @param bOMaEmailSrchVO * @param response */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectEmailSndngDtlsListExcelDwld" , method = RequestMethod.POST) - public void selectEmailSndngDtlsListExcelDwld(MaEmailSrchVO maEmailSrchVO, HttpServletResponse response) { - maEmailSrchVO.setPageIndex(1); //10000건까지 엑셀 출력 - maEmailSrchVO.setPageUnit(10000); //10000건까지 엑셀 출력 - Map resultMap = responseHandler.handleResponseAsMap( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/email/selectBOMaEmailSndngListInqire",maEmailSrchVO) - ); + public void selectEmailSndngDtlsListExcelDwld(BOMaEmailSrchVO bOMaEmailSrchVO, HttpServletResponse response) { + bOMaEmailSrchVO.setPageIndex(1); //10000건까지 엑셀 출력 + bOMaEmailSrchVO.setPageUnit(10000); //10000건까지 엑셀 출력 + + String srchShop = bOMaEmailSrchVO.getSrchShop(); + if (srchShop == null) { + bOMaEmailSrchVO.setSrchShop(MemberJwtContextHolder.getMemberInfo().getSopmalCd()); + } else if (srchShop.equals("ALL")) { + bOMaEmailSrchVO.setSrchShop(null); + } + Map resultMap = new HashMap<>(); + //페이징 처리를 위한 pagination 객체 생성 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(bOMaEmailSrchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(bOMaEmailSrchVO.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + bOMaEmailSrchVO.setPaginationInfo(paginationInfo); + + //페이징 처리를 위한 값 설정 + bOMaEmailSrchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + bOMaEmailSrchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + bOMaEmailSrchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + //시크릿 키 설정 + String secretKey = boCommonService.selectSecretkey(); + bOMaEmailSrchVO.setSecretKey(secretKey); + + //이메일 발송 내역 조회 결과 및 페이징정보 넣기 + resultMap.put("paginationInfo", bOMaEmailSrchVO.getPaginationInfo()); + resultMap.put("boCtrlMap", service.selectBOMaEmailSndngListInqire(bOMaEmailSrchVO)); + resultMap.put("BOMaEmailSrchVO", bOMaEmailSrchVO); + +// Map resultMap = responseHandler.handleResponseAsMap( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/email/selectBOMaEmailSndngListInqire",maEmailSrchVO) +// ); List> resultMapList = new ArrayList<>(); if(resultMap != null) { @@ -162,18 +247,27 @@ public class MaEmailController { /** * 이메일 발송 내역 - 리스트 조회 > 이메일 상세 조회 팝업 (발신 정보) * @param model - * @param maEmailSrchVO + * @param bOMaEmailSrchVO * @return String */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping("/selectEmailSndngDtlPopup") - public String selectEmailSndngDtlPopup(ModelMap model, MaEmailSrchVO maEmailSrchVO) { - //BO에서 API 호출(이메일 발송내 목록 조회) - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/email/selectBOMaEmailSndngDtlInfo", maEmailSrchVO), - model, - "resultMapDtl" - ); + public String selectEmailSndngDtlPopup(ModelMap model, BOMaEmailSrchVO bOMaEmailSrchVO) { + + Map content = new HashMap<>(); + + //시크릿 키 설정 + String secretKey = boCommonService.selectSecretkey(); + bOMaEmailSrchVO.setSecretKey(secretKey); + + content.put("boCtrlMap", service.selectBOMaEmailSndngDtlInfo(bOMaEmailSrchVO)); + + model.addAttribute("resultMapDtl", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/email/selectBOMaEmailSndngDtlInfo", maEmailSrchVO), +// model, +// "resultMapDtl" +// ); return "admin/ntcn/email/MaEmailSndngDtlPopupR"; } diff --git a/src/main/java/com/wb/domainserver/domain/admin/ntcn/sms/controller/MaSmsController.java b/src/main/java/com/wb/domainserver/domain/admin/ntcn/sms/controller/MaSmsController.java index 4cd1ac06..7672adc1 100644 --- a/src/main/java/com/wb/domainserver/domain/admin/ntcn/sms/controller/MaSmsController.java +++ b/src/main/java/com/wb/domainserver/domain/admin/ntcn/sms/controller/MaSmsController.java @@ -1,14 +1,25 @@ package com.wb.domainserver.domain.admin.ntcn.sms.controller; import com.wb.domainserver.common.msg.GconeMessageSource; +import com.wb.domainserver.common.mvc.tags.ui.pagination.PaginationInfo; +import com.wb.domainserver.common.prop.PaginationProperties; +import com.wb.domainserver.domain.admin.ntcn.mssage.service.BOMaMssageService; +import com.wb.domainserver.domain.admin.ntcn.mssage.vo.BOMaMssageSrchVO; import com.wb.domainserver.domain.admin.ntcn.sms.vo.MaSmsSrchVO; +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.mngr.ntcn.mssage.vo.MssageSrchVO; import com.wb.domainserver.exception.WnbtRestException; import com.wb.domainserver.response.WnbtWebClientResponseHandler; +import com.wb.domainserver.security.authentication.AnonymousUser; +import com.wb.domainserver.security.authentication.MemberJwtContextHolder; import com.wb.domainserver.security.authorization.annotation.AuthPolicy; import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.util.communicate.RESRC; import com.wb.domainserver.util.communicate.SendToResrc; +import com.wb.domainserver.util.dataaccess.DataMap; import com.wb.domainserver.util.excel.ExcelDownloadUtil; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; @@ -52,20 +63,56 @@ public class MaSmsController { @Autowired private GconeMessageSource gconeMessageSource; + + @Autowired + private BOMaMssageService service; + + @Autowired + private PaginationProperties paginationProperties; + + @Autowired + private BOMaComncdService bOMaComncdService; + + @Autowired + private BOMaSopmalService maSopmalService; + + @Autowired + private BOCommonService boCommonService; + /** * 문자메시지 발송 목록 조회 폼 - * @param MssageSrchVO + * @param boMaMssageSrchVO * @return MaSmsSndngDtlsListInqireRForm.jsp */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping("/selectSmsSndngDtlsListInqireForm") - public String selectSmsSndngDtlsListInqireForm(ModelMap model, MssageSrchVO mssageSrchVO) { - //BO에서 API 호출 - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/mssage/selectBOSmsSndngDtlsListInqireForm", mssageSrchVO), - model, - "resultMap" - ); + public String selectSmsSndngDtlsListInqireForm(ModelMap model, BOMaMssageSrchVO boMaMssageSrchVO) { + Map resultMap = new HashMap<>(); + + //브랜드코드 + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + + //메시지 종류 + bOMaComncdVO.setGroupCd("SMS_SNDNG_KND"); + List sms = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + //발송상태 + bOMaComncdVO.setGroupCd("SMS_SNDNG_STTUS"); + List smsTy = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + //검색 폼 code + resultMap.put("brand",maSopmalService.selectBOSopmalCdNm()); + resultMap.put("sms",sms); + resultMap.put("smsTy",smsTy); + resultMap.put("boMaMssageSrchVO",boMaMssageSrchVO); + resultMap.put("code",service.selectBOSmsSndngDtlsListInqireForm()); + + model.addAttribute("resultMap", resultMap); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/mssage/selectBOSmsSndngDtlsListInqireForm", mssageSrchVO), +// model, +// "resultMap" +// ); return "admin/ntcn/sms/MaSmsSndngDtlsListInqireRForm"; } @@ -76,16 +123,41 @@ public class MaSmsController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping("/selectSmsSndngDtlsListInqire") - public String selectSmsSndngDtlsListInqire(ModelMap model, MaSmsSrchVO maSmsSrchVO) { + public String selectSmsSndngDtlsListInqire(ModelMap model, BOMaMssageSrchVO bOMaMssageSrchVO) { //BO 문자메시지 발송 내역 조회 API 호출 try { - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/mssage/selectBOSmsSndngListInqire", maSmsSrchVO), - model, - "resultListMap" - ); - model.addAttribute("maSmsSrchVO", maSmsSrchVO); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + bOMaMssageSrchVO.setRegusr(user.getUserInnb()); + bOMaMssageSrchVO.setUpdusr(user.getUserInnb()); + + DataMap content = new DataMap(); + //페이징 처리를 위한 pagination 객체 생성 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(bOMaMssageSrchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(bOMaMssageSrchVO.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + bOMaMssageSrchVO.setPaginationInfo(paginationInfo); + + //페이징 처리를 위한 값 설정 + bOMaMssageSrchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + bOMaMssageSrchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + bOMaMssageSrchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + bOMaMssageSrchVO.setSecretKey(boCommonService.selectSecretkey()); + + //메시지 발송 목록 조회 결과 및 페이징정보 넣기 + content.put("paginationInfo", bOMaMssageSrchVO.getPaginationInfo()); + content.put("mssageMap", service.selectBOSmsSndngListInqire(bOMaMssageSrchVO)); + content.put("bOMaMssageSrchVO", bOMaMssageSrchVO); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/mssage/selectBOSmsSndngListInqire", maSmsSrchVO), +// model, +// "resultListMap" +// ); + model.addAttribute("maSmsSrchVO", bOMaMssageSrchVO); } catch (WnbtRestException wre){ throw new WnbtRestException(wre.getMessage()); } catch (Exception e) { @@ -101,31 +173,59 @@ public class MaSmsController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping("/selectSmsSndngDtlPopup") - public String selectSmsSndngDtlPopup(ModelMap model, MssageSrchVO mssageSrchVO) { - log.debug("메시지 상세 조회 팝업 param =>{}", mssageSrchVO); + public String selectSmsSndngDtlPopup(ModelMap model, BOMaMssageSrchVO bOMaMssageSrchVO) { + log.debug("메시지 상세 조회 팝업 param =>{}", bOMaMssageSrchVO); - //BO에서 API 호출 - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/mssage/selectBOSmsSndngDtlInfo", mssageSrchVO), - model, - "resultMap" - ); + Map content = new HashMap<>(); + content.put("mssageDtlMap", service.selectBOSmsSndngDtlInfo(bOMaMssageSrchVO)); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/mssage/selectBOSmsSndngDtlInfo", mssageSrchVO), +// model, +// "resultMap" +// ); return "admin/ntcn/sms/MaSmsSndngDtlPopupR"; } /** * 엑셀 다운로드 - * @param MssageSrchVO + * @param bOMaMssageSrchVO * @param response */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value="/selectSmsSndngDtlsListExcelDwld" , method = RequestMethod.POST) - public void selectSmsSndngDtlsListExcelDwld(MssageSrchVO mssageSrchVO,HttpServletResponse response) { - mssageSrchVO.setPageIndex(1); //10000건까지 엑셀 출력 - mssageSrchVO.setPageUnit(10000); //10000건까지 엑셀 출력 - Map resultMap = responseHandler.handleResponseAsMap( - sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/mssage/selectBOSmsSndngListInqire",mssageSrchVO) - ); + public void selectSmsSndngDtlsListExcelDwld(BOMaMssageSrchVO bOMaMssageSrchVO,HttpServletResponse response) { + bOMaMssageSrchVO.setPageIndex(1); //10000건까지 엑셀 출력 + bOMaMssageSrchVO.setPageUnit(10000); //10000건까지 엑셀 출력 + + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + bOMaMssageSrchVO.setRegusr(user.getUserInnb()); + bOMaMssageSrchVO.setUpdusr(user.getUserInnb()); + + DataMap resultMap = new DataMap(); + //페이징 처리를 위한 pagination 객체 생성 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(bOMaMssageSrchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(bOMaMssageSrchVO.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + bOMaMssageSrchVO.setPaginationInfo(paginationInfo); + + //페이징 처리를 위한 값 설정 + bOMaMssageSrchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + bOMaMssageSrchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + bOMaMssageSrchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + bOMaMssageSrchVO.setSecretKey(boCommonService.selectSecretkey()); + + //메시지 발송 목록 조회 결과 및 페이징정보 넣기 + resultMap.put("paginationInfo", bOMaMssageSrchVO.getPaginationInfo()); + resultMap.put("mssageMap", service.selectBOSmsSndngListInqire(bOMaMssageSrchVO)); + resultMap.put("bOMaMssageSrchVO", bOMaMssageSrchVO); + +// Map resultMap = responseHandler.handleResponseAsMap( +// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/mssage/selectBOSmsSndngListInqire",mssageSrchVO) +// ); List> resultMapList = new ArrayList<>(); if(resultMap != null) { diff --git a/src/main/java/com/wb/domainserver/domain/admin/ntcn/stl/controller/MaStlMssageController.java b/src/main/java/com/wb/domainserver/domain/admin/ntcn/stl/controller/MaStlMssageController.java index 21860d39..f0b4eaf7 100644 --- a/src/main/java/com/wb/domainserver/domain/admin/ntcn/stl/controller/MaStlMssageController.java +++ b/src/main/java/com/wb/domainserver/domain/admin/ntcn/stl/controller/MaStlMssageController.java @@ -1,13 +1,23 @@ package com.wb.domainserver.domain.admin.ntcn.stl.controller; import com.wb.domainserver.common.msg.GconeMessageSource; +import com.wb.domainserver.common.mvc.tags.ui.pagination.PaginationInfo; +import com.wb.domainserver.common.prop.PaginationProperties; +import com.wb.domainserver.domain.admin.ntcn.stl.service.BOMaStlMssageService; +import com.wb.domainserver.domain.admin.ntcn.stl.vo.BOMaStlMssageVO; import com.wb.domainserver.domain.admin.ntcn.stl.vo.MaStlMssageVO; +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.exception.WnbtRestException; import com.wb.domainserver.response.WnbtWebClientResponseHandler; +import com.wb.domainserver.security.authentication.AnonymousUser; +import com.wb.domainserver.security.authentication.MemberJwtContextHolder; import com.wb.domainserver.security.authorization.annotation.AuthPolicy; import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.util.communicate.RESRC; import com.wb.domainserver.util.communicate.SendToResrc; +import com.wb.domainserver.util.dataaccess.DataMap; import com.wb.domainserver.util.excel.ExcelDownloadUtil; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; @@ -54,19 +64,70 @@ public class MaStlMssageController { @Autowired private GconeMessageSource gconeMessageSource; + @Autowired + private BOMaStlMssageService service; + + @Autowired + private PaginationProperties paginationProperties; + + @Autowired + private BOMaComncdService bOMaComncdService; + /** * 메세지 정산 조회 폼 * @return */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectMaStlMssageListInqireRForm") - public String selectMaStlMssageListInqireRForm(MaStlMssageVO vo, ModelMap model){ + public String selectMaStlMssageListInqireRForm(BOMaStlMssageVO vo, ModelMap model){ + //사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("04".equals(user.getSysDvCd())){ + vo.setStrInnb(String.valueOf(user.getUserInnb())); + } + vo.setSopmalCd(user.getReprsntBrand()); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/stl/selectBOMaStlMssageListRForm", vo), - model, - "resultMap" - ); + //페이징 처리를 위한 pagination 객체 생성 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(vo.getPageIndex()); + paginationInfo.setRecordCountPerPage(vo.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + vo.setPaginationInfo(paginationInfo); + + //페이징 처리를 위한 값 설정 + vo.setFirstIndex(paginationInfo.getFirstRecordIndex()); + vo.setLastIndex(paginationInfo.getLastRecordIndex()); + vo.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + Map content = new HashMap<>(); + + //매장 구분 코드 + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + bOMaComncdVO.setGroupCd("STR_DV"); + List strDv = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + content.put("strDv", strDv); + + bOMaComncdVO.setGroupCd("REGUSR_DV"); + List regusrDv = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + content.put("regusrDv", regusrDv); + + List storeList = service.selectBOStoreList(vo); + + content.put("paginationInfo", vo.getPaginationInfo()); + content.put("boItrntStlMssageVO", vo); + content.put("tentGroup",user.getTentGroup()); + content.put("storeList", storeList); + + //현재 년도 + int currentYear = Calendar.getInstance().get(Calendar.YEAR); + content.put("currentYear", currentYear); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/stl/selectBOMaStlMssageListRForm", vo), +// model, +// "resultMap" +// ); return "admin/ntcn/stl/MaStlMssageListInqireRForm"; } @@ -77,13 +138,37 @@ public class MaStlMssageController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectMaStlMssageListInqire") - public String selectMaStlMssageListInqire(MaStlMssageVO vo, ModelMap model){ + public String selectMaStlMssageListInqire(BOMaStlMssageVO vo, ModelMap model){ + log.debug("vo => {}",vo); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/stl/selectBOMaStlMssageList", vo), - model, - "resultMap" - ); + Map content = new HashMap<>(); + //페이징 처리를 위한 pagination 객체 생성 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(vo.getPageIndex()); + paginationInfo.setRecordCountPerPage(vo.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + vo.setPaginationInfo(paginationInfo); + + //페이징 처리를 위한 값 설정 + vo.setFirstIndex(paginationInfo.getFirstRecordIndex()); + vo.setLastIndex(paginationInfo.getLastRecordIndex()); + vo.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + //리셀러 여부 o + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + bOMaComncdVO.setGroupCd("RSLR_APPN_DV"); + + content.put("paginationInfo", vo.getPaginationInfo()); + content.put("strInfo", service.selectBOMaStlMssageCharge(vo)); + log.debug("정산 목록 조회 내용 => {}", content); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/stl/selectBOMaStlMssageList", vo), +// model, +// "resultMap" +// ); return "admin/ntcn/stl/MaStlMssageListInqireR"; } @@ -94,12 +179,39 @@ public class MaStlMssageController { */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value = "/excelFileDownload") - public void excelFileDownload(MaStlMssageVO vo, HttpServletResponse response, ModelMap model) { + public void excelFileDownload(BOMaStlMssageVO vo, HttpServletResponse response, ModelMap model) { vo.setPageIndex(1); vo.setPageUnit(50); - Map resultMap = responseHandler.handleResponseAsMap( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/stl/selectBOMaStlMssageList", vo) - ); + + log.debug("vo => {}",vo); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + + Map resultMap = new HashMap<>(); + //페이징 처리를 위한 pagination 객체 생성 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(vo.getPageIndex()); + paginationInfo.setRecordCountPerPage(vo.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + vo.setPaginationInfo(paginationInfo); + + //페이징 처리를 위한 값 설정 + vo.setFirstIndex(paginationInfo.getFirstRecordIndex()); + vo.setLastIndex(paginationInfo.getLastRecordIndex()); + vo.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + //리셀러 여부 o + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + bOMaComncdVO.setGroupCd("RSLR_APPN_DV"); +// List appen = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + resultMap.put("paginationInfo", vo.getPaginationInfo()); + resultMap.put("strInfo", service.selectBOMaStlMssageCharge(vo)); +// content.put("appen", appen); + log.debug("정산 목록 조회 내용 => {}", resultMap); + +// Map resultMap = responseHandler.handleResponseAsMap( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/stl/selectBOMaStlMssageList", vo) +// ); /*엑셀 데이터 set*/ List> excelList = new ArrayList<>(); diff --git a/src/main/java/com/wb/domainserver/domain/admin/ntcn/tmplt/controller/MaTmpltController.java b/src/main/java/com/wb/domainserver/domain/admin/ntcn/tmplt/controller/MaTmpltController.java index 8299a590..a6ea5c8a 100644 --- a/src/main/java/com/wb/domainserver/domain/admin/ntcn/tmplt/controller/MaTmpltController.java +++ b/src/main/java/com/wb/domainserver/domain/admin/ntcn/tmplt/controller/MaTmpltController.java @@ -1,19 +1,27 @@ package com.wb.domainserver.domain.admin.ntcn.tmplt.controller; import com.wb.domainserver.common.msg.GconeMessageSource; +import com.wb.domainserver.domain.admin.ntcn.tmplt.service.BOMaTmpltService; +import com.wb.domainserver.domain.admin.ntcn.tmplt.vo.BOMaTmpltVO; import com.wb.domainserver.domain.admin.ntcn.tmplt.vo.MaTmpltVO; import com.wb.domainserver.exception.WnbtRestException; import com.wb.domainserver.response.WnbtResponse; +import com.wb.domainserver.response.WnbtResponseBody; import com.wb.domainserver.response.WnbtWebClientResponseHandler; +import com.wb.domainserver.security.authentication.AnonymousUser; +import com.wb.domainserver.security.authentication.MemberJwtContextHolder; import com.wb.domainserver.security.authorization.annotation.AuthPolicy; import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.util.communicate.RESRC; import com.wb.domainserver.util.communicate.ReplyFromResrc; import com.wb.domainserver.util.communicate.SendToResrc; import com.wb.domainserver.util.communicate.ValidateResultConverter; +import com.wb.domainserver.util.dataaccess.DataMap; +import com.wb.domainserver.util.string.StringUtil; import 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; @@ -22,6 +30,10 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + /* * 템플릿 관리 Controller * @author 리브가 @@ -55,18 +67,46 @@ public class MaTmpltController { @Autowired private GconeMessageSource gconeMessageSource; + @Autowired + private BOMaTmpltService service; + /** * 템플릿 관리 페이지 * @return String */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectAtmcSndngTmplatManage") - public String selectEmailPassivSndngManage(ModelMap model, MaTmpltVO maTmpltVO){ - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/tmplt/selectBOAtmcSndngTmplatManage", maTmpltVO), - model, - "resultMap" - ); + public String selectEmailPassivSndngManage(ModelMap model, BOMaTmpltVO vo){ + log.debug("이메일 자동 발송 템플릿 BO 진입 =>{}", vo); + + //사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + + vo.setRegusr(user.getUserInnb()); + vo.setUpdusr(user.getUserInnb()); + + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + + Map content = new HashMap<>(); + + List sopmalCdList = service.selectBOSopmalAtmcSndng(); + content.put("sopmalCdList", sopmalCdList); + + //초기 쇼핑몰 코드 없을 경우 목록의 첫번째 입력 + if("".equals(StringUtil.isNullToString(vo.getSopmalCd()))) { + vo.setSopmalCd(StringUtil.isNullToString(sopmalCdList.get(0).get("sopmalCd"))); + } + + content.put("boMaTmpltVo", vo); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/tmplt/selectBOAtmcSndngTmplatManage", maTmpltVO), +// model, +// "resultMap" +// ); return "admin/ntcn/tmplt/MaAtmcSndngTmplatManage"; } @@ -74,25 +114,58 @@ public class MaTmpltController { /** * 템플릿 관리 > 이메일 템플릿 폼 * @param model - * @param tmpltVO + * @param vo * @return String */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectEmailAtmcSndngTmplatOneInqireForm") - public String selectEmailAtmcSndngTmplatOneInqireForm(ModelMap model, MaTmpltVO tmpltVO, HttpSession session) { + public String selectEmailAtmcSndngTmplatOneInqireForm(ModelMap model, BOMaTmpltVO vo, HttpSession session) { try { + log.debug("이메일 자동 발송 템플릿 BO 진입 =>{}", vo); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/tmplt/selectBOEmailAtmcSndngTmplatOneInqireForm", tmpltVO), - model, - "resultListMap" - ); + //사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); - model.addAttribute("tmpltVO",tmpltVO); + vo.setRegusr(user.getUserInnb()); + vo.setUpdusr(user.getUserInnb()); + + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + + Map content = new HashMap<>(); + + List sopmalCdList = service.selectBOSopmalAtmcSndng(); + content.put("sopmalCdList", sopmalCdList); + + + //초기 쇼핑몰 코드 없을 경우 목록의 첫번째 입력 + if("".equals(StringUtil.isNullToString(vo.getSopmalCd()))) { + vo.setSopmalCd(StringUtil.isNullToString(sopmalCdList.get(0).get("sopmalCd"))); + } + + + content.put("bOTmpltVO", vo); +// content.put("groupCd", service.selectBOTmplatGroupCd("FORM_DV")); + content.put("groupCd", service.selectBOTmplatGroup(vo.getSopmalCd())); + content.put("formDvCd", service.selectBOTmplatFormGroup(vo.getSopmalCd())); + content.put("boCtrlMap", service.selectBOEmailAtmcSndngTmplatOneInqireForm(vo)); + content.put("dsptchAdres", service.selectBOEmailAtmcSndngDsptchAdres(vo)); + + model.addAttribute("resultListMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/tmplt/selectBOEmailAtmcSndngTmplatOneInqireForm", tmpltVO), +// model, +// "resultListMap" +// ); + + model.addAttribute("tmpltVO",vo); } catch (WnbtRestException wre){ + log.error(wre.getMessage(), wre); throw new WnbtRestException(wre.getMessage()); } catch (Exception e) { log.error(e.getMessage(), e); + throw new WnbtRestException(e.getMessage()); } return "admin/ntcn/tmplt/MaEmailAtmcSndngTmplatU"; @@ -104,53 +177,130 @@ public class MaTmpltController { * @author 이대환 */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value="/selectEmailAtmcSndngTmplatOne") - public ResponseEntity selectEmailAtmcSndngTmplatOne(MaTmpltVO tmpltVO, HttpSession session){ + @RequestMapping(value="/selectEmailAtmcSndngTmplatOne", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity selectEmailAtmcSndngTmplatOne(BOMaTmpltVO vo, HttpSession session){ // tmpltVO.setSopmalCd(session.getAttribute("authSopmalCd").toString()); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/tmplt/selectBOEmailAtmcSndngTmplatOneInqireForm", tmpltVO), - ReplyFromResrc::getReply + + log.debug("이메일 자동 발송 템플릿 BO 진입 =>{}", vo); + + //사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + + vo.setRegusr(user.getUserInnb()); + vo.setUpdusr(user.getUserInnb()); + + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + + Map content = new HashMap<>(); + + List sopmalCdList = service.selectBOSopmalAtmcSndng(); + content.put("sopmalCdList", sopmalCdList); + + + //초기 쇼핑몰 코드 없을 경우 목록의 첫번째 입력 + if("".equals(StringUtil.isNullToString(vo.getSopmalCd()))) { + vo.setSopmalCd(StringUtil.isNullToString(sopmalCdList.get(0).get("sopmalCd"))); + } + + + content.put("bOTmpltVO", vo); +// content.put("groupCd", service.selectBOTmplatGroupCd("FORM_DV")); + content.put("groupCd", service.selectBOTmplatGroup(vo.getSopmalCd())); + content.put("formDvCd", service.selectBOTmplatFormGroup(vo.getSopmalCd())); + content.put("boCtrlMap", service.selectBOEmailAtmcSndngTmplatOneInqireForm(vo)); + content.put("dsptchAdres", service.selectBOEmailAtmcSndngDsptchAdres(vo)); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/tmplt/selectBOEmailAtmcSndngTmplatOneInqireForm", tmpltVO), +// ReplyFromResrc::getReply +// ); } /** * 템플릿 관리 > 이메일 템플릿 - 이메일 템플릿 수정 - * @param tmpltVO + * @param vo * @param bindingResult 바인딩 및 정합성 점검결과 객체 * @return ResponseEntity */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/updateEmailAtmcSndngTmplatUpdt", method = RequestMethod.POST) - public ResponseEntity updateEmailAtmcSndngTmplatUpdt(MaTmpltVO tmpltVO, BindingResult bindingResult, HttpSession session) { + @RequestMapping(value = "/updateEmailAtmcSndngTmplatUpdt", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateEmailAtmcSndngTmplatUpdt(BOMaTmpltVO vo, BindingResult bindingResult, HttpSession session) { // tmpltVO.setSopmalCd(session.getAttribute("authSopmalCd").toString()); if(bindingResult.hasErrors()) { throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); } - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/tmplt/updateBOEmailAtmcSndngTmplatUpdt", tmpltVO), - ReplyFromResrc::getReply + log.debug("이메일 자동 발송 템플릿 수정 BO 진입 =>{}", vo); + + //사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + + vo.setRegusr(user.getUserInnb()); + vo.setUpdusr(user.getUserInnb()); + + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + + Map message = new HashMap<>(); + message = service.updateBOEmailAtmcSndngTmplatUpdt(vo); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/tmplt/updateBOEmailAtmcSndngTmplatUpdt", tmpltVO), +// ReplyFromResrc::getReply +// ); } /** * 템플릿 관리 > SMS 템플릿 폼 * @param model - * @param tmpltVO + * @param vo * @return String */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectMssageAtmcSndngTmplatInqireForm") - public String selectMssageAtmcSndngTmplatInqireForm(ModelMap model, MaTmpltVO tmpltVO, HttpSession session) { + public String selectMssageAtmcSndngTmplatInqireForm(ModelMap model, BOMaTmpltVO vo, HttpSession session) { try { + log.debug("메시지 자동 발송 템플릿 BO 진입 =>{}", vo); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/tmplt/selectBOMssageAtmcSndngTmplatInqireForm", tmpltVO), - model, - "resultListMap" - ); + //사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); - model.addAttribute("tmpltVO",tmpltVO); + vo.setRegusr(user.getUserInnb()); + vo.setUpdusr(user.getUserInnb()); + + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + + Map content = new HashMap<>(); + + content.put("bOTmpltVO", vo); +// content.put("groupCd", service.selectBOTmplatGroupCd("FORM_DV")); + content.put("groupCd", service.selectBOTmplatGroup(vo.getSopmalCd())); + content.put("formDvCd", service.selectBOTmplatFormGroup(vo.getSopmalCd())); + content.put("boCtrlMap", service.selectBOMssageAtmcSndngTmplatInqireForm(vo)); + + model.addAttribute("resultListMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/tmplt/selectBOMssageAtmcSndngTmplatInqireForm", tmpltVO), +// model, +// "resultListMap" +// ); + + model.addAttribute("tmpltVO",vo); } catch (WnbtRestException wre){ throw new WnbtRestException(wre.getMessage()); } catch (Exception e) { @@ -162,43 +312,81 @@ public class MaTmpltController { /** * 템플릿 관리 > SMS 템플릿 - SMS 템플릿 수정 - * @param serializedFormData + * @param boTmpltVO * @param bindingResult 바인딩 및 정합성 점검결과 객체 * @return ResponseEntity */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/updateMssageAtmcSndngTmplatUpdt", method = RequestMethod.POST) - public ResponseEntity updateMssageAtmcSndngTmplatUpdt(MaTmpltVO tmpltVO, BindingResult bindingResult, HttpSession session) { + @RequestMapping(value = "/updateMssageAtmcSndngTmplatUpdt", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateMssageAtmcSndngTmplatUpdt(BOMaTmpltVO boTmpltVO, BindingResult bindingResult, HttpSession session) { // tmpltVO.setSopmalCd(session.getAttribute("authSopmalCd").toString()); if(bindingResult.hasErrors()) { throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); } - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/tmplt/updateBOMssageAtmcSndngTmplatUpdt", tmpltVO), - ReplyFromResrc::getReply + //사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + + if("01".equals(user.getSysDvCd())){ + boTmpltVO.setSopmalCd(user.getSopmalCd()); + } + + log.debug("메시지 자동 발송 템플릿 수정 BO 진입 =>{}", boTmpltVO); + + Map message = new HashMap<>(); + message = service.updateBOMssageAtmcSndngTmplatUpdt(boTmpltVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/tmplt/updateBOMssageAtmcSndngTmplatUpdt", tmpltVO), +// ReplyFromResrc::getReply +// ); } /** * 템플릿 관리 > 알림톡 템플릿 폼 * @param model - * @param tmpltVO + * @param vo * @return String */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectNtcntalkAtmcSndngTmplatInqireForm") - public String selectNtcntalkAtmcSndngTmplatInqireForm(ModelMap model, MaTmpltVO tmpltVO, HttpSession session) { + public String selectNtcntalkAtmcSndngTmplatInqireForm(ModelMap model, BOMaTmpltVO vo, HttpSession session) { // tmpltVO.setSopmalCd(session.getAttribute("authSopmalCd").toString()); try { - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/tmplt/selectBONtcntalkAtmcSndngTmplatInqireForm", tmpltVO), - model, - "resultListMap" - ); + log.debug("알림톡 자동 발송 템플릿 BO 진입 =>{}", vo); - model.addAttribute("tmpltVO",tmpltVO); + //사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + + vo.setRegusr(user.getUserInnb()); + vo.setUpdusr(user.getUserInnb()); + + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + + Map content = new HashMap<>(); + + content.put("bOTmpltVO", vo); +// content.put("groupCd", service.selectBOTmplatGroupCd("FORM_DV")); + content.put("groupCd", service.selectBOTmplatGroup(vo.getSopmalCd())); + content.put("formDvCd", service.selectBOTmplatFormGroup(vo.getSopmalCd())); + content.put("boCtrlMap", service.selectBONtcntalkAtmcSndngTmplatInqireForm(vo)); + + model.addAttribute("resultListMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/tmplt/selectBONtcntalkAtmcSndngTmplatInqireForm", tmpltVO), +// model, +// "resultListMap" +// ); + + model.addAttribute("tmpltVO",vo); } catch (WnbtRestException wre){ throw new WnbtRestException(wre.getMessage()); } catch (Exception e) { @@ -211,23 +399,38 @@ public class MaTmpltController { /** * 템플릿 관리 > 알림톡 템플릿 > 알림톡 탬플릿 수정 팝업 폼 * @param model - * @param tmpltVO + * @param vo * @return String */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectNtcntalkAtmcSndngTmplatUpdtPopupForm") - public String selectNtcntalkAtmcSndngTmplatUpdtPopupForm(MaTmpltVO tmpltVO, ModelMap model, HttpSession session) { + public String selectNtcntalkAtmcSndngTmplatUpdtPopupForm(BOMaTmpltVO vo, ModelMap model, HttpSession session) { // tmpltVO.setSopmalCd(session.getAttribute("authSopmalCd").toString()); try { + log.debug("알림톡 자동 발송 수정 팝업 BO 진입 =>{}", vo); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/tmplt/selectBONtcntalkAtmcSndngTmplatUpdtPopupForm", tmpltVO), - model, - "resultMap" - ); + //사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + vo.setRegusr(user.getUserInnb()); + vo.setUpdusr(user.getUserInnb()); - model.addAttribute("tmpltVO",tmpltVO); + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + + Map content = new HashMap<>(); + content.put("bOTmpltVO", vo); + content.put("boCtrlMap", service.selectBONtcntalkAtmcSndngTmplatUpdtPopupForm(vo)); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/tmplt/selectBONtcntalkAtmcSndngTmplatUpdtPopupForm", tmpltVO), +// model, +// "resultMap" +// ); + + model.addAttribute("tmpltVO",vo); } catch (WnbtRestException wre){ throw new WnbtRestException(wre.getMessage()); } catch (Exception e) { @@ -239,22 +442,79 @@ public class MaTmpltController { /** * 템플릿 관리 > 알림톡 템플릿 - 알림톡 템플릿 수정 - * @param serializedFormData + * @param vo * @param bindingResult 바인딩 및 정합성 점검결과 객체 * @return ResponseEntity */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/updateNtcntalkAtmcSndngTmplatUpdt", method = RequestMethod.POST) - public ResponseEntity updateNtcntalkAtmcSndngTmplatUpdt(@Validated MaTmpltVO tmpltVO, BindingResult bindingResult, HttpSession session) { + @RequestMapping(value = "/updateNtcntalkAtmcSndngTmplatUpdt", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateNtcntalkAtmcSndngTmplatUpdt(@Validated BOMaTmpltVO vo, BindingResult bindingResult, HttpSession session) { // tmpltVO.setSopmalCd(session.getAttribute("authSopmalCd").toString()); if(bindingResult.hasErrors()) { throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); } + //사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/tmplt/updateBONtcntalkAtmcSndngTmplatUpdt", tmpltVO), - ReplyFromResrc::getReply + vo.setRegusr(user.getUserInnb()); + vo.setUpdusr(user.getUserInnb()); + + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } + + //알림톡 템플릿 버튼 정제 + if(vo.getBtnType() != null){ + for(int i = 0; i < vo.getBtnType().size(); i++){ + if(vo.getBtnType().get(i) == "DS") { + vo.getBtnNm().set(i, ""); + vo.getBtnMUrl().set(i, ""); + vo.getBtnPcUrl().set(i, ""); + } + } + + switch (vo.getBtnType().size()){ + case 5: + vo.setBtnNm05(vo.getBtnNm().get(4)); + vo.setBtnType05(vo.getBtnType().get(4)); + vo.setBtn05Url01(vo.getBtnMUrl().get(4)); + vo.setBtn05Url02(vo.getBtnPcUrl().get(4)); + case 4: + vo.setBtnNm04(vo.getBtnNm().get(3)); + vo.setBtnType04(vo.getBtnType().get(3)); + vo.setBtn04Url01(vo.getBtnMUrl().get(3)); + vo.setBtn04Url02(vo.getBtnPcUrl().get(3)); + case 3: + vo.setBtnNm03(vo.getBtnNm().get(2)); + vo.setBtnType03(vo.getBtnType().get(2)); + vo.setBtn03Url01(vo.getBtnMUrl().get(2)); + vo.setBtn03Url02(vo.getBtnPcUrl().get(2)); + case 2: + vo.setBtnNm02(vo.getBtnNm().get(1)); + vo.setBtnType02(vo.getBtnType().get(1)); + vo.setBtn02Url01(vo.getBtnMUrl().get(1)); + vo.setBtn02Url02(vo.getBtnPcUrl().get(1)); + case 1: + vo.setBtnNm01(vo.getBtnNm().get(0)); + vo.setBtnType01(vo.getBtnType().get(0)); + vo.setBtn01Url01(vo.getBtnMUrl().get(0)); + vo.setBtn01Url02(vo.getBtnPcUrl().get(0)); + } + } + log.debug("알림톡 자동 발송 템플릿 수정 BO 진입 =>{}", vo); + + Map message = new HashMap<>(); + message = service.updateBONtcntalkAtmcSndngTmplatUpdt(vo); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/tmplt/updateBONtcntalkAtmcSndngTmplatUpdt", tmpltVO), +// ReplyFromResrc::getReply +// ); } diff --git a/src/main/java/com/wb/domainserver/domain/admin/stats/marktAnals/controller/MaMarktAnalsController.java b/src/main/java/com/wb/domainserver/domain/admin/stats/marktAnals/controller/MaMarktAnalsController.java index aa10237d..803d0bf8 100644 --- a/src/main/java/com/wb/domainserver/domain/admin/stats/marktAnals/controller/MaMarktAnalsController.java +++ b/src/main/java/com/wb/domainserver/domain/admin/stats/marktAnals/controller/MaMarktAnalsController.java @@ -1,27 +1,36 @@ package com.wb.domainserver.domain.admin.stats.marktAnals.controller; +import com.wb.domainserver.common.mvc.tags.ui.pagination.PaginationInfo; +import com.wb.domainserver.common.prop.PaginationProperties; import com.wb.domainserver.domain.admin.stats.marktAnals.service.BOMaAdminStatsService; +import com.wb.domainserver.domain.admin.stats.marktAnals.vo.BOMaMbrNdMlgVO; import com.wb.domainserver.domain.admin.stats.marktAnals.vo.MaStlMlgVO; +import com.wb.domainserver.domain.gcone.stats.marktAnals.vo.BOMarktAnalsVO; import com.wb.domainserver.domain.mngr.stats.marktAnals.vo.MarktAnalsVO; import com.wb.domainserver.response.WnbtWebClientResponseHandler; +import com.wb.domainserver.security.authentication.AnonymousUser; +import com.wb.domainserver.security.authentication.MemberJwtContextHolder; import com.wb.domainserver.security.authorization.annotation.AuthPolicy; import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.util.communicate.RESRC; import com.wb.domainserver.util.communicate.SendToResrc; +import com.wb.domainserver.util.dataaccess.DataMap; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; +import java.util.Calendar; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + @Controller @RequestMapping(value = "/admin/stats/marktAnals") @Slf4j public class MaMarktAnalsController { - @Autowired - private BOMaAdminStatsService service; - /** WebClient 호출을 위한 wrapper */ @Autowired private WnbtWebClientResponseHandler responseHandler; @@ -29,6 +38,10 @@ public class MaMarktAnalsController { @Autowired private SendToResrc sendToResrc; + @Autowired + private BOMaAdminStatsService service; + @Autowired + private PaginationProperties paginationProperties; /************************************************************************** @@ -42,14 +55,21 @@ public class MaMarktAnalsController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectAdminMbrNdMlgStats") - public String selectAdminMbrMlg(ModelMap model) { - MarktAnalsVO vo = new MarktAnalsVO(); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/stats/marktAnals/selectBOAdminMbrNdMlgStats", vo), - model, - "cond" - ); - model.put("resultMap", vo); + public String selectAdminMbrMlg(ModelMap model, DataMap vo) { + MarktAnalsVO mavo = new MarktAnalsVO(); + + // 응답 메세지 객체 + Map content = new HashMap<>(); + + content.put("resultList", service.selectBOAdminMbrNdMlgStats(vo)); + + model.addAttribute("cond", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/stats/marktAnals/selectBOAdminMbrNdMlgStats", vo), +// model, +// "cond" +// ); + model.put("resultMap", mavo); return "admin/stats/marktAnals/MaMbrNdMlgStats"; } @@ -61,13 +81,37 @@ public class MaMarktAnalsController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectAdminMbrNdMlgStatsTableInqire") - public String selectAdminMbrMlgTableInqire(MarktAnalsVO vo, ModelMap model) { + public String selectAdminMbrMlgTableInqire(BOMarktAnalsVO vo, ModelMap model) { + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + if("01".equals(user.getSysDvCd())){ + vo.setSopmalCd(user.getSopmalCd()); + } - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/stats/marktAnals/selectBOAdminMbrNdMlgStatsTableInqire", vo), - model, - "resultMap" - ); + // 응답 메세지 객체 + Map content = new HashMap<>(); + + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(vo.getPageIndex()); + paginationInfo.setRecordCountPerPage(vo.getRecordCountPerPage()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + + vo.setPaginationInfo(paginationInfo); + vo.setFirstIndex(paginationInfo.getFirstRecordIndex()); + vo.setLastIndex(paginationInfo.getLastRecordIndex()); + vo.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + List resultList = service.selectBOAdminMbrNdMlgStatsTableInqire(vo); + + content.put("resultList", resultList); + content.put("paginationInfo", paginationInfo); + content.put("unitFlag", vo.getUnitFlag()); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/stats/marktAnals/selectBOAdminMbrNdMlgStatsTableInqire", vo), +// model, +// "resultMap" +// ); return "admin/stats/marktAnals/MaMbrNdMlgStatsTable"; } @@ -99,12 +143,6 @@ public class MaMarktAnalsController { public String selectAdminMlgTableInqire(ModelMap model) { log.debug("selectAdminMlgTableInqire(vo = )"); -// responseHandler.handleResponse( -// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/stats/marktAnals/selectBOAdminMbrMlgTableInqire", vo), -// model, -// "resultMap" -// ); - return "admin/stats/marktAnals/mlgTable"; } @@ -117,11 +155,18 @@ public class MaMarktAnalsController { @RequestMapping(value = "/selectAdminMlgStlForm") public String selectAdminMlgStlForm(ModelMap model, MaStlMlgVO vo) { - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/stats/marktAnals/selectBOAdminMlgStlForm", vo), - model, - "resultMap" - ); + Map content = new HashMap<>(); + + //현재 년도 + int currentYear = Calendar.getInstance().get(Calendar.YEAR); + content.put("currentYear", currentYear); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/stats/marktAnals/selectBOAdminMlgStlForm", vo), +// model, +// "resultMap" +// ); return "admin/stats/marktAnals/MlgStlForm"; } @@ -133,14 +178,26 @@ public class MaMarktAnalsController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectAdminMlgStlListInqire") - public String selectAdminMlgStlListInqire(ModelMap model, MaStlMlgVO vo) { + public String selectAdminMlgStlListInqire(ModelMap model, BOMaMbrNdMlgVO vo) { log.debug("selectAdminMlgTableInqire(vo = {})", vo); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/stats/marktAnals/selectBOAdminMlgStlListInqire", vo), - model, - "resultMap" - ); + Map content = new HashMap<>(); +// //마일리지 통계 +// List mlgStatList = service.selectBOMaMlgStatList(vo); +// log.debug("mlgStatList {}", mlgStatList); +// content.put("mlgStatList", mlgStatList); +// +// //마일리지 정산 목록 +// List mlgStlList = service.selectBOMaMlgStlList(vo); +// log.debug("mlgStlList {}", mlgStlList); +// content.put("mlgStlList", mlgStlList); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/stats/marktAnals/selectBOAdminMlgStlListInqire", vo), +// model, +// "resultMap" +// ); return "admin/stats/marktAnals/MlgStlList"; } diff --git a/src/main/java/com/wb/domainserver/domain/admin/store/bsnm/controller/MaBsnmController.java b/src/main/java/com/wb/domainserver/domain/admin/store/bsnm/controller/MaBsnmController.java index afdef9b0..02e87bc1 100644 --- a/src/main/java/com/wb/domainserver/domain/admin/store/bsnm/controller/MaBsnmController.java +++ b/src/main/java/com/wb/domainserver/domain/admin/store/bsnm/controller/MaBsnmController.java @@ -1,15 +1,24 @@ package com.wb.domainserver.domain.admin.store.bsnm.controller; import com.wb.domainserver.common.msg.GconeMessageSource; +import com.wb.domainserver.common.mvc.tags.ui.pagination.PaginationInfo; +import com.wb.domainserver.common.prop.PaginationProperties; +import com.wb.domainserver.domain.admin.store.bsnm.service.BOBsnmService; +import com.wb.domainserver.domain.admin.store.bsnm.vo.BOBsnmVO; import com.wb.domainserver.domain.admin.store.bsnm.vo.MaBsnmVO; import com.wb.domainserver.exception.WnbtRestException; import com.wb.domainserver.response.WnbtResponse; +import com.wb.domainserver.response.WnbtResponseBody; import com.wb.domainserver.response.WnbtWebClientResponseHandler; +import com.wb.domainserver.security.authentication.AnonymousUser; +import com.wb.domainserver.security.authentication.MemberJwtContextHolder; import com.wb.domainserver.security.authorization.annotation.AuthPolicy; import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.util.communicate.*; +import com.wb.domainserver.util.dataaccess.DataMap; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -19,6 +28,11 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + /** * 사업자 관리 Controller * @@ -49,41 +63,69 @@ public class MaBsnmController { @Autowired private GconeMessageSource gconeMessageSource; + @Autowired + private BOBsnmService service; + @Autowired + private PaginationProperties paginationProperties; + + /** * 사업자 목록 화면 - * @param maBsnmVO + * @param boBsnmVO * @param model * @return */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping("/selectBsnmListInqireForm") - public String selectBsnmListInqireForm(MaBsnmVO maBsnmVO, - ModelMap model) { - //BO 발송그룹 목록조회 API 호출 - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/bsnm/selectBOBsnmListInqireForm", maBsnmVO), - model, - "resultMap" - ); + public String selectBsnmListInqireForm(BOBsnmVO boBsnmVO, ModelMap model) { + Map content = new HashMap<>(); + content.put("BOBsnmVO", boBsnmVO); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/bsnm/selectBOBsnmListInqireForm", maBsnmVO), +// model, +// "resultMap" +// ); return "admin/store/bsnm/MaBsnmListInqireRForm"; } /** * 사업자 목록 조회 - * @param maBsnmVO + * @param boBsnmVO * @param model * @return */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping("/selectBsnmListInqire") - public String selectBsnmListInqire(MaBsnmVO maBsnmVO, - ModelMap model) { - //BO 발송그룹 목록조회 API 호출 - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/bsnm/selectBOBsnmListInqire", maBsnmVO), - model, - "resultMap" - ); + public String selectBsnmListInqire(BOBsnmVO boBsnmVO, ModelMap model) { + Map content = new HashMap<>(); + //페이징 처리를 위한 pagination 객체 생성 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(boBsnmVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(boBsnmVO.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + + //페이징 처리를 위한 값 설정 + boBsnmVO.setPaginationInfo(paginationInfo); + boBsnmVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + boBsnmVO.setLastIndex(paginationInfo.getLastRecordIndex()); + boBsnmVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + //사업자 목록조회 + List list = service.selectBOBsnmList(boBsnmVO); + + //사업자 목록조회 결과 설정 + content.put("BOBsnmVO", boBsnmVO); + content.put("paginationInfo", boBsnmVO.getPaginationInfo()); + content.put("list", list); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/bsnm/selectBOBsnmListInqire", maBsnmVO), +// model, +// "resultMap" +// ); return "admin/store/bsnm/MaBsnmListInqireR"; } @@ -93,12 +135,22 @@ public class MaBsnmController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping("/selectBsnmRegistForm") - public String selectBsnmRegistForm(MaBsnmVO maBsnmVO, ModelMap model) { - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/bsnm/selectBOBsnmRegistForm", maBsnmVO), - model, - "resultMap" - ); + public String selectBsnmRegistForm(BOBsnmVO boBsnmVO, ModelMap model) { + Map content = new HashMap<>(); + + content.put("BOBsnmVO", boBsnmVO); + + DataMap map = service.selectGroupCd(); + List codeList = new ArrayList<>(); + codeList.add(map); + content.put("codeList", codeList); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/bsnm/selectBOBsnmRegistForm", maBsnmVO), +// model, +// "resultMap" +// ); return "admin/store/bsnm/MaBsnmRegistC"; } @@ -107,102 +159,172 @@ public class MaBsnmController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping("/selectBizrnbDplctInqire") - public ResponseEntity selectBizrnbDplctInqire(@RequestBody MaBsnmVO maBsnmVO) { + @RequestMapping(value = "/selectBizrnbDplctInqire", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity selectBizrnbDplctInqire(@RequestBody BOBsnmVO boBsnmVO) { + Integer result = service.selectBOBizrnbDplct(boBsnmVO.getBizrnb()); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/bsnm/selectBOBizrnbDplctInqire", maBsnmVO), - ReplyFromResrc::getReply + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(result)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/bsnm/selectBOBizrnbDplctInqire", maBsnmVO), +// ReplyFromResrc::getReply +// ); } /** * 사업자 등록 - * @param maBsnmVO + * @param boBsnmVO * @param bindingResult * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/insertBsnmRegist", method = RequestMethod.POST) - public ResponseEntity insertBsnmRegist(@Validated MaBsnmVO maBsnmVO, BindingResult bindingResult) { + @RequestMapping(value = "/insertBsnmRegist", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity insertBsnmRegist(@Validated BOBsnmVO boBsnmVO, BindingResult bindingResult) { if(bindingResult.hasErrors()) { throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); } - - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/bsnm/insertBOBsnmRegist", maBsnmVO), - ReplyFromResrc::getReply - ); + Map message = new HashMap<>(); + //사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + boBsnmVO.setRegusr(user.getUserInnb()); + boBsnmVO.setUpdusr(user.getUserInnb()); + + Integer result = service.selectBOBizrnbDplct(boBsnmVO.getBizrnb()); + if (result > 0) { + message.put("result", "dublechk"); + } else{ + // 사업자 등록 + message = service.insertBOBsnm(boBsnmVO); + } + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() + ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/bsnm/insertBOBsnmRegist", maBsnmVO), +// ReplyFromResrc::getReply +// ); } /** * 사업자 수정 화면이동 - * @param maBsnmVO + * @param boBsnmVO * @param model * @return */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping("/selectBsnmUpdtForm") - public String selectBsnmUpdtForm(MaBsnmVO maBsnmVO, - ModelMap model) { - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/bsnm/selectBOBsnmDtlInqire", maBsnmVO), - model, - "resultMap" - ); + public String selectBsnmUpdtForm(BOBsnmVO boBsnmVO, ModelMap model) { + Map content = new HashMap<>(); + //사업자 정보 조회 + List list = service.selectBOBsnmDtl(boBsnmVO); + + content.put("BOBsnmVO", boBsnmVO); + content.put("list", list); + + DataMap map = service.selectGroupCd(); + List codeList = new ArrayList<>(); + codeList.add(map); + content.put("codeList", codeList); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/bsnm/selectBOBsnmDtlInqire", maBsnmVO), +// model, +// "resultMap" +// ); return "admin/store/bsnm/MaBsnmUpdtU"; } /** * 사업자 수정 - * @param maBsnmVO + * @param boBsnmVO * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/updateBsnmUpdt", method = RequestMethod.POST) - public ResponseEntity updateBsnmUpdt(@Validated MaBsnmVO maBsnmVO, BindingResult bindingResult) { + @RequestMapping(value = "/updateBsnmUpdt", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateBsnmUpdt(@Validated BOBsnmVO boBsnmVO, BindingResult bindingResult) { if(bindingResult.hasErrors()) { throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); } - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/bsnm/updateBOBsnmUpdt", maBsnmVO), - ReplyFromResrc::getReply - ); + + //사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + boBsnmVO.setRegusr(user.getUserInnb()); + boBsnmVO.setUpdusr(user.getUserInnb()); + Map message = service.updateBOBsnmUpdt(boBsnmVO); + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() + ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/bsnm/updateBOBsnmUpdt", maBsnmVO), +// ReplyFromResrc::getReply +// ); } /** * 사업자 삭제 - * @param maBsnmVO + * @param boBsnmVO * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/deleteBsnmDel", method = RequestMethod.POST) - public ResponseEntity deleteBsnmDel(MaBsnmVO maBsnmVO) { - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/bsnm/deleteBOBsnmDel", maBsnmVO), - ReplyFromResrc::getReply - ); + @RequestMapping(value = "/deleteBsnmDel", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity deleteBsnmDel(BOBsnmVO boBsnmVO) { + //사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + boBsnmVO.setRegusr(user.getUserInnb()); + boBsnmVO.setUpdusr(user.getUserInnb()); + Map message = service.deleteBOBsnm(boBsnmVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() + ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/bsnm/deleteBOBsnmDel", maBsnmVO), +// ReplyFromResrc::getReply +// ); } /** * 사업자 상세 조회 팝업 - * @param maBsnmVO + * @param boBsnmVO * @param model * @return */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping("/selectBsnmInqirePopup") - public String selectBsnmInqirePopup(MaBsnmVO maBsnmVO, - ModelMap model) { - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/bsnm/selectBOBsnmDtlInqire", maBsnmVO), - model, - "resultMap" - ); + public String selectBsnmInqirePopup(BOBsnmVO boBsnmVO, ModelMap model) { + Map content = new HashMap<>(); + //사업자 정보 조회 + List list = service.selectBOBsnmDtl(boBsnmVO); + + content.put("BOBsnmVO", boBsnmVO); + content.put("list", list); + + DataMap map = service.selectGroupCd(); + List codeList = new ArrayList<>(); + codeList.add(map); + content.put("codeList", codeList); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/bsnm/selectBOBsnmDtlInqire", maBsnmVO), +// model, +// "resultMap" +// ); return "admin/store/bsnm/MaBsnmInqirePopupR"; } diff --git a/src/main/java/com/wb/domainserver/domain/admin/store/bsnm/vo/BOBsnmVO.java b/src/main/java/com/wb/domainserver/domain/admin/store/bsnm/vo/BOBsnmVO.java index cfd17539..ed2d3047 100644 --- a/src/main/java/com/wb/domainserver/domain/admin/store/bsnm/vo/BOBsnmVO.java +++ b/src/main/java/com/wb/domainserver/domain/admin/store/bsnm/vo/BOBsnmVO.java @@ -1,6 +1,7 @@ package com.wb.domainserver.domain.admin.store.bsnm.vo; import com.wb.domainserver.domain.comm.vo.AbstractVO; +import jakarta.validation.constraints.NotBlank; import lombok.Data; import lombok.EqualsAndHashCode; @@ -12,6 +13,7 @@ public class BOBsnmVO extends AbstractVO { private String bsnmInnb; /** 사업자명 */ + @NotBlank(message = "사업자명") private String bsnmNm; /** 업태내용 */ @@ -21,24 +23,30 @@ public class BOBsnmVO extends AbstractVO { private String itemCn; /** 사업자등록번호 */ + @NotBlank(message = "사업자등록번호") private String bizrnb; /** 통신판매업신고번호 */ + @NotBlank(message = "통신판매업 신고번호") private String mobDclNb; /** 대표자명 */ + @NotBlank(message = "대표자명") private String reprsntvnm; /** 개인정보보호책임자명 */ + @NotBlank(message = "개인정보 보호책임자명") private String indvdlinfoPrtcRspnberNm; /** 전화번호 */ + @NotBlank(message = "전화번호") private String telnb; /** 팩스번호 */ private String fxnb; /** 이메일 */ + @NotBlank(message = "이메일") private String email; /** 이메일 ID */ private String email1; @@ -49,6 +57,7 @@ public class BOBsnmVO extends AbstractVO { private String bsnDclNb; /** 우편번호 */ + @NotBlank(message = "사업장 주소") private String zip; /** 지번주소 */ diff --git a/src/main/java/com/wb/domainserver/domain/admin/store/extlink/controller/MaExtlinkController.java b/src/main/java/com/wb/domainserver/domain/admin/store/extlink/controller/MaExtlinkController.java index 77206791..bc70ec85 100644 --- a/src/main/java/com/wb/domainserver/domain/admin/store/extlink/controller/MaExtlinkController.java +++ b/src/main/java/com/wb/domainserver/domain/admin/store/extlink/controller/MaExtlinkController.java @@ -2,18 +2,26 @@ package com.wb.domainserver.domain.admin.store.extlink.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.extlink.service.BOMaExtlinkService; +import com.wb.domainserver.domain.admin.store.extlink.vo.BOMaExtlinkVO; import com.wb.domainserver.domain.admin.store.extlink.vo.MaExtlinkVO; import com.wb.domainserver.domain.admin.store.mbrgrad.vo.MaMbrgradVO; 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.util.communicate.*; +import com.wb.domainserver.util.dataaccess.DataMap; import com.wb.domainserver.util.excel.ExcelDownloadUtil; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -42,18 +50,43 @@ public class MaExtlinkController { @Autowired private GconeMessageSource gconeMessageSource; + @Autowired + private BOMaExtlinkService service; + + @Autowired + private PaginationProperties paginationProperties; + /** * 외부연동 목록 폼 * @return */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectExtLinkListForm") - public String selectExtLinkListForm(MaExtlinkVO vo, ModelMap model) { - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/extlink/selectBOExtlinkListForm", vo), - model, - "resultMap" - ); + public String selectExtLinkListForm(BOMaExtlinkVO vo, ModelMap model) { + DataMap content = new DataMap(); + + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(vo.getPageIndex()); + paginationInfo.setRecordCountPerPage(vo.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + vo.setPaginationInfo(paginationInfo); + vo.setFirstIndex(paginationInfo.getFirstRecordIndex()); + vo.setLastIndex(paginationInfo.getLastRecordIndex()); + vo.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + List extLinkSystemList = new ArrayList<>(); + extLinkSystemList = service.selectBOextlinkSystemList(); + + content.put("paramVO", vo); + content.put("extlinkSystemList", extLinkSystemList); + content.put("paginationInfo", vo.getPaginationInfo()); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/extlink/selectBOExtlinkListForm", vo), +// model, +// "resultMap" +// ); return "admin/store/extlink/maExtLinkListForm"; } @@ -63,12 +96,31 @@ public class MaExtlinkController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping("/selectExtLinkListInqire") - public String selectExtLinkListInqire(MaExtlinkVO vo, ModelMap model) { - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/extlink/selectBOExtlinkList", vo), - model, - "resultMap" - ); + public String selectExtLinkListInqire(BOMaExtlinkVO vo, ModelMap model) { + DataMap content = new DataMap(); + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(vo.getPageIndex()); + paginationInfo.setRecordCountPerPage(vo.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + vo.setPaginationInfo(paginationInfo); + vo.setFirstIndex(paginationInfo.getFirstRecordIndex()); + vo.setLastIndex(paginationInfo.getLastRecordIndex()); + vo.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + content.put("paramVO", vo); + + List extLinkList = new ArrayList<>(); + extLinkList = service.selectBOextlinkList(vo); + content.put("resultList", extLinkList); + + content.put("paginationInfo", vo.getPaginationInfo()); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/extlink/selectBOExtlinkList", vo), +// model, +// "resultMap" +// ); return "admin/store/extlink/maExtLinkListR"; } @@ -78,12 +130,25 @@ public class MaExtlinkController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping("/selectExtLinkRegistForm") - public String selectExtLinkRegistForm(MaExtlinkVO vo, ModelMap model) { - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/extlink/selectBOExtLinkRegistForm", vo), - model, - "resultMap" - ); + public String selectExtLinkRegistForm(BOMaExtlinkVO vo, ModelMap model) { + DataMap content = new DataMap(); + List extLinkSystemList = new ArrayList<>(); + extLinkSystemList = service.selectBOextlinkSystemList(); + content.put("extLinkSystemList", extLinkSystemList); + + DataMap srchData = new DataMap(); + srchData.put("srchExtrlNm", vo.getSrchExtrlNm()); + srchData.put("srchExtrlSystem", vo.getSrchExtrlSystem()); + srchData.put("pageUnit", vo.getPageUnit()); + srchData.put("pageIndex", vo.getPageIndex()); + content.put("srchData", srchData); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/extlink/selectBOExtLinkRegistForm", vo), +// model, +// "resultMap" +// ); return "admin/store/extlink/maExtLinkC"; } @@ -92,8 +157,8 @@ public class MaExtlinkController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/insertExtLinkRegist") - public ResponseEntity insertExtLinkRegist(MaExtlinkVO vo) { + @RequestMapping(value = "/insertExtLinkRegist", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity insertExtLinkRegist(BOMaExtlinkVO vo) { List> errorList = new ArrayList<>(); if (ObjectUtils.isEmpty(vo.getExtrlNm())) { errorList.add(ValidateResultConverter.setErrorMap("extrlNm", "외부연동 명은(는) 필수 입력값입니다.")); @@ -108,10 +173,21 @@ public class MaExtlinkController { throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList)); } - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/extlink/insertBOExtLinkRegist", vo), - ReplyFromResrc::getReply - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + vo.setRegusr(user.getUserInnb()); + + DataMap result = new DataMap(); + result = service.insertBOExtLinkRegist(vo); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(result)) + .build() + ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/extlink/insertBOExtLinkRegist", vo), +// ReplyFromResrc::getReply +// ); } /** @@ -120,12 +196,30 @@ public class MaExtlinkController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping("/selectExtLinkUpdtForm") - public String selectExtLinkUpdtForm(MaExtlinkVO vo, ModelMap model) { - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/extlink/selectBOExtLinkUpdtForm", vo), - model, - "resultMap" - ); + public String selectExtLinkUpdtForm(BOMaExtlinkVO vo, ModelMap model) { + DataMap content = new DataMap(); + + DataMap srchData = new DataMap(); + srchData.put("srchExtrlNm", vo.getSrchExtrlNm()); + srchData.put("srchExtrlSystem", vo.getSrchExtrlSystem()); + srchData.put("pageUnit", vo.getPageUnit()); + srchData.put("pageIndex", vo.getPageIndex()); + content.put("srchData", srchData); + + List extLinkSystemList = new ArrayList<>(); + extLinkSystemList = service.selectBOextlinkSystemList(); + content.put("extLinkSystemList", extLinkSystemList); + + DataMap extlinkInfo = new DataMap(); + extlinkInfo = service.selectBOExtLinkUpdtForm(String.valueOf(vo.getExtrlInnb())); + content.put("extLink", extlinkInfo); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/extlink/selectBOExtLinkUpdtForm", vo), +// model, +// "resultMap" +// ); return "admin/store/extlink/maExtLinkU"; } @@ -135,8 +229,8 @@ public class MaExtlinkController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @PostMapping("/updateExtLinkUpdt") - public ResponseEntity updateExtLinkUpdt(MaExtlinkVO vo) { + @PostMapping(value = "/updateExtLinkUpdt", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateExtLinkUpdt(BOMaExtlinkVO vo) { List> errorList = new ArrayList<>(); if (ObjectUtils.isEmpty(vo.getExtrlNm())) { @@ -152,10 +246,20 @@ public class MaExtlinkController { throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList)); } - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/extlink/updateBOExtLinkUpdt", vo), - ReplyFromResrc::getReply - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + vo.setUpdusr(user.getUserInnb()); + DataMap result = new DataMap(); + result = service.updateBOExtLinkUpdt(vo); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(result)) + .build() + ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/extlink/updateBOExtLinkUpdt", vo), +// ReplyFromResrc::getReply +// ); } /** @@ -164,11 +268,26 @@ public class MaExtlinkController { */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value = "/excelFileDownload") - public void excelFileDownload(MaMbrgradVO vo, HttpServletResponse response, ModelMap model) { + public void excelFileDownload(BOMaExtlinkVO vo, HttpServletResponse response, ModelMap model) { - Map resultMap = responseHandler.handleResponseAsMap( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/extlink/selectBOexcelFileDownload",vo) - ); +// Map resultMap = responseHandler.handleResponseAsMap( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/extlink/selectBOexcelFileDownload",vo) +// ); + + DataMap resultMap = new DataMap(); + + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(vo.getPageIndex()); + paginationInfo.setRecordCountPerPage(vo.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + vo.setPaginationInfo(paginationInfo); + vo.setFirstIndex(paginationInfo.getFirstRecordIndex()); + vo.setLastIndex(paginationInfo.getLastRecordIndex()); + vo.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + List resultList = new ArrayList<>(); + resultList = service.selectBOexcelFileDownload(vo); + resultMap.put("excelList", resultList); List> excelList = new ArrayList<>(); excelList = (List>) resultMap.get("excelList"); @@ -219,12 +338,22 @@ public class MaExtlinkController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/deleteExtLinkDel", method = RequestMethod.POST) - public ResponseEntity deleteExtLinkDel(MaExtlinkVO vo, ModelMap model) { + @RequestMapping(value = "/deleteExtLinkDel", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity deleteExtLinkDel(BOMaExtlinkVO vo, ModelMap model) { + //사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + vo.setRegusr(user.getUserInnb()); + vo.setUpdusr(user.getUserInnb()); + Map message = service.deleteBOExtLinkDel(vo); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/extlink/deleteBOExtLinkDel", vo), - ReplyFromResrc::getReply - ); + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() + ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/extlink/deleteBOExtLinkDel", vo), +// ReplyFromResrc::getReply +// ); } } diff --git a/src/main/java/com/wb/domainserver/domain/admin/store/extlink/vo/BOMaExtlinkVO.java b/src/main/java/com/wb/domainserver/domain/admin/store/extlink/vo/BOMaExtlinkVO.java index e96eddf9..3631c475 100644 --- a/src/main/java/com/wb/domainserver/domain/admin/store/extlink/vo/BOMaExtlinkVO.java +++ b/src/main/java/com/wb/domainserver/domain/admin/store/extlink/vo/BOMaExtlinkVO.java @@ -1,6 +1,7 @@ package com.wb.domainserver.domain.admin.store.extlink.vo; import com.wb.domainserver.domain.comm.vo.AbstractVO; +import jakarta.validation.constraints.NotNull; import lombok.Data; import lombok.EqualsAndHashCode; @@ -15,6 +16,7 @@ public class BOMaExtlinkVO extends AbstractVO { private Integer extrlInnb; /** 외부연동 명 */ + @NotNull(message = "외부연동명") private String extrlNm; /** 외부연동 시스템 */ diff --git a/src/main/java/com/wb/domainserver/domain/admin/store/mbrgrad/controller/MaMbrgradController.java b/src/main/java/com/wb/domainserver/domain/admin/store/mbrgrad/controller/MaMbrgradController.java index c2e676e6..217a1892 100644 --- a/src/main/java/com/wb/domainserver/domain/admin/store/mbrgrad/controller/MaMbrgradController.java +++ b/src/main/java/com/wb/domainserver/domain/admin/store/mbrgrad/controller/MaMbrgradController.java @@ -1,18 +1,29 @@ package com.wb.domainserver.domain.admin.store.mbrgrad.controller; import com.wb.domainserver.common.msg.GconeMessageSource; +import com.wb.domainserver.common.mvc.tags.ui.pagination.PaginationInfo; +import com.wb.domainserver.common.prop.PaginationProperties; +import com.wb.domainserver.domain.admin.store.mbrgrad.service.BOMaMbrgradService; +import com.wb.domainserver.domain.admin.store.mbrgrad.vo.BOMaMbrgradVO; import com.wb.domainserver.domain.admin.store.mbrgrad.vo.MaMbrgradVO; +import com.wb.domainserver.domain.admin.store.sopmal.service.BOMaSopmalService; import com.wb.domainserver.exception.WnbtRestException; +import com.wb.domainserver.response.WnbtResponse; +import com.wb.domainserver.response.WnbtResponseBody; import com.wb.domainserver.response.WnbtWebClientResponseHandler; +import com.wb.domainserver.security.authentication.AnonymousUser; +import com.wb.domainserver.security.authentication.MemberJwtContextHolder; import com.wb.domainserver.security.authorization.annotation.AuthPolicy; import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.util.communicate.*; +import com.wb.domainserver.util.dataaccess.DataMap; import com.wb.domainserver.util.excel.ExcelDownloadUtil; import com.wb.domainserver.util.file.service.FileStorageService; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -42,18 +53,33 @@ public class MaMbrgradController { @Autowired private WnbtWebClientResponseHandler responseHandler; + @Autowired + private BOMaMbrgradService service; + @Autowired + private PaginationProperties paginationProperties; + @Autowired + private BOMaSopmalService sopmalService; /**select * 회원 등급 목록 폼 * @return */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectMbrGradListInqireForm") - public String selectMbrGradListInqireForm(MaMbrgradVO vo, ModelMap model) { - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/mbrgrad/selectBOMbrGradListInqireForm", vo), - model, - "resultMap" - ); + public String selectMbrGradListInqireForm(BOMaMbrgradVO vo, ModelMap model) { + /*쇼핑몰 조회*/ + List sopmalList = new ArrayList<>(); + sopmalList = sopmalService.selectBOSopmalCdNm(); + + DataMap content = new DataMap(); + content.put("paramVO", vo); + content.put("sopmalList", sopmalList); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/mbrgrad/selectBOMbrGradListInqireForm", vo), +// model, +// "resultMap" +// ); return "admin/store/mbrgrad/maMbrGradListInqireForm"; } @@ -63,12 +89,31 @@ public class MaMbrgradController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectMbrGradListInqire") - public String selectMbrGradListInqire(MaMbrgradVO vo, ModelMap model) { - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/mbrgrad/selectBOMbrGradListInqire", vo), - model, - "resultMap" - ); + public String selectMbrGradListInqire(BOMaMbrgradVO vo, ModelMap model) { + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(vo.getPageIndex()); + paginationInfo.setRecordCountPerPage(vo.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + + vo.setPaginationInfo(paginationInfo); + vo.setFirstIndex(paginationInfo.getFirstRecordIndex()); + vo.setLastIndex(paginationInfo.getLastRecordIndex()); + vo.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + List mbrgradList = new ArrayList<>(); + mbrgradList = service.selectBOMbrGradList(vo); + + DataMap content = new DataMap(); + content.put("paramVO", vo); + content.put("resultList", mbrgradList); + content.put("paginationInfo", vo.getPaginationInfo()); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/mbrgrad/selectBOMbrGradListInqire", vo), +// model, +// "resultMap" +// ); return "admin/store/mbrgrad/maMbrGradListInqireR"; } @@ -79,12 +124,21 @@ public class MaMbrgradController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value="/selectMbrGradUpdtForm") - public String selectMbrGradUpdtForm(MaMbrgradVO vo, ModelMap model) { - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/mbrgrad/selectBOMbrGradUpdtForm", vo), - model, - "resultMap" - ); + public String selectMbrGradUpdtForm(BOMaMbrgradVO vo, ModelMap model) { + /*회원등급그룹 조회*/ + Map mbrGradInfo = new HashMap<>(); + mbrGradInfo = service.selectBOMbrGradUpdtForm(vo); + + Map srchData = new HashMap<>(); + srchData.put("maMbrGradVO", vo); + srchData.put("mbrGradInfo", mbrGradInfo); + + model.addAttribute("resultMap", mbrGradInfo); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/mbrgrad/selectBOMbrGradUpdtForm", vo), +// model, +// "resultMap" +// ); return "admin/store/mbrgrad/maMbrGradU"; } @@ -95,8 +149,8 @@ public class MaMbrgradController { */ @SuppressWarnings("unchecked") @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/updateMbrGradUpdt") - public ResponseEntity updateMbrGradUpdt(MaMbrgradVO vo, BindingResult bindingResult, HttpServletRequest request) { + @RequestMapping(value = "/updateMbrGradUpdt", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateMbrGradUpdt(BOMaMbrgradVO vo, BindingResult bindingResult, HttpServletRequest request) { /*필수 입력 값 체크*/ List> errorList = new ArrayList<>(); if (ObjectUtils.isEmpty(vo.getMbrGradNmArr())) { @@ -114,10 +168,21 @@ public class MaMbrgradController { ulpladFileMap = filestore.fileUpload(request); //BDIG로 경로 구분 get vo.setFileInfo(ulpladFileMap); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/mbrgrad/updateBOMbrGradUpdt", vo), - ReplyFromResrc::getReply + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + vo.setRegusr(user.getUserInnb()); + vo.setUpdusr(user.getUserInnb()); + Map result = new HashMap<>(); + result = service.updateBOMbrGradUpdt(vo); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(result)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/mbrgrad/updateBOMbrGradUpdt", vo), +// ReplyFromResrc::getReply +// ); } /** @@ -126,12 +191,21 @@ public class MaMbrgradController { */ @Policy(AuthPolicy.PUBLIC) @RequestMapping(value = "/excelFileDownload") - public void excelFileDownload(MaMbrgradVO vo, HttpServletResponse response, ModelMap model) { + public void excelFileDownload(BOMaMbrgradVO vo, HttpServletResponse response, ModelMap model) { vo.setPageIndex(1); - vo.setPageUnit(50); - Map resultMap = responseHandler.handleResponseAsMap( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/mbrgrad/selectBOMbrGradListInqire", vo) - ); + vo.setPageUnit(10000); + + /*쇼핑몰 조회*/ + List sopmalList = new ArrayList<>(); + sopmalList = sopmalService.selectBOSopmalCdNm(); + + DataMap resultMap = new DataMap(); + resultMap.put("paramVO", vo); + resultMap.put("sopmalList", sopmalList); + +// Map resultMap = responseHandler.handleResponseAsMap( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/mbrgrad/selectBOMbrGradListInqire", vo) +// ); /*엑셀 데이터 set*/ List> excelList = new ArrayList<>(); diff --git a/src/main/java/com/wb/domainserver/domain/admin/store/mbrgrad/vo/BOMaMbrgradVO.java b/src/main/java/com/wb/domainserver/domain/admin/store/mbrgrad/vo/BOMaMbrgradVO.java index 88ad58ce..c80d035f 100644 --- a/src/main/java/com/wb/domainserver/domain/admin/store/mbrgrad/vo/BOMaMbrgradVO.java +++ b/src/main/java/com/wb/domainserver/domain/admin/store/mbrgrad/vo/BOMaMbrgradVO.java @@ -6,6 +6,7 @@ import java.util.List; import com.wb.domainserver.domain.comm.vo.AbstractVO; import com.wb.domainserver.util.dataaccess.DataMap; +import jakarta.validation.constraints.NotBlank; import lombok.Data; import lombok.EqualsAndHashCode; @@ -17,10 +18,11 @@ public class BOMaMbrgradVO extends AbstractVO { /**회원등급그룹 고유번호(PK)*/ private String mbrGradGroupInnb; - /**쇼핑몰코드*/ + @NotBlank(message = "쇼핑몰") private String sopmalCd; /**쇼핑몰이름*/ private String sopmalNm; + @NotBlank(message = "회원등급그룹명") /**회원등급그룹명*/ private String mbrGradGroupNm; /**산정기간월수*/ @@ -33,6 +35,7 @@ public class BOMaMbrgradVO extends AbstractVO { private String gradMdatCycleMtCnt; /**사용여부*/ private String useAt; + /**회원등급 고유번호(PK)*/ private String mbrGradInnb; /**쿠폰팩 고유번호(FK)*/ diff --git a/src/main/java/com/wb/domainserver/domain/admin/store/sopmal/controller/MaSopmalController.java b/src/main/java/com/wb/domainserver/domain/admin/store/sopmal/controller/MaSopmalController.java index 6928ff8a..6289e72b 100644 --- a/src/main/java/com/wb/domainserver/domain/admin/store/sopmal/controller/MaSopmalController.java +++ b/src/main/java/com/wb/domainserver/domain/admin/store/sopmal/controller/MaSopmalController.java @@ -1,13 +1,20 @@ package com.wb.domainserver.domain.admin.store.sopmal.controller; import com.wb.domainserver.common.msg.GconeMessageSource; +import com.wb.domainserver.common.mvc.tags.ui.pagination.PaginationInfo; +import com.wb.domainserver.common.prop.PaginationProperties; import com.wb.domainserver.domain.admin.store.sopmal.service.BOMaSopmalService; import com.wb.domainserver.domain.admin.store.sopmal.vo.BOMaSopmalVO; import com.wb.domainserver.domain.admin.store.sopmal.vo.MaSopmalVO; import com.wb.domainserver.domain.admin.sys.authgrp.vo.MaAuthgrpVO; +import com.wb.domainserver.domain.admin.sys.comncd.service.BOMaComncdService; +import com.wb.domainserver.domain.admin.sys.comncd.vo.BOMaComncdVO; 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.*; @@ -18,6 +25,7 @@ import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -52,9 +60,6 @@ import java.util.regex.Pattern; @RequestMapping("/admin/store/sopmal") public class MaSopmalController { - @Autowired - private BOMaSopmalService service; - /** WebClient 호출을 위한 wrapper */ @Autowired private WnbtWebClientResponseHandler responseHandler; @@ -66,19 +71,53 @@ public class MaSopmalController { @Autowired private GconeMessageSource gconeMessageSource; + @Autowired + private BOMaSopmalService service; + + @Autowired + private PaginationProperties paginationProperties; + + @Autowired + private BOMaComncdService bOMaComncdService; + /** * 쇼핑몰 목록 조회 * @return */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping("/selectSopmalListForm") - public String selectSopmalListForm(MaSopmalVO vo, ModelMap model) { + public String selectSopmalListForm(BOMaSopmalVO vo, ModelMap model) { + DataMap content = new DataMap(); + // 페이징 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(vo.getPageIndex()); + paginationInfo.setRecordCountPerPage(vo.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopmal/selectBOSopmalListInqireForm", vo), - model, - "resultMap" - ); + vo.setPaginationInfo(paginationInfo); + vo.setFirstIndex(paginationInfo.getFirstRecordIndex()); + vo.setLastIndex(paginationInfo.getLastRecordIndex()); + vo.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + List companyAllList = new ArrayList<>(); + companyAllList = service.selectBOCompanyAllList(); + content.put("companyAllList", companyAllList); + + BOMaComncdVO cdVO = new BOMaComncdVO(); + List sopmalTyCdList = new ArrayList<>(); + cdVO.setGroupCd("SOPMAL_TY"); + sopmalTyCdList = service.selectCommCode(cdVO); + content.put("sopmalTyCdList", sopmalTyCdList); + + content.put("paramVO", vo); + content.put("paginationInfo", vo.getPaginationInfo()); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopmal/selectBOSopmalListInqireForm", vo), +// model, +// "resultMap" +// ); return "admin/store/sopmal/maSopmalListInqireForm"; } @@ -88,13 +127,32 @@ public class MaSopmalController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping("/selectSopmalListInqire") - public String selectSopmalListInqire(MaSopmalVO vo, ModelMap model) { + public String selectSopmalListInqire(BOMaSopmalVO vo, ModelMap model) { + DataMap content = new DataMap(); + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(vo.getPageIndex()); + paginationInfo.setRecordCountPerPage(vo.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopmal/selectBOSopmalListInqire", vo), - model, - "resultMap" - ); + vo.setPaginationInfo(paginationInfo); + vo.setFirstIndex(paginationInfo.getFirstRecordIndex()); + vo.setLastIndex(paginationInfo.getLastRecordIndex()); + vo.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + content.put("paramVO", vo); + + List sopmalList = new ArrayList<>(); + sopmalList = service.selectBOSopmalList(vo); + content.put("sopmalList", sopmalList); + + content.put("paginationInfo", vo.getPaginationInfo()); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopmal/selectBOSopmalListInqire", vo), +// model, +// "resultMap" +// ); return "admin/store/sopmal/maSopmalListInqireR"; } @@ -105,13 +163,83 @@ public class MaSopmalController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping("/selectSopmalRegistForm") - public String selectSopmalRegistForm(MaSopmalVO vo, ModelMap model) { + public String selectSopmalRegistForm(BOMaSopmalVO vo, ModelMap model) { + DataMap content = new DataMap(); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopmal/selectBOSopmalRegistForm", vo), - model, - "resultMap" - ); + List srchList = new ArrayList<>(); + DataMap srchMap = new DataMap(); + srchMap.put("srchType", vo.getSrchType()); + srchMap.put("srchStr", vo.getSrchStr()); + srchMap.put("srchSopmalTyCd", vo.getSrchSopmalTyCd()); + srchMap.put("srchBsnmInnb", vo.getSrchBsnmInnb()); + srchMap.put("srchOperAt", vo.getSrchOperAt()); + srchMap.put("pageUnit", vo.getPageUnit()); + srchMap.put("pageIndex", vo.getPageIndex()); + srchList.add(srchMap); + content.put("srchList", srchList); + + List companyAllList = new ArrayList<>(); + companyAllList = service.selectBOCompanyAllList(); + content.put("companyAllList", companyAllList); + + /** 회원등급 삭제 7.2 */ +// List mbrGradList = new ArrayList<>(); +// mbrGradList = service.selectBOMbrGradList(); +// content.put("mbrGradList", mbrGradList); + + List themeList = new ArrayList<>(); + themeList = service.selectBOThemeList(); + content.put("themeList", themeList); + + List CGN002 = new ArrayList<>(); + DataMap dm = new DataMap(); + dm.put("groupCd", "STPLAT_DV"); + CGN002 = service.selectBOCommcdClauseDetailList(dm); + content.put("CGN002", CGN002); + + List clause01List = new ArrayList<>(); + DataMap cl01 = new DataMap(); + cl01.put("stplatDvCd", "01"); + clause01List = service.selectBOClauseList(cl01); + content.put("clause01List", clause01List); + + List clause02List = new ArrayList<>(); + DataMap cl02 = new DataMap(); + cl02.put("stplatDvCd", "02"); + clause02List = service.selectBOClauseList(cl02); + content.put("clause02List", clause02List); + + BOMaComncdVO cdVO = new BOMaComncdVO(); + + List pgList = new ArrayList<>(); + cdVO.setGroupCd("SETLE_SETUP_TY"); + pgList = service.selectCommCode(cdVO); + content.put("pgList", pgList); + + List sopmalTyCdList = new ArrayList<>(); + cdVO.setGroupCd("SOPMAL_TY"); + sopmalTyCdList = service.selectCommCode(cdVO); + content.put("sopmalTyCdList", sopmalTyCdList); + +// List mlgMxmmUseDvList = new ArrayList<>(); +// cdVO.setGroupCd("MLG_MXMM_USE_DV"); +// mlgMxmmUseDvList = service.selectCommCode(cdVO); +// content.put("mlgMxmmUseDvList", mlgMxmmUseDvList); + + List CGN001 = new ArrayList<>(); + cdVO.setGroupCd("EMAIL_ADRES"); + CGN001 = service.selectCommCode(cdVO); + content.put("CGN001", CGN001); + + DataMap extrlList = service.selectBOExtrlList(); + content.put("extrlList", extrlList); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopmal/selectBOSopmalRegistForm", vo), +// model, +// "resultMap" +// ); return "admin/store/sopmal/maSopmalC"; } @@ -121,8 +249,8 @@ public class MaSopmalController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/insertSopmalRegist") - public ResponseEntity insertSopmalRegist(@Validated MaSopmalVO vo, BindingResult bindingResult) { + @RequestMapping(value = "/insertSopmalRegist", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity insertSopmalRegist(@Validated BOMaSopmalVO vo, BindingResult bindingResult) { if(bindingResult.hasErrors()) { throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); } @@ -158,10 +286,21 @@ public class MaSopmalController { throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList)); } - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopmal/insertBOSopmalRegist", vo), - ReplyFromResrc::getReply - ); + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + vo.setRegusr(user.getUserInnb()); + + DataMap content = new DataMap(); + content = service.insertBOSopmalRegist(vo); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() + ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopmal/insertBOSopmalRegist", vo), +// ReplyFromResrc::getReply +// ); } /** @@ -170,13 +309,115 @@ public class MaSopmalController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping("/selectSopmalUpdtForm") - public String selectSopmalUpdtForm(MaSopmalVO vo, ModelMap model) { + public String selectSopmalUpdtForm(BOMaSopmalVO vo, ModelMap model) { + DataMap content = new DataMap(); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopmal/selectBOSopmalUpdtForm", vo), - model, - "resultMap" - ); + List srchList = new ArrayList<>(); + DataMap srchMap = new DataMap(); + srchMap.put("srchType", vo.getSrchType()); + srchMap.put("srchStr", vo.getSrchStr()); + srchMap.put("srchSopmalTyCd", vo.getSrchSopmalTyCd()); + srchMap.put("srchBsnmInnb", vo.getSrchBsnmInnb()); + srchMap.put("srchOperAt", vo.getSrchOperAt()); + srchMap.put("pageUnit", vo.getPageUnit()); + srchMap.put("pageIndex", vo.getPageIndex()); + srchList.add(srchMap); + content.put("srchList", srchList); + + List companyAllList = new ArrayList<>(); + companyAllList = service.selectBOCompanyAllList(); + content.put("companyAllList", companyAllList); + + /** 회원등급 삭제 7.2 */ +// List mbrGradList = new ArrayList<>(); +// mbrGradList = service.selectBOMbrGradList(); +// content.put("mbrGradList", mbrGradList); + + List themeList = new ArrayList<>(); + themeList = service.selectBOThemeList(); + content.put("themeList", themeList); + + List CGN002 = new ArrayList<>(); + DataMap dm = new DataMap(); + dm.put("groupCd", "STPLAT_DV"); + CGN002 = service.selectBOCommcdClauseDetailList(dm); + content.put("CGN002", CGN002); + + List clause01List = new ArrayList<>(); + DataMap cl01 = new DataMap(); + cl01.put("stplatDvCd", "01"); + clause01List = service.selectBOClauseList(cl01); + content.put("clause01List", clause01List); + + List clause02List = new ArrayList<>(); + DataMap cl02 = new DataMap(); + cl02.put("stplatDvCd", "02"); + clause02List = service.selectBOClauseList(cl02); + content.put("clause02List", clause02List); + + BOMaComncdVO cdVO = new BOMaComncdVO(); + + List pgList = new ArrayList<>(); + cdVO.setGroupCd("SETLE_SETUP_TY"); + pgList = service.selectCommCode(cdVO); + content.put("pgList", pgList); + + List CGN001 = new ArrayList<>(); + cdVO.setGroupCd("EMAIL_ADRES"); + CGN001 = service.selectCommCode(cdVO); + content.put("CGN001", CGN001); + +// List mlgMxmmUseDvList = new ArrayList<>(); +// cdVO.setGroupCd("MLG_MXMM_USE_DV"); +// mlgMxmmUseDvList = service.selectCommCode(cdVO); +// content.put("mlgMxmmUseDvList", mlgMxmmUseDvList); + + List sopmalTyCdList = new ArrayList<>(); + cdVO.setGroupCd("SOPMAL_TY"); + sopmalTyCdList = service.selectCommCode(cdVO); + content.put("sopmalTyCdList", sopmalTyCdList); + + List sopmalDetailList = new ArrayList<>(); + sopmalDetailList = service.selectBOSopmalUpdtForm(vo); + content.put("sopmalDetailList", sopmalDetailList); + + List clauseList = new ArrayList<>(); + clauseList = service.selectBOSopmalUpdtFormClauseList(vo); + content.put("clauseList", clauseList); + + List sitelList = new ArrayList<>(); + sitelList = service.selectBOSopmalUpdtFormSitelList(vo); + content.put("sitelList", sitelList); + + List companyList = new ArrayList<>(); + companyList = service.selectBOSopmalUpdtFormCompanyList(vo); + content.put("companyList", companyList); + + /** 회원등급 삭제 7.2 */ +// DataMap mbrGradByShop = service.selectBOMbrGradGroupByShop(vo); +// content.put("mbrGradByShop", mbrGradByShop); + + /*DataMap extrlByShop = service.selectBOExtrlByShop(vo); + content.put("extrlByShop", extrlByShop); + + DataMap extrlList = service.selectBOExtrlList(); + content.put("extrlList", extrlList);*/ + + DataMap payLinkList = service.selectBOShopPayLinkList(vo); + content.put("payLinkList", payLinkList); + + if(payLinkList != null){ + List payInfoList = service.selectBOpayInfoList(payLinkList); + content.put("payInfoList", payInfoList); + } + + log.debug("content result {}", content); + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopmal/selectBOSopmalUpdtForm", vo), +// model, +// "resultMap" +// ); return "admin/store/sopmal/maSopmalU"; } @@ -185,8 +426,8 @@ public class MaSopmalController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/updateSopmalUpdt") - public ResponseEntity updateSopmalUpdt(@Validated MaSopmalVO vo, BindingResult bindingResult, HttpServletRequest request) { + @RequestMapping(value = "/updateSopmalUpdt", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateSopmalUpdt(@Validated BOMaSopmalVO vo, BindingResult bindingResult, HttpServletRequest request) { if(bindingResult.hasErrors()) { throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); } @@ -215,13 +456,25 @@ public class MaSopmalController { vo.setMlgMxmmUseAmt("0"); } + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + vo.setUpdusr(user.getUserInnb()); + log.debug("updateBOSopmalUpdt controller {}", vo.getJoinComptWords()); + DataMap content = new DataMap(); + content = service.updateBOSopmalUpdt(vo); + if(errorList != null && !errorList.isEmpty()) { throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList)); } - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopmal/updateBOSopmalUpdt", vo), - ReplyFromResrc::getReply - ); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() + ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopmal/updateBOSopmalUpdt", vo), +// ReplyFromResrc::getReply +// ); } /** @@ -229,13 +482,23 @@ public class MaSopmalController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/selectSubClauseList") - public ResponseEntity updateSopmalUpdt(MaSopmalVO vo) { + @RequestMapping(value = "/selectSubClauseList", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateSopmalUpdt(BOMaSopmalVO vo) { - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopmal/selectBOSubClauseList", vo), - ReplyFromResrc::getReply - ); + DataMap content = new DataMap(); + List clauseList = new ArrayList<>(); + clauseList = service.selectBOSubClauseList(vo); + + content.put("clauseList", clauseList); + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() + ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopmal/selectBOSubClauseList", vo), +// ReplyFromResrc::getReply +// ); } /** @@ -244,12 +507,18 @@ public class MaSopmalController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectBusinessInformation") - public String selectBusinessInformation(MaSopmalVO vo, ModelMap model) { - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopmal/selectBOBusinessInformation", vo), - model, - "resultSrchMap" - ); + public String selectBusinessInformation(BOMaSopmalVO vo, ModelMap model) { + DataMap content = new DataMap(); + List list = new ArrayList<>(); + list = service.selectBOBusinessInformation(vo); + content.put("list", list); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopmal/selectBOBusinessInformation", vo), +// model, +// "resultSrchMap" +// ); return "admin/store/sopmal/MaBsnmInqirePopupR"; } @@ -258,12 +527,29 @@ public class MaSopmalController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/selectClauseInformation") - public ResponseEntity selectClauseInformation(MaSopmalVO vo) { - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopmal/selectBOClauseInformation", vo), - ReplyFromResrc::getReply - ); + @RequestMapping(value = "/selectClauseInformation", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity selectClauseInformation(BOMaSopmalVO vo) { + DataMap content = new DataMap(); + List clauseList = new ArrayList<>(); + clauseList = service.selectBOClauseInformation(vo); + + /** 은행 구분, 은행 코드 이름, 계좌 구분 조회*/ + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + bOMaComncdVO.setGroupCd("STPLAT_DV"); + List stplat = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + content.put("clauseList", clauseList); + content.put("stplat", stplat); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() + ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopmal/selectBOClauseInformation", vo), +// ReplyFromResrc::getReply +// ); } /** @@ -271,8 +557,8 @@ public class MaSopmalController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/selectSopmalCdduplicat") - public ResponseEntity selectSopmalCdduplicat(MaSopmalVO vo) { + @RequestMapping(value = "/selectSopmalCdduplicat", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity selectSopmalCdduplicat(BOMaSopmalVO vo) { List> errorList = new ArrayList<>(); final String REGEX_CD = "^[a-zA-Z\\s]*$"; @@ -283,10 +569,20 @@ public class MaSopmalController { if(errorList != null && !errorList.isEmpty()) { throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList)); } - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopmal/selectBOSopmalCdduplicat", vo), - ReplyFromResrc::getReply - ); + + DataMap content = new DataMap(); + String message = service.selectBOSopmalCdduplicat(vo); + content.put("message", message); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() + ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopmal/selectBOSopmalCdduplicat", vo), +// ReplyFromResrc::getReply +// ); } /** @@ -362,17 +658,20 @@ public class MaSopmalController { * @return */ @Policy(AuthPolicy.PUBLIC) - @RequestMapping(value = "/selectJoinInfo") - public ResponseEntity selectJoinInfo(MaSopmalVO vo) { + @RequestMapping(value = "/selectJoinInfo", produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity selectJoinInfo(BOMaSopmalVO vo) { + DataMap content = new DataMap(); + content.put("joinInfo", service.selectBOJoinInfo(vo)); -// Map resultMap = responseHandler.handleResponseAsMap( -// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopmal/selectBOJoinInfo", vo) -// ); - - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopmal/selectBOJoinInfo", vo), - ReplyFromResrc::getReply + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopmal/selectBOJoinInfo", vo), +// ReplyFromResrc::getReply +// ); } } diff --git a/src/main/java/com/wb/domainserver/domain/admin/store/sopmal/vo/BOMaSopmalVO.java b/src/main/java/com/wb/domainserver/domain/admin/store/sopmal/vo/BOMaSopmalVO.java index 043f8fe1..d703aac4 100644 --- a/src/main/java/com/wb/domainserver/domain/admin/store/sopmal/vo/BOMaSopmalVO.java +++ b/src/main/java/com/wb/domainserver/domain/admin/store/sopmal/vo/BOMaSopmalVO.java @@ -5,6 +5,7 @@ import java.util.List; import com.wb.domainserver.domain.comm.vo.AbstractVO; import com.wb.domainserver.util.dataaccess.DataMap; +import jakarta.validation.constraints.NotBlank; import lombok.Data; import lombok.EqualsAndHashCode; @@ -51,6 +52,8 @@ public class BOMaSopmalVO extends AbstractVO { /*대표자 이메일*/ private String reprsntEmail; + private String reprsntId; + private String reprsntDomain; /*대표자 전화번호*/ private String reprsntTelnb; @@ -63,41 +66,54 @@ public class BOMaSopmalVO extends AbstractVO { private String mbrGradGroupInnb; /** 테마 고유번호 */ + @NotBlank(message = "테마") private String themaInnb; /** 쇼핑몰명 */ + @NotBlank(message = "쇼핑몰명") private String sopmalNm; /** 자사몰, 독립몰 */ + @NotBlank(message = "구분") private String sopmalTyCd; /** PC도메인주소 */ + @NotBlank(message = "PC도메인주소") private String pcDomnAdres; /** 모바일도메인주소 */ + @NotBlank(message = "모바일도메인주소") private String mblDomnAdres; /** 파비콘경로 */ + @NotBlank(message = "파비콘경로") private String fviconCours; /** 대체URL */ + @NotBlank(message = "대체URL") private String rplcUrl; /** 이메일 자동발송 발신주소 */ + @NotBlank(message = "이메일 자동발송 발신주소") private String emailAtmcSndngDsptchAdres; /** SMS 자동발송 발신번호 */ + @NotBlank(message = "SMS 자동발송 발신번호") private String smsAtmcSndngDsptchNb; /** SMS 자동발송제한 시작시간 */ + @NotBlank(message = "SMS 자동발송제한 시작시간") private String smsAtmcSndngLmttBgntme; /** SMS 자동발송제한 종료시간 */ + @NotBlank(message = "SMS 자동발송제한 종료시간") private String smsAtmcSndngLmttEndtme; /** 운영여부 */ + @NotBlank(message = "운영여부") private String operAt; + /** 외부 연동 */ /** 카카오 로그인 */ private String kakaoIntrlckAt; @@ -248,6 +264,8 @@ public class BOMaSopmalVO extends AbstractVO { /** 이메일 */ private String email; + private String id; + private String domain; /** 영업신고번호 */ private String bsnDclNb; @@ -449,6 +467,10 @@ public class BOMaSopmalVO extends AbstractVO { private DataMap codeMap; private List codeList; + /** 중복 체크 및 정합성검사 용 */ + private String isChkdDup; + private String isChkdStplat; + /** pc 결제정보 List */ private String pcSetleTypeList; diff --git a/src/main/java/com/wb/domainserver/domain/admin/store/sopthema/controller/MaSopthemaController.java b/src/main/java/com/wb/domainserver/domain/admin/store/sopthema/controller/MaSopthemaController.java index 8e356d28..79649938 100644 --- a/src/main/java/com/wb/domainserver/domain/admin/store/sopthema/controller/MaSopthemaController.java +++ b/src/main/java/com/wb/domainserver/domain/admin/store/sopthema/controller/MaSopthemaController.java @@ -1,15 +1,26 @@ package com.wb.domainserver.domain.admin.store.sopthema.controller; import com.wb.domainserver.common.msg.GconeMessageSource; +import com.wb.domainserver.common.mvc.tags.ui.pagination.PaginationInfo; +import com.wb.domainserver.common.prop.PaginationProperties; +import com.wb.domainserver.domain.admin.store.sopmal.service.BOMaSopmalService; +import com.wb.domainserver.domain.admin.store.sopthema.service.BOSopthemaService; +import com.wb.domainserver.domain.admin.store.sopthema.vo.BOSopThemaVO; import com.wb.domainserver.domain.admin.store.sopthema.vo.MaSopThemaVO; import com.wb.domainserver.exception.WnbtRestException; +import com.wb.domainserver.exception.code.ErrorCode; import com.wb.domainserver.response.WnbtResponse; +import com.wb.domainserver.response.WnbtResponseBody; import com.wb.domainserver.response.WnbtWebClientResponseHandler; +import com.wb.domainserver.security.authentication.AnonymousUser; +import com.wb.domainserver.security.authentication.MemberJwtContextHolder; import com.wb.domainserver.security.authorization.annotation.AuthPolicy; import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.util.communicate.*; +import com.wb.domainserver.util.dataaccess.DataMap; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -18,6 +29,10 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + /** * 쇼핑몰 테마 관리 Controller * @@ -49,21 +64,32 @@ public class MaSopthemaController { @Autowired private GconeMessageSource gconeMessageSource; + @Autowired + private BOSopthemaService service; + @Autowired + private BOMaSopmalService boMaSopmalService; + @Autowired + private PaginationProperties paginationProperties; + /** * 쇼핑몰 테마 목록 조회 * @return */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping("/selectSopThemaListInqireForm") - public String selectSopThemaListInqireForm(MaSopThemaVO maSopthemaVO, - ModelMap model) { + public String selectSopThemaListInqireForm(BOSopThemaVO boSopthemaVO, ModelMap model) { + Map reulstMap = new HashMap<>(); - //BO 발송그룹 목록조회 API 호출 - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopthema/selectBOSopThemaListInqireForm", maSopthemaVO), - model, - "resultMap" - ); + List SopmalCdNmList = boMaSopmalService.selectBOSopmalCdNm(); + reulstMap.put("SopmalCdNmList", SopmalCdNmList); //검색조건 > 쇼핑몰 + reulstMap.put("BOSopThemaVO", boSopthemaVO); + + model.addAttribute("resultMap", reulstMap); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopthema/selectBOSopThemaListInqireForm", maSopthemaVO), +// model, +// "resultMap" +// ); return "admin/store/sopthema/MaSopThemaListInqireRForm"; } @@ -74,23 +100,41 @@ public class MaSopthemaController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping("/selectSopThemaListInqire") - public String selectSopThemaListInqire(MaSopThemaVO maSopthemaVO, - ModelMap model) { + public String selectSopThemaListInqire(BOSopThemaVO boSopthemaVO, ModelMap model) { //BO 발송그룹 목록조회 API 호출 try { - log.debug("It's excuted!"); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopthema/selectBOSopThemaListInqire", maSopthemaVO), - model, - "resultMap" - ); + Map content = new HashMap<>(); + + //페이징 처리를 위한 pagination 객체 생성 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(boSopthemaVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(boSopthemaVO.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + boSopthemaVO.setPaginationInfo(paginationInfo); + + //페이징 처리를 위한 값 설정 + boSopthemaVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + boSopthemaVO.setLastIndex(paginationInfo.getLastRecordIndex()); + boSopthemaVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + //쇼핑몰 테마 목록조회 + List list = service.selectBOSopThemaList(boSopthemaVO); + + content.put("BOSopThemaVO", boSopthemaVO); + content.put("paginationInfo", boSopthemaVO.getPaginationInfo()); + content.put("list", list); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopthema/selectBOSopThemaListInqire", maSopthemaVO), +// model, +// "resultMap" +// ); } catch(Exception e) { - e.printStackTrace(); + log.error(e.getMessage()); + throw new WnbtRestException(ErrorCode.INTERNAL_SERVER_ERROR); } - - //BO 발송그룹 목록조회 API 결과를 Map으로 변환하여 설정 - return "admin/store/sopthema/MaSopThemaListInqireR"; } @@ -101,15 +145,33 @@ public class MaSopthemaController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping("/selectSopThemaRegistForm") - public String selectSopThemaRegistForm(MaSopThemaVO maSopthemaVO, - ModelMap model) { + public String selectSopThemaRegistForm(BOSopThemaVO boSopthemaVO, ModelMap model) { + Map content = new HashMap<>(); + //페이징 처리를 위한 pagination 객체 생성 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(boSopthemaVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(boSopthemaVO.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + boSopthemaVO.setPaginationInfo(paginationInfo); - //BO 발송그룹 목록조회 API 호출 - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopthema/selectBOSopThemaListInqire", maSopthemaVO), - model, - "resultMap" - ); + //페이징 처리를 위한 값 설정 + boSopthemaVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + boSopthemaVO.setLastIndex(paginationInfo.getLastRecordIndex()); + boSopthemaVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + //쇼핑몰 테마 목록조회 + List list = service.selectBOSopThemaList(boSopthemaVO); + + content.put("BOSopThemaVO", boSopthemaVO); + content.put("paginationInfo", boSopthemaVO.getPaginationInfo()); + content.put("list", list); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopthema/selectBOSopThemaListInqire", maSopthemaVO), +// model, +// "resultMap" +// ); return "admin/store/sopthema/MaSopThemaRegistC"; } @@ -120,14 +182,20 @@ public class MaSopthemaController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping("/selectSopThemaUpdtForm") - public String selectSopThemaUpdtForm(MaSopThemaVO maSopthemaVO, - ModelMap model) { + public String selectSopThemaUpdtForm(BOSopThemaVO boSopthemaVO, ModelMap model) { + Map content = new HashMap<>(); + //쇼핑몰 테마 상세 정보 조회 + List list = service.selectBOSopthemaDtl(boSopthemaVO); - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopthema/selectBOSopThemaDtlInqire", maSopthemaVO), - model, - "resultMap" - ); + content.put("BOSopThemaVO", boSopthemaVO); + content.put("list", list); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopthema/selectBOSopThemaDtlInqire", maSopthemaVO), +// model, +// "resultMap" +// ); return "admin/store/sopthema/MaSopThemaUpdtU"; } @@ -137,16 +205,27 @@ public class MaSopthemaController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/insertSopThemaRegist", method = RequestMethod.POST) - public ResponseEntity insertSopThemaRegist(@Validated MaSopThemaVO maSopthemaVO, BindingResult bindingResult) { - + @RequestMapping(value = "/insertSopThemaRegist", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity insertSopThemaRegist(@Validated BOSopThemaVO boSopthemaVO, BindingResult bindingResult) { if(bindingResult.hasErrors()) { throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); } - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopthema/insertBOSopThemaRegist", maSopthemaVO), - ReplyFromResrc::getReply - ); + //사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + boSopthemaVO.setRegusr(user.getUserInnb()); + boSopthemaVO.setUpdusr(user.getUserInnb()); + // 쇼핑몰 테마 등록 + Map message = service.insertBOSopThema(boSopthemaVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() + ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopthema/insertBOSopThemaRegist", maSopthemaVO), +// ReplyFromResrc::getReply +// ); } /** @@ -154,16 +233,28 @@ public class MaSopthemaController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/updateSopThemaUpdt", method = RequestMethod.POST) - public ResponseEntity updateSopThemaUpdt(@Validated MaSopThemaVO maSopthemaVO, BindingResult bindingResult) { + @RequestMapping(value = "/updateSopThemaUpdt", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateSopThemaUpdt(@Validated BOSopThemaVO boSopthemaVO, BindingResult bindingResult) { if(bindingResult.hasErrors()) { throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); } - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopthema/updateBOSopThemaUpdt", maSopthemaVO), - ReplyFromResrc::getReply - ); + //사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + boSopthemaVO.setRegusr(user.getUserInnb()); + boSopthemaVO.setUpdusr(user.getUserInnb()); + // 쇼핑몰 테마 수정 + Map message = service.updateBOSopThema(boSopthemaVO); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() + ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopthema/updateBOSopThemaUpdt", maSopthemaVO), +// ReplyFromResrc::getReply +// ); } /** @@ -171,12 +262,23 @@ public class MaSopthemaController { * @return */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/deleteSopThemaDel", method = RequestMethod.POST) - public ResponseEntity deleteSopThemaDel(MaSopThemaVO maSopthemaVO) { + @RequestMapping(value = "/deleteSopThemaDel", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity deleteSopThemaDel(BOSopThemaVO boSopthemaVO) { + //사용자 정보 추출 및 적용 + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + boSopthemaVO.setRegusr(user.getUserInnb()); + boSopthemaVO.setUpdusr(user.getUserInnb()); + // 쇼핑몰 테마 삭제 + Map message = service.deleteBOSopthema(boSopthemaVO); - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopthema/deleteBOSopThemaDel", maSopthemaVO), - ReplyFromResrc::getReply - ); + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(message)) + .build() + ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopthema/deleteBOSopThemaDel", maSopthemaVO), +// ReplyFromResrc::getReply +// ); } } diff --git a/src/main/java/com/wb/domainserver/domain/admin/store/sopthema/vo/BOSopThemaVO.java b/src/main/java/com/wb/domainserver/domain/admin/store/sopthema/vo/BOSopThemaVO.java index d22cbd3a..d4fd7460 100644 --- a/src/main/java/com/wb/domainserver/domain/admin/store/sopthema/vo/BOSopThemaVO.java +++ b/src/main/java/com/wb/domainserver/domain/admin/store/sopthema/vo/BOSopThemaVO.java @@ -1,6 +1,7 @@ package com.wb.domainserver.domain.admin.store.sopthema.vo; import com.wb.domainserver.domain.comm.vo.AbstractVO; +import jakarta.validation.constraints.NotBlank; import lombok.Data; import lombok.EqualsAndHashCode; @@ -12,9 +13,11 @@ public class BOSopThemaVO extends AbstractVO { private Integer themaInnb; /** 테마명 */ + @NotBlank(message = "쇼핑몰테마명") private String themaNm; /** CSS 경로*/ + @NotBlank(message = "스타일시트경로") private String cssCours; /** 설명내용 */ diff --git a/src/main/java/com/wb/domainserver/domain/admin/store/stplat/controller/MaStplatController.java b/src/main/java/com/wb/domainserver/domain/admin/store/stplat/controller/MaStplatController.java index 9a8059ec..f02cacbc 100644 --- a/src/main/java/com/wb/domainserver/domain/admin/store/stplat/controller/MaStplatController.java +++ b/src/main/java/com/wb/domainserver/domain/admin/store/stplat/controller/MaStplatController.java @@ -2,20 +2,31 @@ package com.wb.domainserver.domain.admin.store.stplat.controller; import com.wb.domainserver.common.msg.GconeMessageSource; +import com.wb.domainserver.common.mvc.tags.ui.pagination.PaginationInfo; +import com.wb.domainserver.common.prop.PaginationProperties; +import com.wb.domainserver.domain.admin.store.stplat.service.BOStplatService; +import com.wb.domainserver.domain.admin.store.stplat.vo.BOStplatVO; import com.wb.domainserver.domain.admin.store.stplat.vo.MaStplatVO; +import com.wb.domainserver.domain.admin.sys.comncd.service.BOMaComncdService; +import com.wb.domainserver.domain.admin.sys.comncd.vo.BOMaComncdVO; import com.wb.domainserver.exception.WnbtRestException; import com.wb.domainserver.response.WnbtResponse; +import com.wb.domainserver.response.WnbtResponseBody; import com.wb.domainserver.response.WnbtWebClientResponseHandler; +import com.wb.domainserver.security.authentication.AnonymousUser; +import com.wb.domainserver.security.authentication.MemberJwtContextHolder; import com.wb.domainserver.security.authorization.annotation.AuthPolicy; import com.wb.domainserver.security.authorization.annotation.Policy; import com.wb.domainserver.util.communicate.RESRC; import com.wb.domainserver.util.communicate.ReplyFromResrc; import com.wb.domainserver.util.communicate.SendToResrc; import com.wb.domainserver.util.communicate.ValidateResultConverter; +import com.wb.domainserver.util.dataaccess.DataMap; import com.wb.domainserver.util.excel.ExcelDownloadUtil; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -58,6 +69,15 @@ public class MaStplatController { @Autowired private GconeMessageSource gconeMessageSource; + @Autowired + private BOStplatService service; + + @Autowired + private BOMaComncdService bOMaComncdService; + + @Autowired + private PaginationProperties paginationProperties; + /** * 약관 목록 조회 (검색 section) * @param stplat 약관 파라미터VO @@ -66,12 +86,30 @@ public class MaStplatController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectStplatListInqireForm") - public String selectStplatListInqireForm(MaStplatVO stplat, ModelMap model) { - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/stplat/selectBOStplatListFormInqire", stplat), - model, - "resultMap" - ); + public String selectStplatListInqireForm(BOStplatVO stplat, ModelMap model) { + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + stplat.setRegusr(user.getUserInnb()); + stplat.setUpdusr(user.getUserInnb()); + + DataMap content = new DataMap(); + + //쇼핑몰 목록 조회 + List stplatSopmalList = service.selectBOStplatSopmalListInqire(); + + //약관 구분 코드 + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + bOMaComncdVO.setGroupCd("STPLAT_DV"); + List stplatDvList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + content.put("stplatSopmalList", stplatSopmalList); + content.put("stplatDvList", stplatDvList); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/stplat/selectBOStplatListFormInqire", stplat), +// model, +// "resultMap" +// ); return "admin/store/stplat/maStplatListInqireRForm"; } @@ -83,12 +121,43 @@ public class MaStplatController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectStplatListInqire") - public String selectStplatListInqire(MaStplatVO stplat, ModelMap model) { - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/stplat/selectBOStplatListInqire", stplat), - model, - "resultMap" - ); + public String selectStplatListInqire(BOStplatVO stplat, ModelMap model) { + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + stplat.setRegusr(user.getUserInnb()); + stplat.setUpdusr(user.getUserInnb()); + + List resultList = new ArrayList<>(); + List codeList = new ArrayList<>(); + DataMap content = new DataMap(); + DataMap map = new DataMap(); + // pagination + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(stplat.getPageIndex()); + paginationInfo.setRecordCountPerPage(stplat.getPageUnit()); + paginationInfo.setPageSize(paginationProperties.getPageSize()); + stplat.setPaginationInfo(paginationInfo); + stplat.setFirstIndex(paginationInfo.getFirstRecordIndex()); + stplat.setLastIndex(paginationInfo.getLastRecordIndex()); + stplat.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + // 약관 목록 조회 + resultList = service.selectBOStplatList(stplat); + + + // 그룹 코드 조회 + map = service.selectGroupCd(); + + codeList.add(map); + content.put("stplat", stplat); + content.put("resultList", resultList); + content.put("codeList", codeList); + content.put("paginationInfo", stplat.getPaginationInfo()); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/stplat/selectBOStplatListInqire", stplat), +// model, +// "resultMap" +// ); return "admin/store/stplat/maStplatListInqireR"; } @@ -102,10 +171,16 @@ public class MaStplatController { @SuppressWarnings("unchecked") @Policy(AuthPolicy.PUBLIC) @RequestMapping(value = "/selectStplatListExcelDwld", method = RequestMethod.POST) - public void selectStplatListExcelDwld(MaStplatVO stplat, HttpServletResponse response, ModelMap model) { - Map resultMap = responseHandler.handleResponseAsMap( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/stplat/selectBOStplatListExcelDwld",stplat) - ); + public void selectStplatListExcelDwld(BOStplatVO stplat, HttpServletResponse response, ModelMap model) { + DataMap resultMap = new DataMap(); + List resultList = new ArrayList<>(); + // 약관 변경이력 상세 조회 + resultList = service.selectBOStplatListExcelDwld(stplat); + resultMap.put("resultList", resultList); + +// Map resultMap = responseHandler.handleResponseAsMap( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/stplat/selectBOStplatListExcelDwld",stplat) +// ); List> listMap = new ArrayList<>(); listMap = (List>) resultMap.get("resultList"); @@ -160,12 +235,32 @@ public class MaStplatController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectStplatRegistForm") - public String selectStplatRegistForm(MaStplatVO stplat, ModelMap model) { - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/stplat/selectBOStplatRegistForm", stplat), - model, - "resultMap" - ); + public String selectStplatRegistForm(BOStplatVO stplat, ModelMap model) { + DataMap content = new DataMap(); + DataMap srchData = new DataMap(); + srchData.put("srchSopmalCd", stplat.getSrchSopmalCd()); + srchData.put("srchStplatDvCd", stplat.getSrchStplatDvCd()); + srchData.put("srchStplatNm", stplat.getSrchStplatNm()); + srchData.put("pageUnit", stplat.getPageUnit()); + srchData.put("pageIndex", stplat.getPageIndex()); + List srchList = new ArrayList<>(); + srchList.add(srchData); + + //약관 구분 코드 + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + bOMaComncdVO.setGroupCd("STPLAT_DV"); + List stplatDvList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + content.put("stplat", stplat); + content.put("stplatDvList", stplatDvList); + content.put("srchData", srchData); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/stplat/selectBOStplatRegistForm", stplat), +// model, +// "resultMap" +// ); return "admin/store/stplat/maStplatC"; } @@ -177,15 +272,28 @@ public class MaStplatController { * @return ResponseEntity */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/insertStplatRegist", method = RequestMethod.POST) - public ResponseEntity insertStplatRegist(@Validated MaStplatVO stplat, BindingResult bindingResult) { + @RequestMapping(value = "/insertStplatRegist", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity insertStplatRegist(@Validated BOStplatVO stplat, BindingResult bindingResult) { if(bindingResult.hasErrors()) { throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); } - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/stplat/insertBOStplatRegist", stplat), - ReplyFromResrc::getReply - ); + + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + stplat.setRegusr(user.getUserInnb()); + stplat.setUpdusr(user.getUserInnb()); + // 약관 등록 + DataMap content = new DataMap(); + content = service.insertBOStplat(stplat); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() + ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/stplat/insertBOStplatRegist", stplat), +// ReplyFromResrc::getReply +// ); } @@ -198,12 +306,47 @@ public class MaStplatController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping(value = "/selectStplatUpdtForm") - public String selectStplatUpdtForm(MaStplatVO stplat, ModelMap model) { - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/stplat/selectBOStplatUpdtForm", stplat), - model, - "resultMap" - ); + public String selectStplatUpdtForm(BOStplatVO stplat, ModelMap model) { + DataMap content = new DataMap(); + DataMap srchData = new DataMap(); + srchData.put("srchSopmalCd", stplat.getSrchSopmalCd()); + srchData.put("srchStplatDvCd", stplat.getSrchStplatDvCd()); + srchData.put("srchStplatNm", stplat.getSrchStplatNm()); + srchData.put("pageUnit", stplat.getPageUnit()); + srchData.put("pageIndex", stplat.getPageIndex()); + srchData.put("pageDv", stplat.getPageDv()); + List srchList = new ArrayList<>(); + srchList.add(srchData); + + // 약관 상세 조회 + BOStplatVO vo = new BOStplatVO(); + vo = service.selectBOStplatDtl(stplat); + vo.setPageDv(stplat.getPageDv()); + + + // 약관 변경이력 조회 + List resultList = service.selectBOStplatHistList(stplat); + // 그룹코드 조회 + DataMap map = service.selectGroupCd(); + List codeList = new ArrayList<>(); + codeList.add(map); + + //약관 구분 코드 + BOMaComncdVO bOMaComncdVO = new BOMaComncdVO(); + bOMaComncdVO.setGroupCd("STPLAT_DV"); + List stplatDvList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO); + + content.put("stplat", vo); + content.put("stplatDvList", stplatDvList); + content.put("srchData", srchData); + content.put("resultList", resultList); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/stplat/selectBOStplatUpdtForm", stplat), +// model, +// "resultMap" +// ); return "admin/store/stplat/maStplatU"; } @@ -215,15 +358,27 @@ public class MaStplatController { * @return ResponseEntity */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/updateStplatUpd", method = RequestMethod.POST) - public ResponseEntity updateStplatUpd(@Validated MaStplatVO stplat, BindingResult bindingResult) { + @RequestMapping(value = "/updateStplatUpd", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity updateStplatUpd(@Validated BOStplatVO stplat, BindingResult bindingResult) { if(bindingResult.hasErrors()) { throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); } - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/stplat/updateBOStplatUpd", stplat), - ReplyFromResrc::getReply - ); + + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + stplat.setUpdusr(user.getUserInnb()); + + DataMap content = new DataMap(); + content = service.updateBOStplat(stplat); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() + ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/stplat/updateBOStplatUpd", stplat), +// ReplyFromResrc::getReply +// ); } /** @@ -233,15 +388,26 @@ public class MaStplatController { * @return ResponseEntity */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/selectStplatSopmalUse", method = RequestMethod.POST) - public ResponseEntity selectStplatSopmalUse(@Validated MaStplatVO stplat, BindingResult bindingResult) { + @RequestMapping(value = "/selectStplatSopmalUse", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity selectStplatSopmalUse(@Validated BOStplatVO stplat, BindingResult bindingResult) { if(bindingResult.hasErrors()) { throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); } - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/stplat/selectBOStplatSopmalUse", stplat), - ReplyFromResrc::getReply - ); + + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + stplat.setUpdusr(user.getUserInnb()); + + DataMap content = service.selectBOStplatSopmalUse(stplat); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() + ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/stplat/selectBOStplatSopmalUse", stplat), +// ReplyFromResrc::getReply +// ); } /** @@ -251,15 +417,27 @@ public class MaStplatController { * @return ResponseEntity */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/deleteStplatDel", method = RequestMethod.POST) - public ResponseEntity deleteStplatDel(@Validated MaStplatVO stplat, BindingResult bindingResult) { + @RequestMapping(value = "/deleteStplatDel", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity deleteStplatDel(@Validated BOStplatVO stplat, BindingResult bindingResult) { if(bindingResult.hasErrors()) { throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); } - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/stplat/updateBOStplatUseAtUpd", stplat), - ReplyFromResrc::getReply - ); + + AnonymousUser user = MemberJwtContextHolder.getMemberInfo(); + stplat.setUpdusr(user.getUserInnb()); + + DataMap content = new DataMap(); + content = service.updateBOStplatUseAtUpd(stplat); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() + ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/stplat/updateBOStplatUseAtUpd", stplat), +// ReplyFromResrc::getReply +// ); } @@ -271,12 +449,18 @@ public class MaStplatController { */ @Policy(AuthPolicy.RESTRICTED) @RequestMapping("/selectStplatChangePopup") - public String selectStplatChangePopup(MaStplatVO stplat, ModelMap model) { - responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/stplat/selectBOStplatHistDtlInqire", stplat), - model, - "resultMap" - ); + public String selectStplatChangePopup(BOStplatVO stplat, ModelMap model) { + DataMap content = new DataMap(); + // 약관 변경이력 상세 조회 + stplat = service.selectBOStplatHistDtl(stplat.getStplatInnb(), stplat.getChngSnb()); + content.put("stplat", stplat); + + model.addAttribute("resultMap", content); +// responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/stplat/selectBOStplatHistDtlInqire", stplat), +// model, +// "resultMap" +// ); return "admin/store/stplat/maStplatChangePopupR"; } @@ -287,14 +471,25 @@ public class MaStplatController { * @return ResponseEntity */ @Policy(AuthPolicy.RESTRICTED) - @RequestMapping(value = "/selectStplatInqire", method = RequestMethod.POST) - public ResponseEntity selectStplatInqire(MaStplatVO stplat, BindingResult bindingResult) { + @RequestMapping(value = "/selectStplatInqire", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity selectStplatInqire(BOStplatVO stplat, BindingResult bindingResult) { if(bindingResult.hasErrors()) { throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource)); } - return responseHandler.handleResponse( - sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/stplat/selectBoStplatInqire", stplat), - ReplyFromResrc::getReply - ); + + DataMap content = new DataMap(); + // 약관 변경이력 상세 조회 + stplat = service.selectStplatInqire(stplat.getStplatInnb(), stplat.getChngSnb()); + content.put("stplat", stplat); + + return ResponseEntity.ok( + WnbtResponse.builder() + .resBody(new WnbtResponseBody(content)) + .build() + ); +// return responseHandler.handleResponse( +// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/stplat/selectBoStplatInqire", stplat), +// ReplyFromResrc::getReply +// ); } } diff --git a/src/main/java/com/wb/domainserver/domain/admin/store/stplat/vo/BOStplatVO.java b/src/main/java/com/wb/domainserver/domain/admin/store/stplat/vo/BOStplatVO.java index bf8903a8..806735d3 100644 --- a/src/main/java/com/wb/domainserver/domain/admin/store/stplat/vo/BOStplatVO.java +++ b/src/main/java/com/wb/domainserver/domain/admin/store/stplat/vo/BOStplatVO.java @@ -2,8 +2,10 @@ package com.wb.domainserver.domain.admin.store.stplat.vo; import com.wb.domainserver.domain.comm.vo.AbstractVO; +import jakarta.validation.constraints.NotBlank; import lombok.Data; import lombok.EqualsAndHashCode; +import org.hibernate.validator.constraints.Length; @Data @EqualsAndHashCode(callSuper = false) @@ -16,21 +18,31 @@ public class BOStplatVO extends AbstractVO{ /** 변경순번 */ private Integer chngSnb; /** 약관명 */ + @NotBlank(message = "약관 명") + @Length(min = 0, max = 100, message = "약관 명") private String stplatNm; + /** 약관구분코드 */ + @NotBlank(message = "약관구분코드") private String stplatDvCd; + /** 약관내용 */ + @NotBlank(message = "약관내용") private String stplatCn; + /** 중요약관내용 */ private String imprtncStplatCn; + + /** 변경사유내용 */ + @NotBlank(message = "변경사유내용") + private String chngResnCn; + /** 쇼핑몰 이름 */ private String sopmalNm; /** 등록자(수정자) 이름 */ private String mngrNm; /** 수정일(String) */ private String updtDe; - /** 변경사유내용 */ - private String chngResnCn; /** 필수 여부 */ private String essntlAt; /** 내용작성여부 */ @@ -58,7 +70,13 @@ public class BOStplatVO extends AbstractVO{ /** 그룹코드이름 */ private String stplatDvNm; - - + + private String[] stplatNmArr; + private String[] stplatDvNmArr; + private String[] sopmalNmArr; + private String[] registDtArr; + private String[] updtDeArr; + private String[] rnumArr; + }