fo bo 머지작업(sopmal)

This commit is contained in:
jazz
2025-11-21 18:19:13 +09:00
parent 956bc68e24
commit 2903f1c6e6
26 changed files with 7066 additions and 1228 deletions

View File

@@ -1,14 +1,20 @@
package com.wb.domainserver.domain.crm.bbs.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.crm.cnslt.vo.CrmCnsltVO;
import com.wb.domainserver.domain.mngr.bbs.gnrlsctt.vo.GnrlscttVO;
import com.wb.domainserver.domain.mngr.bbs.rvw.vo.RvwVO;
import com.wb.domainserver.domain.gcone.bbs.bbs.service.BOBbsService;
import com.wb.domainserver.domain.gcone.bbs.bbs.vo.BOBbsVO;
import com.wb.domainserver.domain.gcone.bbs.gnrlbbsctt.service.BOGnrlbbscttService;
import com.wb.domainserver.domain.gcone.bbs.gnrlbbsctt.vo.BOGnrlbbscttVO;
import com.wb.domainserver.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;
@@ -16,6 +22,11 @@ import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Slf4j
@Controller
@RequestMapping("/crm/bbs")
@@ -31,6 +42,15 @@ public class CrmBbsController {
/** 공통 메시지 처리를 위한 메시지 객체 */
@Autowired
private GconeMessageSource gconeMessageSource;
@Autowired
private BOGnrlbbscttService service;
@Autowired
private BOBbsService bbsService;
@Autowired
private PaginationProperties paginationProperties;
/**
* 리뷰 목록 조회 폼
* @return String
@@ -49,15 +69,42 @@ public class CrmBbsController {
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectGoodsRvwInqire")
public String selectGoodsRvwInqire(ModelMap model, RvwVO rvwVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
rvwVO.setReqUrl("crm");
rvwVO.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOMyRvwListInqire", rvwVO),
model,
"resultMap"
);
model.addAttribute("pageUnit",rvwVO.getPageUnit());
public String selectGoodsRvwInqire(ModelMap model, BOGnrlbbscttVO bbsctt, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
bbsctt.setReqUrl("crm");
bbsctt.setSopmalCd(authSopmalCd);
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if ("01".equals(user.getSysDvCd())) {
bbsctt.setSopmalCd(user.getSopmalCd());
}
if (!"crm".equals(bbsctt.getReqUrl())) {
bbsctt.setRegusr(user.getUserInnb());
}
// pagination
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(bbsctt.getPageIndex());
paginationInfo.setRecordCountPerPage(bbsctt.getPageUnit());
paginationInfo.setPageSize(paginationProperties.getPageSize());
bbsctt.setPaginationInfo(paginationInfo);
bbsctt.setFirstIndex(paginationInfo.getFirstRecordIndex());
bbsctt.setLastIndex(paginationInfo.getLastRecordIndex());
bbsctt.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
// 게시글 목록조회
Map<String, Object> resultList = new HashMap<String, Object>();
resultList = service.selectBOMyRvwListInqire(bbsctt);
DataMap content = new DataMap();
content.put("bbscttVO", bbsctt);
content.put("resultList", resultList);
content.put("paginationInfo", bbsctt.getPaginationInfo());
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOMyRvwListInqire", rvwVO),
// model,
// "resultMap"
// );
model.addAttribute("pageUnit",bbsctt.getPageUnit());
return "crm/bbs/GoodsRvwListR";
}
@@ -68,16 +115,78 @@ public class CrmBbsController {
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectGoodsInqryInqireForm")
public String selectGoodsInqryInqireForm(CrmCnsltVO vo , GnrlscttVO bbsctt, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
public String selectGoodsInqryInqireForm(CrmCnsltVO vo , BOGnrlbbscttVO bbsctt, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
bbsctt.setReqUrl("crm");
bbsctt.setBbsId("goods_qna");
bbsctt.setBbsTyCd("05");
bbsctt.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttListInqireForm", bbsctt),
model,
"resultMap"
);
Map<String, Object> content = new HashMap<String, Object>();
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if ("01".equals(user.getSysDvCd())) {
bbsctt.setSopmalCd(user.getSopmalCd());
bbsctt.setMbrDvCd(user.getMbrDvCd());
bbsctt.setMbrInnb(user.getUserInnb());
}
if ("mpage".equals(bbsctt.getReqUrl()) || "crm".equals(bbsctt.getReqUrl())) {
if (user.getUserInnb() > 0) {
bbsctt.setRegusr(user.getUserInnb());
bbsctt.setRegusrDvCd("01");
} else {
bbsctt.setRegusr(0);
bbsctt.setRegusrDvCd("99");
}
}
BOBbsVO bbsVO = new BOBbsVO();
// bbsVO에 쇼핑몰코드, 해당 게시판 set
bbsVO.setSopmalCd(bbsctt.getSopmalCd());
bbsVO.setBbsId(bbsctt.getBbsId());
bbsVO.setBbsTyCd(bbsctt.getBbsTyCd());
// 게시판 설정 정보 조회
DataMap bbsInfo = new DataMap();
bbsInfo = bbsService.selectBOBbsSetupInfo(bbsVO);
//사용자에서 이벤트 폼 조회시 해당 쇼핑몰 이벤트 게시판 정보 조회(이벤트,당첨자발표 게시판)
List<DataMap> evtBbsList = new ArrayList<>();
if ("sopmal".equals(bbsctt.getServerDv())) {
if ("03".equals((String) bbsInfo.get("bbsTyCd")) || "11".equals((String) bbsInfo.get("bbsTyCd"))) {
evtBbsList = bbsService.selectBOEvtBbsList(bbsVO);
content.put("evtBbsList", evtBbsList);
}
}
// 분류 조회
List<DataMap> itmList = new ArrayList<>();
itmList = service.selectBOBbscttItmInqire(bbsctt);
// 게시판 목록 조회 및 게시글 개수 조회(관리자 페이지)
List<DataMap> bbsListCnt = new ArrayList<>();
if (!"01".equals(user.getSysDvCd())) {
bbsListCnt = bbsService.selectBOBbsttListInqire(bbsVO);
content.put("bbsListCnt", bbsListCnt);
}
Map<String, Object> qesitmList = new HashMap<String, Object>();
Map<String, Object> rvwQesitmList = new HashMap<String, Object>();
//리뷰 목록 조회일 시 service 호출
if ("rvw".equals(bbsctt.getRvwBbscttDv())) {
//추가항목 리스트, 추가항목 항목 리스트(리뷰)
qesitmList = service.selectBOBbscttRegistPopupForm(bbsctt);
//리뷰항목 리스트, 리뷰항목 항목 리스트
rvwQesitmList = service.selectBOStarItm(bbsctt);
}
content.put("bbsInfo", bbsInfo);
content.put("itmList", itmList);
if ("rvw".equals(bbsctt.getRvwBbscttDv())) {
content.put("qesitmList", qesitmList);
content.put("rvwQesitmList", rvwQesitmList);
}
content.put("bbsctt", bbsctt);
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttListInqireForm", bbsctt),
// model,
// "resultMap"
// );
/*left 값 세팅*/
model.addAttribute("cnsltVO",vo);
return "crm/bbs/GoodsInqryListRForm";
@@ -90,14 +199,75 @@ public class CrmBbsController {
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectGoodsInqryInqire")
public String selectGoodsInqryInqire(GnrlscttVO bbsctt, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
public String selectGoodsInqryInqire(BOGnrlbbscttVO bbsctt, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
bbsctt.setReqUrl("crm");
bbsctt.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttListInqire", bbsctt),
model,
"resultMap"
);
Map<String, Object> content = new HashMap<String, Object>();
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if ("01".equals(user.getSysDvCd())) {
bbsctt.setSopmalCd(user.getSopmalCd());
bbsctt.setMbrDvCd(user.getMbrDvCd());
bbsctt.setMbrInnb(user.getUserInnb());
}
if ("mpage".equals(bbsctt.getReqUrl()) || "crm".equals(bbsctt.getReqUrl())) {
if (user.getUserInnb() > 0) {
bbsctt.setRegusr(user.getUserInnb());
bbsctt.setRegusrDvCd("01");
} else {
bbsctt.setRegusr(0);
bbsctt.setRegusrDvCd("99");
}
}
BOBbsVO bbsVO = new BOBbsVO();
// bbsVO에 쇼핑몰코드, 해당 게시판 set
bbsVO.setSopmalCd(bbsctt.getSopmalCd());
bbsVO.setBbsId(bbsctt.getBbsId());
bbsVO.setBbsTyCd(bbsctt.getBbsTyCd());
// 게시판 설정 정보 조회
DataMap bbsInfo = new DataMap();
bbsInfo = bbsService.selectBOBbsSetupInfo(bbsVO);
//사용자에서 이벤트 폼 조회시 해당 쇼핑몰 이벤트 게시판 정보 조회(이벤트,당첨자발표 게시판)
List<DataMap> evtBbsList = new ArrayList<>();
if ("sopmal".equals(bbsctt.getServerDv())) {
if ("03".equals((String) bbsInfo.get("bbsTyCd")) || "11".equals((String) bbsInfo.get("bbsTyCd"))) {
evtBbsList = bbsService.selectBOEvtBbsList(bbsVO);
content.put("evtBbsList", evtBbsList);
}
}
// 분류 조회
List<DataMap> itmList = new ArrayList<>();
itmList = service.selectBOBbscttItmInqire(bbsctt);
// 게시판 목록 조회 및 게시글 개수 조회(관리자 페이지)
List<DataMap> bbsListCnt = new ArrayList<>();
if (!"01".equals(user.getSysDvCd())) {
bbsListCnt = bbsService.selectBOBbsttListInqire(bbsVO);
content.put("bbsListCnt", bbsListCnt);
}
Map<String, Object> qesitmList = new HashMap<String, Object>();
Map<String, Object> rvwQesitmList = new HashMap<String, Object>();
//리뷰 목록 조회일 시 service 호출
if ("rvw".equals(bbsctt.getRvwBbscttDv())) {
//추가항목 리스트, 추가항목 항목 리스트(리뷰)
qesitmList = service.selectBOBbscttRegistPopupForm(bbsctt);
//리뷰항목 리스트, 리뷰항목 항목 리스트
rvwQesitmList = service.selectBOStarItm(bbsctt);
}
content.put("bbsInfo", bbsInfo);
content.put("itmList", itmList);
if ("rvw".equals(bbsctt.getRvwBbscttDv())) {
content.put("qesitmList", qesitmList);
content.put("rvwQesitmList", rvwQesitmList);
}
content.put("bbsctt", bbsctt);
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttListInqire", bbsctt),
// model,
// "resultMap"
// );
model.addAttribute("pageUnit",bbsctt.getPageUnit());
return "crm/bbs/GoodsInqryListR";

View File

@@ -1,17 +1,30 @@
package com.wb.domainserver.domain.crm.cnslt.controller;
import com.wb.domainserver.common.msg.GconeMessageSource;
import com.wb.domainserver.common.mvc.tags.ui.pagination.PaginationInfo;
import com.wb.domainserver.common.prop.PaginationProperties;
import com.wb.domainserver.domain.admin.sys.comncd.service.BOMaComncdService;
import com.wb.domainserver.domain.admin.sys.comncd.vo.BOMaComncdVO;
import com.wb.domainserver.domain.auth.controller.AuthController;
import com.wb.domainserver.domain.crm.cnslt.vo.CrmCnsltVO;
import com.wb.domainserver.domain.gcone.bbs.cnslt.service.BOCnsltService;
import com.wb.domainserver.domain.gcone.bbs.cnslt.vo.BOCnsltVO;
import com.wb.domainserver.domain.gcone.common.service.BOCommonService;
import com.wb.domainserver.domain.gcone.mbr.mbr.service.BOMbrService;
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.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;
@@ -21,6 +34,7 @@ import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -57,8 +71,16 @@ public class CrmCnsltController {
private GconeMessageSource gconeMessageSource;
@Autowired
private AuthController authController;
private BOCnsltService service;
@Autowired
private BOMaComncdService bOMaComncdService;
@Autowired
private PaginationProperties paginationProperties;
@Autowired
private BOCommonService boCommonService;
/**
@@ -67,14 +89,25 @@ public class CrmCnsltController {
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectCnsltDtlsForm")
public String selectCnsltDtlsForm(CrmCnsltVO cnsltVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
public String selectCnsltDtlsForm(BOCnsltVO cnsltVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
cnsltVO.setSopmalCd(authSopmalCd);
Map<String, Object> content = new HashMap<>();
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cnslt/selectBOCstmrCnsltUnityBbscttListInqireForm", cnsltVO),
model,
"resultMap"
);
// 공통코드 호출
BOMaComncdVO bOMaComncdVO = new BOMaComncdVO();
bOMaComncdVO.setGroupCd("COUNSEL_PROCS_STTUS"); // 상담처리상태
List<?> procsSttusCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
// 공통코드와 리스트를 넣어줌
content.put("paramVO", cnsltVO);
content.put("procsSttusCdList", procsSttusCdList);
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cnslt/selectBOCstmrCnsltUnityBbscttListInqireForm", cnsltVO),
// model,
// "resultMap"
// );
model.addAttribute("cnsltVO", cnsltVO);
return "crm/cnslt/CnsltDtlsRForm";
@@ -87,15 +120,47 @@ public class CrmCnsltController {
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectCnsltDtlsInqire")
public String selectCnsltDtlsInqire(CrmCnsltVO cnsltVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
public String selectCnsltDtlsInqire(BOCnsltVO cnsltVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
cnsltVO.setSopmalCd(authSopmalCd);
cnsltVO.setCrmAt("Y");
// 작성자 정보 할당
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
cnsltVO.setSopmalCd(user.getSopmalCd());
}
Map<String, Object> content = new HashMap<>();
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cnslt/selectBOCstmrCnsltUnityBbscttListInqire", cnsltVO),
model,
"resultMap"
);
// 페이징 객체 생성 & 페이징정보 할당
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(cnsltVO.getPageIndex());
paginationInfo.setRecordCountPerPage(cnsltVO.getPageUnit());
paginationInfo.setPageSize(paginationProperties.getPageSize());
cnsltVO.setPaginationInfo(paginationInfo);
cnsltVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
cnsltVO.setLastIndex(paginationInfo.getLastRecordIndex());
cnsltVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
// 공통코드 호출
BOMaComncdVO bOMaComncdVO = new BOMaComncdVO();
bOMaComncdVO.setGroupCd("COUNSEL_PROCS_STTUS"); // 상담처리상태
List<?> procsSttusCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
cnsltVO.setSecretKey(boCommonService.selectSecretkey());
List<DataMap> resultList = service.selectBOCstmrCnsltUnityBbscttListInqire(cnsltVO);
// 맵에 페이징 정보와 리스트를 넣어줌
content.put("paramVO", cnsltVO);
content.put("resultList", resultList);
content.put("paginationInfo", cnsltVO.getPaginationInfo());
content.put("procsSttusCdList", procsSttusCdList); // 상담처리상태
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cnslt/selectBOCstmrCnsltUnityBbscttListInqire", cnsltVO),
// model,
// "resultMap"
// );
return "crm/cnslt/CnsltDtlsR";
}
@@ -108,13 +173,39 @@ public class CrmCnsltController {
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectCnsltRegistPopupForm")
public String selectCnsltRegistPopupForm(CrmCnsltVO cnsltVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
public String selectCnsltRegistPopupForm(BOCnsltVO cnsltVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
cnsltVO.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cnslt/selectBOCnsltRegistPopupForm", cnsltVO),
model,
"resultMap"
);
// 작성자 정보 할당
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
cnsltVO.setSopmalCd(user.getSopmalCd());
}
cnsltVO.setRegusr(user.getUserInnb()); // 등록자
cnsltVO.setUpdusr(user.getUserInnb()); // 수정자
cnsltVO.setMbrNm(user.getMbrNm()); // 상담자명
// 공통코드 호출
BOMaComncdVO bOMaComncdVO = new BOMaComncdVO();
bOMaComncdVO.setGroupCd("COUNSEL_PROCS_STTUS"); // 상담처리상태
List<?> procsSttusCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
bOMaComncdVO.setGroupCd("TELNB_DV"); // 인콜/아웃콜
List<?> telnbDvCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
bOMaComncdVO.setGroupCd("LRGE_CL"); // 대분류
List<?> lrgeClCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
// Map객체에 필요 정보 할당
Map<String, Object> content = new HashMap<>();
content.put("cnsltVO", cnsltVO);
content.put("procsSttusCdList", procsSttusCdList);
content.put("telnbDvCdList", telnbDvCdList);
content.put("lrgeClCdList", lrgeClCdList);
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cnslt/selectBOCnsltRegistPopupForm", cnsltVO),
// model,
// "resultMap"
// );
model.addAttribute("cnsltVO", cnsltVO);
@@ -127,13 +218,60 @@ public class CrmCnsltController {
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectCnsltRegistPopupFormCmmnCdArray")
public ResponseEntity<WnbtResponse> selectCnsltRegistPopupFormCmmnCdArray(CrmCnsltVO cnsltVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
@RequestMapping(value = "/selectCnsltRegistPopupFormCmmnCdArray", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> selectCnsltRegistPopupFormCmmnCdArray(BOCnsltVO cnsltVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
cnsltVO.setSopmalCd(authSopmalCd);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cnslt/selectBOCnsltRegistPopupFormCmmnCdArray", cnsltVO),
ReplyFromResrc::getReply
// 작성자 정보 할당
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
cnsltVO.setSopmalCd(user.getSopmalCd());
}
cnsltVO.setRegusr(user.getUserInnb()); // 등록자
cnsltVO.setUpdusr(user.getUserInnb()); // 수정자
// 공통코드 호출
BOMaComncdVO bOMaComncdVO = new BOMaComncdVO();
bOMaComncdVO.setGroupCd("LRGE_CL"); // 대분류
List<?> lrgeClCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
bOMaComncdVO.setGroupCd("MIDDL_CL_1"); // 중분류1
List<?> middlClCdList1 = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
bOMaComncdVO.setGroupCd("MIDDL_CL_2"); // 중분류2
List<?> middlClCdList2 = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
bOMaComncdVO.setGroupCd("MIDDL_CL_3"); // 중분류3
List<?> middlClCdList3 = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
bOMaComncdVO.setGroupCd("MIDDL_CL_4"); // 중분류4
List<?> middlClCdList4 = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
bOMaComncdVO.setGroupCd("MIDDL_CL_5"); // 중분류5
List<?> middlClCdList5 = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
bOMaComncdVO.setGroupCd("MIDDL_CL_6"); // 중분류6
List<?> middlClCdList6 = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
bOMaComncdVO.setGroupCd("MIDDL_CL_7"); // 중분류7
List<?> middlClCdList7 = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
bOMaComncdVO.setGroupCd("MIDDL_CL_8"); // 중분류8
List<?> middlClCdList8 = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
// Map객체에 필요 정보 할당
Map<String, Object> content = new HashMap<>();
content.put("cnsltVO", cnsltVO);
content.put("lrgeClCdList", lrgeClCdList);
content.put("middlClCdList01", middlClCdList1);
content.put("middlClCdList02", middlClCdList2);
content.put("middlClCdList03", middlClCdList3);
content.put("middlClCdList04", middlClCdList4);
content.put("middlClCdList05", middlClCdList5);
content.put("middlClCdList06", middlClCdList6);
content.put("middlClCdList07", middlClCdList7);
content.put("middlClCdList08", middlClCdList8);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(content))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cnslt/selectBOCnsltRegistPopupFormCmmnCdArray", cnsltVO),
// ReplyFromResrc::getReply
// );
}
@@ -144,8 +282,8 @@ public class CrmCnsltController {
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/insertCnsltRegist")
public ResponseEntity<WnbtResponse> insertCnsltRegist(@Validated CrmCnsltVO cnsltVO,BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
@RequestMapping(value = "/insertCnsltRegist", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> insertCnsltRegist(@Validated BOCnsltVO cnsltVO,BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
List<Map<String, String>> errorList = new ArrayList<>();
if(bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
@@ -165,10 +303,32 @@ public class CrmCnsltController {
if("".equals(cnsltVO.getGoodsInqryBbscttNb())){cnsltVO.setGoodsInqryBbscttNb(null);}
if("".equals(cnsltVO.getGoodsRvwBbscttNb())){cnsltVO.setGoodsRvwBbscttNb(null);}
cnsltVO.setSopmalCd(authSopmalCd);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cnslt/insertBOCnsltRegist", cnsltVO),
ReplyFromResrc::getReply
// 작성자 정보 할당
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
cnsltVO.setSopmalCd(user.getSopmalCd());
} // 쇼핑몰코드
cnsltVO.setRegusr(user.getUserInnb()); //등록자
cnsltVO.setUpdusr(user.getUserInnb()); // 수정자
cnsltVO.setMngrInnb(String.valueOf(user.getUserInnb()));//관리자고유번호
String secretKey = boCommonService.selectSecretkey();
cnsltVO.setSecretKey(secretKey);
// 상담 등록 로직
Map<String, Object> message = new HashMap<>();
message = service.insertBOCnsltRegist(cnsltVO);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(message))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cnslt/insertBOCnsltRegist", cnsltVO),
// ReplyFromResrc::getReply
// );
}
@@ -178,13 +338,38 @@ public class CrmCnsltController {
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectCnsltDtlUpdtInqirePopup")
public String selectCnsltDtlUpdtInqirePopup(CrmCnsltVO cnsltVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
public String selectCnsltDtlUpdtInqirePopup(BOCnsltVO cnsltVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
cnsltVO.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cnslt/selectBOCnsltDtlUpdtInqirePopup", cnsltVO),
model,
"resultMap"
);
// 작성자 정보 할당
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
cnsltVO.setSopmalCd(user.getSopmalCd());
} // 쇼핑몰코드
Map<String, Object> content = new HashMap<>();
// 공통코드 호출
BOMaComncdVO bOMaComncdVO = new BOMaComncdVO();
bOMaComncdVO.setGroupCd("COUNSEL_PROCS_STTUS"); // 상담처리상태
List<?> procsSttusCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
bOMaComncdVO.setGroupCd("TELNB_DV"); // 인콜/아웃콜
List<?> telnbDvCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
//시크릿키 set
cnsltVO.setSecretKey(boCommonService.selectSecretkey());
DataMap result = new DataMap();
result = service.selectBOCnsltDtlUpdtInqirePopup(cnsltVO);
content.put("cnsltVO", result);
content.put("procsSttusCdList", procsSttusCdList);
content.put("telnbDvCdList", telnbDvCdList);
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cnslt/selectBOCnsltDtlUpdtInqirePopup", cnsltVO),
// model,
// "resultMap"
// );
return "crm/cnslt/CnsltDtlUpdtPopupU";
}
@@ -195,8 +380,8 @@ public class CrmCnsltController {
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/updateCnsltUpdt")
public ResponseEntity<WnbtResponse> updateCstmrCnsltUpdt(@Validated CrmCnsltVO cnsltVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
@RequestMapping(value = "/updateCnsltUpdt", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> updateCstmrCnsltUpdt(@Validated BOCnsltVO cnsltVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
log.debug("cnsltVO is {}", cnsltVO);
// 정합성 검사
if(bindingResult.hasErrors()) {
@@ -226,10 +411,25 @@ public class CrmCnsltController {
if("".equals(cnsltVO.getGoodsRvwBbscttNb())){cnsltVO.setGoodsRvwBbscttNb(null);}
cnsltVO.setSopmalCd(authSopmalCd);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cnslt/updateBOCnsltUpdt", cnsltVO),
ReplyFromResrc::getReply
// 작성자 정보 할당
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
cnsltVO.setSopmalCd(user.getSopmalCd());
} // 쇼핑몰코드
cnsltVO.setUpdusr(user.getUserInnb()); // 수정자
Map<String, Object> message = new HashMap<>();
message = service.updateBOCnsltUpdt(cnsltVO);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(message))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cnslt/updateBOCnsltUpdt", cnsltVO),
// ReplyFromResrc::getReply
// );
}

View File

@@ -1,19 +1,26 @@
package com.wb.domainserver.domain.crm.coupon.controller;
import com.wb.domainserver.common.msg.GconeMessageSource;
import com.wb.domainserver.common.mvc.tags.ui.pagination.PaginationInfo;
import com.wb.domainserver.common.prop.PaginationProperties;
import com.wb.domainserver.domain.crm.cnslt.vo.CrmCnsltVO;
import com.wb.domainserver.domain.crm.coupon.vo.CrmCouponVO;
import com.wb.domainserver.domain.gcone.common.service.BOCommonService;
import com.wb.domainserver.domain.gcone.promtn.coupon.service.BOCouponService;
import com.wb.domainserver.domain.gcone.promtn.coupon.vo.BODwldCouponVO;
import com.wb.domainserver.exception.WnbtRestException;
import com.wb.domainserver.response.WnbtResponse;
import com.wb.domainserver.response.WnbtResponseBody;
import com.wb.domainserver.response.WnbtWebClientResponseHandler;
import com.wb.domainserver.security.authentication.AnonymousUser;
import com.wb.domainserver.security.authentication.MemberJwtContextHolder;
import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.communicate.RESRC;
import com.wb.domainserver.util.communicate.ReplyFromResrc;
import com.wb.domainserver.util.communicate.SendToResrc;
import com.wb.domainserver.util.communicate.ValidateResultConverter;
import com.wb.domainserver.util.dataaccess.DataMap;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
@@ -23,6 +30,10 @@ import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
*
* CRM 쿠폰
@@ -55,6 +66,14 @@ public class CrmCouponController {
@Autowired
private GconeMessageSource gconeMessageSource;
@Autowired
private BOCouponService service;
@Autowired
private PaginationProperties paginationProperties;
@Autowired
private BOCommonService commonService;
/**
* 쿠폰내역 목록 폼 이동
@@ -62,14 +81,33 @@ public class CrmCouponController {
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectHoldCouponDtlsForm")
public String selectHoldCouponDtlsForm(CrmCnsltVO vo, CrmCouponVO couponVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
couponVO.setSopmalCd(authSopmalCd);
public String selectHoldCouponDtlsForm(CrmCnsltVO vo, BODwldCouponVO dwldCouponVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
dwldCouponVO.setSopmalCd(authSopmalCd);
// 작성자 정보 할당
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
dwldCouponVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드
dwldCouponVO.setMbrDvCd(user.getMbrDvCd()); // 회원 구분 코드
dwldCouponVO.setMbrInnb(Integer.valueOf(user.getUserInnb())); // 회원 고유번호
}
dwldCouponVO.setRegusr(user.getUserInnb()); // 등록자
dwldCouponVO.setUpdusr(user.getUserInnb()); // 수정자
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOHoldCouponDtlsForm", couponVO),
model,
"resultMap"
);
log.debug("couponPkSndngVO : {}", dwldCouponVO);
// Map객체에 필요 정보 할당
Map<String, Object> content = new HashMap<>();
content = service.selectBOMyCouponListCnt(dwldCouponVO);
content.put("paramVO", dwldCouponVO);
model.addAttribute("", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOHoldCouponDtlsForm", couponVO),
// model,
// "resultMap"
// );
model.addAttribute("cnsltVO",vo);
return "crm/coupon/HoldCouponDtlsRForm";
}
@@ -81,14 +119,49 @@ public class CrmCouponController {
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectHoldCouponDtlsInqire")
public String selectHoldCouponDtlsInqire(CrmCouponVO couponVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
couponVO.setSopmalCd(authSopmalCd);
public String selectHoldCouponDtlsInqire(BODwldCouponVO dwldCouponVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
dwldCouponVO.setSopmalCd(authSopmalCd);
// 작성자 정보 할당
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
dwldCouponVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드
dwldCouponVO.setMbrDvCd(user.getMbrDvCd()); // 회원 구분 코드
dwldCouponVO.setMbrInnb(Integer.valueOf(user.getUserInnb())); // 회원 고유번호
} else {
dwldCouponVO.setServerDv("admin");
}
dwldCouponVO.setRegusr(user.getUserInnb()); // 등록자
dwldCouponVO.setUpdusr(user.getUserInnb()); // 수정자
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponUsePosblDtlsInqire", couponVO),
model,
"resultMap"
);
log.debug("couponPkSndngVO : {}", dwldCouponVO);
// 페이징 객체 생성 & 페이징정보 할당
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(dwldCouponVO.getPageIndex());
paginationInfo.setRecordCountPerPage(dwldCouponVO.getPageUnit());
paginationInfo.setPageSize(paginationProperties.getPageSize());
dwldCouponVO.setPaginationInfo(paginationInfo);
dwldCouponVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
dwldCouponVO.setLastIndex(paginationInfo.getLastRecordIndex());
dwldCouponVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
// 목록 조회
List<DataMap> resultList = null;
resultList = service.selectBOCouponUsePosblDtlsInqire(dwldCouponVO);
// Map객체에 필요 정보 할당
Map<String, Object> content = new HashMap<>();
content.put("paramVO", dwldCouponVO);
content.put("resultList", resultList);
content.put("paginationInfo", dwldCouponVO.getPaginationInfo());
model.addAttribute("", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponUsePosblDtlsInqire", couponVO),
// model,
// "resultMap"
// );
return "crm/coupon/HoldCouponDtlsR";
}
@@ -100,13 +173,24 @@ public class CrmCouponController {
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectHoldCouponDtlPopupForm")
public String selectHoldCouponDtlPopupForm(CrmCouponVO couponVO, ModelMap model) {
public String selectHoldCouponDtlPopupForm(BODwldCouponVO dwldCouponVO, ModelMap model) {
// 작성자 정보 할당
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponInfoInqirePopup", couponVO),
model,
"resultMap"
);
Map<String, Object> content = new HashMap<>();
log.debug("vo is {}", dwldCouponVO);
DataMap result = service.selectBOCouponInfoInqirePopup(dwldCouponVO);
log.debug("vo is {}", result);
content.put("dwldCouponVO", result); // 발송정보
model.addAttribute("", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponInfoInqirePopup", couponVO),
// model,
// "resultMap"
// );
return "crm/coupon/HoldCouponDtlPopupR";
}
@@ -117,18 +201,37 @@ public class CrmCouponController {
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/updateCouponPdUpdt", method = RequestMethod.POST)
public ResponseEntity<WnbtResponse> updateCouponPdUpdt(@Validated CrmCouponVO couponVO, BindingResult bindingResult) {
log.debug("couponVO info inqire {}", couponVO);
@RequestMapping(value = "/updateCouponPdUpdt", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> updateCouponPdUpdt(@Validated BODwldCouponVO dwldCouponVO, BindingResult bindingResult) {
log.debug("couponVO info inqire {}", dwldCouponVO);
// 정합성 검사
if (bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
}
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/updateBOCouponValidPdUpdt", couponVO),
ReplyFromResrc::getReply
// 작성자 정보 할당
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
dwldCouponVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드
}
dwldCouponVO.setRegusr(user.getUserInnb()); // 등록자
dwldCouponVO.setUpdusr(user.getUserInnb()); // 수정자
//
log.debug("vo 확인 : {}", dwldCouponVO);
Map<String, Object> message = new HashMap<>();
message = service.updateBOCouponValidPdUpdt(dwldCouponVO);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(message))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/updateBOCouponValidPdUpdt", couponVO),
// ReplyFromResrc::getReply
// );
}
@@ -138,14 +241,48 @@ public class CrmCouponController {
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectDwldPosblCouponDtlsInqire")
public String selectDwldPosblCouponDtlsInqire(CrmCouponVO couponVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
couponVO.setSopmalCd(authSopmalCd);
public String selectDwldPosblCouponDtlsInqire(BODwldCouponVO dwldCouponVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
dwldCouponVO.setSopmalCd(authSopmalCd);
// 작성자 정보 할당
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
dwldCouponVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드
dwldCouponVO.setMbrDvCd(user.getMbrDvCd()); // 회원 구분 코드
dwldCouponVO.setMbrInnb(Integer.valueOf(user.getUserInnb())); // 회원 고유번호
}
dwldCouponVO.setRegusr(user.getUserInnb()); // 등록자
dwldCouponVO.setUpdusr(user.getUserInnb()); // 수정자
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBODwldCouponDtlsInqire", couponVO),
model,
"resultMapDwld"
);
log.debug("couponPkSndngVO : {}", dwldCouponVO);
// 페이징 객체 생성 & 페이징정보 할당
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(dwldCouponVO.getPageIndex());
paginationInfo.setRecordCountPerPage(dwldCouponVO.getPageUnit());
paginationInfo.setPageSize(paginationProperties.getPageSize());
dwldCouponVO.setPaginationInfo(paginationInfo);
dwldCouponVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
dwldCouponVO.setLastIndex(paginationInfo.getLastRecordIndex());
dwldCouponVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
// 목록 조회
List<DataMap> resultList = null;
resultList = service.selectBODwldCouponDtlsInqire(dwldCouponVO);
log.debug(" 쿠폰 목록 확인 : {}", resultList);
// Map객체에 필요 정보 할당
Map<String, Object> content = new HashMap<>();
content.put("paramVO", dwldCouponVO);
content.put("resultList", resultList);
content.put("paginationInfo", dwldCouponVO.getPaginationInfo());
model.addAttribute("", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBODwldCouponDtlsInqire", couponVO),
// model,
// "resultMapDwld"
// );
return "crm/coupon/DwldPosblCouponDtlsR";
}
@@ -156,14 +293,43 @@ public class CrmCouponController {
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/insertCrmDwldCouponAllRegist")
public ResponseEntity<WnbtResponse> insertCrmDwldCouponAllRegist(CrmCouponVO couponVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
couponVO.setSopmalCd(authSopmalCd);
log.debug("CRM 쿠폰 다운로드 : {}", couponVO);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/insertBODwldCouponAllRegist", couponVO),
ReplyFromResrc::getReply
@RequestMapping(value = "/insertCrmDwldCouponAllRegist", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> insertCrmDwldCouponAllRegist(BODwldCouponVO dwldCouponVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
dwldCouponVO.setSopmalCd(authSopmalCd);
log.debug("CRM 쿠폰 다운로드 : {}", dwldCouponVO);
// 작성자 정보 할당
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
dwldCouponVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰 코드
dwldCouponVO.setMbrInnb(user.getUserInnb()); // 회원 고유번호
dwldCouponVO.setMbrDvCd(user.getMbrDvCd()); // 회원 구분 코드
dwldCouponVO.setMbrNm(user.getMbrNm()); // 회원 명
dwldCouponVO.setMbtlnb(user.getMbtlnb()); //전화번호
} else {
dwldCouponVO.setMbrInnb(dwldCouponVO.getMbrInnb()); // 회원 고유번호
dwldCouponVO.setMbrDvCd(dwldCouponVO.getMbrDvCd()); // 회원 구분 코드
dwldCouponVO.setMbrNm(dwldCouponVO.getMbrNm()); // 회원 명
dwldCouponVO.setMbtlnb(dwldCouponVO.getMbtlnb()); //전화번호
}
dwldCouponVO.setRegusr(user.getUserInnb()); // 등록자
dwldCouponVO.setUpdusr(user.getUserInnb()); // 수정자
dwldCouponVO.setSecretKey(commonService.selectSecretkey());
log.debug("쿠폰 다운로드 쿠폰 값 확인 : {}", dwldCouponVO);
// service 호출
Map<String, Object> message = new HashMap<>();
message = service.insertBODwldCouponAllRegist(dwldCouponVO);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(message))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/insertBODwldCouponAllRegist", couponVO),
// ReplyFromResrc::getReply
// );
}

View File

@@ -1,20 +1,27 @@
package com.wb.domainserver.domain.crm.dlvylc.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.crm.cnslt.vo.CrmCnsltVO;
import com.wb.domainserver.domain.crm.dlvylc.vo.CrmDlvylcVO;
import com.wb.domainserver.domain.gcone.ordr.ordr.service.BOOrdrService;
import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOCrmDlvylcVO;
import com.wb.domainserver.exception.WnbtRestException;
import com.wb.domainserver.response.WnbtResponse;
import com.wb.domainserver.response.WnbtResponseBody;
import com.wb.domainserver.response.WnbtWebClientResponseHandler;
import com.wb.domainserver.security.authentication.AnonymousUser;
import com.wb.domainserver.security.authentication.MemberJwtContextHolder;
import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.communicate.RESRC;
import com.wb.domainserver.util.communicate.ReplyFromResrc;
import com.wb.domainserver.util.communicate.SendToResrc;
import com.wb.domainserver.util.communicate.ValidateResultConverter;
import com.wb.domainserver.util.dataaccess.DataMap;
import com.wb.domainserver.util.string.StringUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
@@ -24,6 +31,10 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* CRM 배송지 관리 Controller
*
@@ -55,9 +66,16 @@ public class CrmDlvylcController {
/** 공통 메시지 처리를 위한 메시지 객체 */
@Autowired
private GconeMessageSource gconeMessageSource;
@Autowired
private BOOrdrService service;
@Autowired
private PaginationProperties paginationProperties;
/**
* 배송지 관리 목록 조회 이동
* @param crmDlvylcVO
* @param vo
* @param model
* @return MbrDlvylcListInqireR.jsp
*/
@@ -75,7 +93,32 @@ public class CrmDlvylcController {
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping("/selectRpuseDlvylcListInqire")
public String selectRpuseDlvylcListInqire(CrmDlvylcVO crmDlvylcVO,ModelMap model) {
public String selectRpuseDlvylcListInqire(BOCrmDlvylcVO crmDlvylcVO,ModelMap model) {
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if ("01".equals(user.getSysDvCd())) {
crmDlvylcVO.setMbrInnb(user.getUserInnb());
crmDlvylcVO.setMbrDvCd(user.getMbrDvCd());
}
//페이징 정보 set
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(crmDlvylcVO.getPageIndex());
paginationInfo.setRecordCountPerPage(crmDlvylcVO.getPageUnit());
paginationInfo.setPageSize(paginationProperties.getPageSize());
crmDlvylcVO.setPaginationInfo(paginationInfo);
crmDlvylcVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
crmDlvylcVO.setLastIndex(paginationInfo.getLastRecordIndex());
crmDlvylcVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
/*목록 조회*/
List<DataMap> resultList = service.selectBOMbrDlvylcListInqire(crmDlvylcVO);
Map<String, Object> content = new HashMap<>();
content.put("paramVO", crmDlvylcVO);
content.put("resultList", resultList);
content.put("paginationInfo", crmDlvylcVO.getPaginationInfo());
log.debug("배송지 관리 : {}", crmDlvylcVO);
String jspPath = "";
//popUp or page 호출인지에 따라 페이지유닛 및 경로 분기
@@ -85,12 +128,13 @@ public class CrmDlvylcController {
} else {
jspPath = "crm/dlvylc/RpuseDlvylcListInqireR";
}
//BO에서 API 호출(자주쓰는 배송지 조회)
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOMbrDlvylcListInqire", crmDlvylcVO),
model,
"resultMap"
);
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOMbrDlvylcListInqire", crmDlvylcVO),
// model,
// "resultMap"
// );
//BO에서 API 호출(자주쓰는 배송지 조회)
//기존 페이지 유지
model.addAttribute("pageIndex", crmDlvylcVO.getPageIndex());
@@ -109,37 +153,67 @@ public class CrmDlvylcController {
/**
* 최근 배송지 조회
* @param CrmOrdrVO
* @param ModelMap
* @param vo
* @param model
* @return RecentDlvylcListInqireR.jsp
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectRecentDlvylcListInqire")
public String selectRecentDlvylcListInqire(CrmDlvylcVO crmDlvylcVO, ModelMap model) {
//BO에서 API 호출(최근 배송지 조회)
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBORecentDlvylcListInqire", crmDlvylcVO),
model,
"resultMap"
);
model.addAttribute("ordering",crmDlvylcVO.getOrdering());
public String selectRecentDlvylcListInqire(BOCrmDlvylcVO vo, ModelMap model) {
//페이징 정보 set
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(vo.getPageIndex());
paginationInfo.setRecordCountPerPage(vo.getPageUnit());
paginationInfo.setPageSize(paginationProperties.getPageSize());
vo.setPaginationInfo(paginationInfo);
vo.setFirstIndex(paginationInfo.getFirstRecordIndex());
vo.setLastIndex(paginationInfo.getLastRecordIndex());
vo.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
List<DataMap> resultList = service.selectBORecentDlvylcListInqire(vo);
Map<String, Object> content = new HashMap<>();
content.put("paramVO", vo);
content.put("resultList", resultList);
content.put("paginationInfo", vo.getPaginationInfo());
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBORecentDlvylcListInqire", crmDlvylcVO),
// model,
// "resultMap"
// );
model.addAttribute("ordering",vo.getOrdering());
return "crm/dlvylc/RecentDlvylcListInqireR";
}
/**
* 배송지 수정 상세 조회
* @param CrmOrdrVO
* @param crmDlvylcVO
* @return String
*/
@Policy(AuthPolicy.RESTRICTED)
@GetMapping(value="/selectDlvylcUpdtPopupForm")
public String selectDlvylcUpdtPopupForm(ModelMap model, CrmDlvylcVO crmDlvylcVO){
//BO API 호출하여 상세 조회
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBODlvylcUpdtPopupForm", crmDlvylcVO),
model,
"dtlDlvylc"
);
public String selectDlvylcUpdtPopupForm(ModelMap model, BOCrmDlvylcVO crmDlvylcVO){
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if ("01".equals(user.getSysDvCd())) {
crmDlvylcVO.setMbrInnb(user.getUserInnb());
crmDlvylcVO.setMbrDvCd(user.getMbrDvCd());
}
//회원 자주쓰는 배송지 상세 조회
BOCrmDlvylcVO resultVO = service.selectBODlvylcUpdtPopupForm(crmDlvylcVO);
//상세 조회 정보 resultVO에 put
Map<String, Object> content = new HashMap<>();
content.put("resultVO", resultVO);
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBODlvylcUpdtPopupForm", crmDlvylcVO),
// model,
// "dtlDlvylc"
// );
//모델 객체에 상세 조회 및 페이지 인덱스,회원고유번호 담음
model.addAttribute("pageIndex",crmDlvylcVO.getPageIndex());
model.addAttribute("mbrInnb",crmDlvylcVO.getMbrInnb());
@@ -152,9 +226,8 @@ public class CrmDlvylcController {
* @return ResponseEntity<WnbtResponse>
*/
@Policy(AuthPolicy.RESTRICTED)
@PostMapping(value="/updateDlvylcUpdt")
public ResponseEntity<WnbtResponse> updateDlvylcUpdt(@Validated CrmDlvylcVO crmDlvylcVO,
BindingResult bindingResult){
@PostMapping(value="/updateDlvylcUpdt", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> updateDlvylcUpdt(@Validated BOCrmDlvylcVO crmDlvylcVO, BindingResult bindingResult){
//입력값 정합성 점검결과 처리
if(bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
@@ -181,12 +254,32 @@ public class CrmDlvylcController {
if (StringUtil.isEmpty(crmDlvylcVO.getDtlAdres())) {
crmDlvylcVO.setDtlAdres(".");
}
//수정자 set
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if ("01".equals(user.getSysDvCd())) {
crmDlvylcVO.setMbrInnb(user.getUserInnb());
crmDlvylcVO.setMbrDvCd(user.getMbrDvCd());
}
crmDlvylcVO.setUpdusr(user.getUserInnb());
//기본배송지
String dftDlvylcAt = crmDlvylcVO.getDftDlvylcAt();
// 기본 배송지 체크 시('Y') 다른 배송지 N으로 수정
if (dftDlvylcAt.equals("Y")) {
service.updateBODftDlvylcAt(crmDlvylcVO);
}
//BO API 호출 => 배송지 수정
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/updateBODlvylcUpdt", crmDlvylcVO),
ReplyFromResrc::getReply
//자주쓰는 배송지 수정
Map<String, String> message = service.updateBODlvylc(crmDlvylcVO);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(message))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/updateBODlvylcUpdt", crmDlvylcVO),
// ReplyFromResrc::getReply
// );
}
/**
* 배송지 등록 팝업 이동
@@ -201,14 +294,13 @@ public class CrmDlvylcController {
/**
* 배송지 등록
* @param CrmOrdrVO
* @param crmDlvylcVO
* @param bindingResult
* @return ResponseEntity<WnbtResponse>
*/
@Policy(AuthPolicy.RESTRICTED)
@PostMapping(value="/insertDlvylcRegist")
public ResponseEntity<WnbtResponse> insertDlvylcRegist(@Validated CrmDlvylcVO crmDlvylcVO,
BindingResult bindingResult){
@PostMapping(value="/insertDlvylcRegist", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> insertDlvylcRegist(@Validated BOCrmDlvylcVO crmDlvylcVO, BindingResult bindingResult){
//입력값 정합성 점검결과 처리
if(bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
@@ -233,27 +325,61 @@ public class CrmDlvylcController {
if(StringUtil.isEmpty(crmDlvylcVO.getDtlAdres())){
crmDlvylcVO.setDtlAdres(".");
}
//등록자 set
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
crmDlvylcVO.setRegusr(user.getUserInnb());
crmDlvylcVO.setUpdusr(user.getUserInnb());
if ("01".equals(user.getSysDvCd())) {
crmDlvylcVO.setMbrInnb(user.getUserInnb());
crmDlvylcVO.setMbrDvCd(user.getMbrDvCd());
}
//기본 배송지 체크 여부 확인
String dftDlvylcAt = crmDlvylcVO.getDftDlvylcAt();
//등록시 체크 여부에 따라 'Y'일 시 기존 자주쓰는 배송지 'N'으로 UPDATE
if (dftDlvylcAt.equals("Y")) {
service.updateBODftDlvylcAt(crmDlvylcVO);
}
log.debug("insertBODlvylcRegist's CrmDlvylc : {}", crmDlvylcVO);
//service에서 등록 결과 메시지 담음
Map<String, String> message = service.insertBODlvylcRegist(crmDlvylcVO);
//BO API 호출 => 배송지 등록
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/insertBODlvylcRegist", crmDlvylcVO),
ReplyFromResrc::getReply
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(message))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/insertBODlvylcRegist", crmDlvylcVO),
// ReplyFromResrc::getReply
// );
}
/**
* 배송지 삭제
* @param CrmOrdrVO
* @param crmDlvylcVO
* @return ResponseEntity<WnbtResponse>
*/
@Policy(AuthPolicy.RESTRICTED)
@PostMapping(value="/deleteDlvylcDel")
public ResponseEntity<WnbtResponse> deleteDlvylcDel(CrmDlvylcVO crmDlvylcVO){
@PostMapping(value="/deleteDlvylcDel", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> deleteDlvylcDel(BOCrmDlvylcVO crmDlvylcVO){
log.debug("deleteDlvylcDel's crmDlvylcVO {}", crmDlvylcVO);
//BO API 호출 => 배송지 삭제
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/deleteBODlvylcDel", crmDlvylcVO),
ReplyFromResrc::getReply
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if ("01".equals(user.getSysDvCd())) {
crmDlvylcVO.setMbrInnb(user.getUserInnb());
crmDlvylcVO.setMbrDvCd(user.getMbrDvCd());
}
//service에서 삭제 결과 갖고 옴
Map<String, String> message = service.deleteBODlvylc(crmDlvylcVO);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(message))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/deleteBODlvylcDel", crmDlvylcVO),
// ReplyFromResrc::getReply
// );
}
}

View File

@@ -1,25 +1,39 @@
package com.wb.domainserver.domain.crm.main.controller;
import com.wb.domainserver.common.msg.GconeMessageSource;
import com.wb.domainserver.common.mvc.tags.ui.pagination.PaginationInfo;
import com.wb.domainserver.common.prop.PaginationProperties;
import com.wb.domainserver.domain.admin.store.sopmal.service.BOMaSopmalService;
import com.wb.domainserver.domain.admin.sys.comncd.service.BOMaComncdService;
import com.wb.domainserver.domain.admin.sys.comncd.vo.BOMaComncdVO;
import com.wb.domainserver.domain.auth.controller.AuthController;
import com.wb.domainserver.domain.auth.vo.AuthVO;
import com.wb.domainserver.domain.crm.main.vo.CrmMainVO;
import com.wb.domainserver.domain.crm.main.vo.CrmMbrSrchVO;
import com.wb.domainserver.domain.mngr.ordr.ordrmngr.vo.OrdrSrchVO;
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.BOMbrSrchVO;
import com.wb.domainserver.domain.gcone.mbr.mbr.vo.BOMbrVO;
import com.wb.domainserver.domain.gcone.ordr.ordr.service.BOOrdrService;
import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BODwldItmVO;
import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrSrchVO;
import com.wb.domainserver.domain.gcone.setup.nbkk.service.BONbkkService;
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.string.StringUtil;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
@@ -27,6 +41,10 @@ import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
*
* CRM 메인 페이지
@@ -65,6 +83,31 @@ public class CrmMainController {
// @Value("${spring.security.oauth2.resourceserver.jwt.issuer-uri}")
String issuerUri;
@Autowired
private BOMbrService service;
@Autowired
private BOMaComncdService bOMaComncdService;
@Autowired
private BOCommonService boCommonService;
@Autowired
private PaginationProperties paginationProperties;
@Autowired
private BOCommonService commonService;
@Autowired
private BOOrdrService boOrdrService;
@Autowired
private BONbkkService nbkkService;
@Autowired
private BOMaSopmalService boMaSopmalService;
/**
* CRM 메인 화면 이동
* @return
@@ -87,6 +130,7 @@ public class CrmMainController {
/**
* CRM 로그아웃
* @return
* TODO. 로그아웃 처리 확인필요(cookie삭제로직, redirect url 등)
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/crm/logout")
@@ -119,9 +163,7 @@ public class CrmMainController {
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/crm/main/selectCrmMbrSrchForm")
public String selectCrmMbrSrchForm(CrmMbrSrchVO mbrSrchVO, ModelMap model, HttpSession session, HttpServletRequest request, HttpServletResponse response, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
public String selectCrmMbrSrchForm(BOMbrSrchVO mbrSrchVO, ModelMap model, HttpSession session, HttpServletRequest request, HttpServletResponse response, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
// crm 전화받은게 아니면.
if(StringUtil.isEmpty(mbrSrchVO.getSopmalCd())) {
mbrSrchVO.setSopmalCd(authSopmalCd);
@@ -132,13 +174,23 @@ public class CrmMainController {
authController.selectMngrSopmalSite(authVO, request, response);
}
// 사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
mbrSrchVO.setSopmalCd(user.getSopmalCd());
}
mbrSrchVO.setUpdusr(user.getUserInnb());
// Map객체에 필요 정보 할당
Map<String, Object> content = new HashMap<>();
content.put("paramVO", mbrSrchVO);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOCrmMbrSrchPopupForm", mbrSrchVO),
model,
"resultMap"
);
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOCrmMbrSrchPopupForm", mbrSrchVO),
// model,
// "resultMap"
// );
model.addAttribute("cnsltVO", mbrSrchVO);
return "crm/main/CrmMbrSrchPopupRForm";
@@ -150,18 +202,56 @@ public class CrmMainController {
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/crm/main/selectCrmMbrSrch")
public String selectCrmMbrSrch(CrmMbrSrchVO mbrSrchVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
public String selectCrmMbrSrch(CrmMbrSrchVO srchVO, BOMbrSrchVO mbrSrchVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
srchVO.setSopmalCd(authSopmalCd);
mbrSrchVO.setSopmalCd(authSopmalCd);
// 페이징 객체 생성
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(mbrSrchVO.getPageIndex());
paginationInfo.setRecordCountPerPage(5); // CMR 회원 검색 팝업 5개씩 고정
paginationInfo.setPageSize(paginationProperties.getPageSize());
// 페이징정보 할당
mbrSrchVO.setPaginationInfo(paginationInfo);
mbrSrchVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
mbrSrchVO.setLastIndex(paginationInfo.getLastRecordIndex());
mbrSrchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
// 사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
mbrSrchVO.setSopmalCd(user.getSopmalCd());
}
mbrSrchVO.setUpdusr(user.getUserInnb());
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOCrmMbrSrch", mbrSrchVO),
model,
"resultMap"
);
model.addAttribute("cnsltVO", mbrSrchVO);
// 목록 조회
List<DataMap> resultList = null;
String secretKey = commonService.selectSecretkey();
mbrSrchVO.setSecretKey(secretKey);
resultList = service.selectBOCrmMbrSrch(mbrSrchVO);
Integer listSize = null;
if (resultList != null && resultList.size() > 0) {
listSize = resultList.size();
} else {
listSize = 0;
}
// Map객체에 필요 정보 할당
Map<String, Object> content = new HashMap<>();
content.put("paramVO", mbrSrchVO);
content.put("resultList", resultList);
content.put("listSize", listSize);
content.put("paginationInfo", mbrSrchVO.getPaginationInfo());
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOCrmMbrSrch", mbrSrchVO),
// model,
// "resultMap"
// );
model.addAttribute("cnsltVO", srchVO);
return "crm/main/CrmMbrSrchPopupR";
}
@@ -172,14 +262,96 @@ public class CrmMainController {
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/crm/main/selectCrmOrdrSrchPopupForm")
public String selectCrmOrdrSrchPopupForm(ModelMap model ,OrdrSrchVO ordrSrchVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
public String selectCrmOrdrSrchPopupForm(ModelMap model ,BOOrdrSrchVO ordrSrchVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
ordrSrchVO.setSopmalCd(authSopmalCd);
// 작성자 정보 할당
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if ("01".equals(user.getSysDvCd())) {
ordrSrchVO.setSopmalCd(user.getSopmalCd());
}
ordrSrchVO.setUpdusr(user.getUserInnb()); // 수정자
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOAllOrdrListInqire", ordrSrchVO),
model,
"cond"
);
Map<String, Object> content = new HashMap<>();
content.put("sopmalCd", ordrSrchVO.getSopmalCd());
List<?> storeList = boOrdrService.selectBOStoreList(ordrSrchVO);
content.put("storeList", storeList); // 매장
BODwldItmVO dwldItmVO = new BODwldItmVO();
dwldItmVO.setSopmalCd(ordrSrchVO.getSopmalCd());
List<?> dwldItmSetupFormList = boOrdrService.selectDwldItmSetupFormList(dwldItmVO);
content.put("dwldItmSetupFormList", dwldItmSetupFormList); // 엑셀다운로드 양식 폼 목록
BOMaComncdVO maComncdVO = new BOMaComncdVO();
maComncdVO.setGroupCd("ORDR_STTUS");
List<?> ordrSttusCdList = bOMaComncdService.selectBOCommcdDetailList(maComncdVO);
content.put("ordrSttusCdList", ordrSttusCdList); // 주문상태
maComncdVO = new BOMaComncdVO();
maComncdVO.setGroupCd("SLE_ENVRN"); // 주문환경
List<?> ordrEnvrnDvCdList = bOMaComncdService.selectBOCommcdDetailList(maComncdVO);
content.put("ordrEnvrnDvCdList", ordrEnvrnDvCdList);
maComncdVO = new BOMaComncdVO();
maComncdVO.setGroupCd("DLVY_MTH"); // 배송방법
List<?> dlvyMthCdList = bOMaComncdService.selectBOCommcdDetailList(maComncdVO);
content.put("dlvyMthCdList", dlvyMthCdList);
maComncdVO = new BOMaComncdVO();
maComncdVO.setGroupCd("ORDR_TY"); // 주문유형
List<?> ordrTyCdList = bOMaComncdService.selectBOCommcdDetailList(maComncdVO);
content.put("ordrTyCdList", ordrTyCdList);
maComncdVO = new BOMaComncdVO();
maComncdVO.setGroupCd("RESVE_SNDNG_DV"); // 희망배송일, 상품예약발송일
List<?> resveSndngDvCdList = bOMaComncdService.selectBOCommcdDetailList(maComncdVO);
content.put("resveSndngDvCdList", resveSndngDvCdList);
maComncdVO = new BOMaComncdVO();
maComncdVO.setGroupCd("SETLE_MTH"); // 모든 결제수단
List<?> setleMthList = bOMaComncdService.selectBOCommcdDetailList(maComncdVO);
content.put("setleMthList", setleMthList);
maComncdVO = new BOMaComncdVO();
maComncdVO.setGroupCd("PG_CMPNY"); // 모든결제사
List<?> setlePgCmpnyList = bOMaComncdService.selectBOCommcdDetailList(maComncdVO);
content.put("setlePgCmpnyList", setlePgCmpnyList);
// 무통장자동입금 사용 여부
String acntUseAt = nbkkService.selectBOAcntUseAtInqire(ordrSrchVO);
content.put("acntUseAt", acntUseAt);
// 네이버페이 사용 여부
String npayUseAt = boMaSopmalService.selectBONpayUseAtByShop(ordrSrchVO.getSopmalCd());
content.put("npayUseAt", npayUseAt);
// Map객체에 필요 정보 할당
content.put("paramVO", ordrSrchVO);
model.addAttribute("cond", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOAllOrdrListInqire", ordrSrchVO),
// model,
// "cond"
// );
model.addAttribute("paramVO", ordrSrchVO);
return "crm/main/CrmOrdrSrchPopupRForm";
@@ -191,13 +363,40 @@ public class CrmMainController {
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/crm/main/selectCrmOrdrSrch", method = RequestMethod.POST)
public String selectCrmOrdrSrch (ModelMap model , OrdrSrchVO ordrSrchVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
public String selectCrmOrdrSrch (ModelMap model , BOOrdrSrchVO ordrSrchVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
ordrSrchVO.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectAllOrdrListInqireAjax", ordrSrchVO),
model,
"resultMap"
);
// 작성자 정보 할당
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if ("01".equals(user.getSysDvCd())) {
ordrSrchVO.setSopmalCd(user.getSopmalCd());
}
Map<String, Object> content = new HashMap<>();
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(ordrSrchVO.getPageIndex());
paginationInfo.setRecordCountPerPage(ordrSrchVO.getPageUnit());
paginationInfo.setPageSize(paginationProperties.getPageSize());
ordrSrchVO.setPaginationInfo(paginationInfo);
ordrSrchVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
ordrSrchVO.setLastIndex(paginationInfo.getLastRecordIndex());
ordrSrchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
/*시크릿 키 set*/
ordrSrchVO.setSecretKey(commonService.selectSecretkey());
List<?> allOrdrList = boOrdrService.selectAllOrdrListInqireAjax(ordrSrchVO);
content.put("allOrdrList", allOrdrList);
content.put("paramVO", ordrSrchVO);
content.put("paginationInfo", ordrSrchVO.getPaginationInfo());
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectAllOrdrListInqireAjax", ordrSrchVO),
// model,
// "resultMap"
// );
return "crm/main/CrmOrdrSrchPopupR";
}
@@ -209,8 +408,6 @@ public class CrmMainController {
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/crm/main/callCenterCnncButton")
public String callCenterCnncButton () {
return "crm/main/ctiUnion";
}
@@ -219,15 +416,30 @@ public class CrmMainController {
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/crm/main/selectCrmMbrInfo")
public ResponseEntity<WnbtResponse> selectCrmMbrInfo (CrmMainVO mainVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
mainVO.setSopmalCd(authSopmalCd);
@RequestMapping(value = "/crm/main/selectCrmMbrInfo", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> selectCrmMbrInfo (BOMbrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
vo.setSopmalCd(authSopmalCd);
/*검색어에 해당하는 회원 조회*/
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOCrmMenuMbrInfoInqire", mainVO),
ReplyFromResrc::getReply
//쇼핑몰코드 set
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}
String secretKey = boCommonService.selectSecretkey();
vo.setSecretKey(secretKey);
Map<String, Object> mbr = service.selectBOCrmMenuMbrInfoInqire(vo);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(mbr))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOCrmMenuMbrInfoInqire", mainVO),
// ReplyFromResrc::getReply
// );
}
/**
@@ -235,15 +447,26 @@ public class CrmMainController {
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/crm/main/selectCrmNmbrInfo")
public ResponseEntity<WnbtResponse> selectCrmNmbrInfo (CrmMainVO mainVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
mainVO.setSopmalCd(authSopmalCd);
@RequestMapping(value = "/crm/main/selectCrmNmbrInfo", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> selectCrmNmbrInfo (BOMbrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
vo.setSopmalCd(authSopmalCd);
//쇼핑몰코드 set
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
/*검색어에 해당하는 회원 조회*/
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOCrmMenuNmbrInfoInqire", mainVO),
ReplyFromResrc::getReply
String secretKey = boCommonService.selectSecretkey();
vo.setSecretKey(secretKey);
Map<String, Object> mbr = new HashMap<>();
mbr = service.selectBOCrmMenuNmbrInfoInqire(vo);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(mbr))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOCrmMenuNmbrInfoInqire", mainVO),
// ReplyFromResrc::getReply
// );
}
/**
@@ -251,14 +474,23 @@ public class CrmMainController {
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/crm/main/selectSopmalNm")
public ResponseEntity<WnbtResponse> selectSopmalNm(CrmMainVO mainVO) {
@RequestMapping(value = "/crm/main/selectSopmalNm", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> selectSopmalNm(DataMap vo) {
DataMap result = service.selectBOSopmalNm(vo);
// 응답 메세지 객체
Map<String, Object> content = new HashMap<>();
content.put("resultMap", result);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOSopmalNm", mainVO),
ReplyFromResrc::getReply
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(content))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOSopmalNm", mainVO),
// ReplyFromResrc::getReply
// );
}

View File

@@ -1,32 +1,54 @@
package com.wb.domainserver.domain.crm.mbr.controller;
import com.wb.domainserver.common.msg.GconeMessageSource;
import com.wb.domainserver.domain.admin.store.sopmal.service.BOMaSopmalService;
import com.wb.domainserver.domain.admin.store.sopmal.vo.BOMaSopmalVO;
import com.wb.domainserver.domain.admin.sys.comncd.service.BOMaComncdService;
import com.wb.domainserver.domain.admin.sys.comncd.vo.BOMaComncdVO;
import com.wb.domainserver.domain.admin.user.mngr.service.BOJobUserService;
import com.wb.domainserver.domain.admin.user.mngr.vo.BOJobUserVO;
import com.wb.domainserver.domain.crm.cnslt.vo.CrmCnsltVO;
import com.wb.domainserver.domain.crm.mbr.vo.CrmMbrVO;
import com.wb.domainserver.domain.gcone.common.service.BOCommonService;
import com.wb.domainserver.domain.gcone.common.vo.BOCommonVO;
import com.wb.domainserver.domain.gcone.mbr.mbr.service.BOMbrService;
import com.wb.domainserver.domain.gcone.mbr.mbr.vo.BOMbrAppnVO;
import com.wb.domainserver.domain.gcone.mbr.mbr.vo.BOMbrVO;
import com.wb.domainserver.domain.gcone.mbr.mbr.vo.BOWithdrawalVO;
import com.wb.domainserver.domain.gcone.setup.gradbnef.service.BOGradbnefService;
import com.wb.domainserver.domain.gcone.setup.gradbnef.vo.BOGradbnefVO;
import com.wb.domainserver.domain.gcone.setup.ordrmngr.service.BOOrdrMngrService;
import com.wb.domainserver.domain.gcone.setup.ordrmngr.vo.BOSetupOrdrVO;
import com.wb.domainserver.exception.WnbtRestException;
import com.wb.domainserver.response.WnbtResponse;
import com.wb.domainserver.response.WnbtResponseBody;
import com.wb.domainserver.response.WnbtWebClientResponseHandler;
import com.wb.domainserver.security.authentication.AnonymousUser;
import com.wb.domainserver.security.authentication.MemberJwtContextHolder;
import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.communicate.RESRC;
import com.wb.domainserver.util.communicate.ReplyFromResrc;
import com.wb.domainserver.util.communicate.SendToResrc;
import com.wb.domainserver.util.communicate.ValidateResultConverter;
import com.wb.domainserver.util.dataaccess.DataMap;
import com.wb.domainserver.util.string.StringUtil;
import com.wb.domainserver.util.util.Util;
import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
@@ -47,22 +69,63 @@ public class CrmMbrController {
@Autowired
private GconeMessageSource gconeMessageSource;
@Autowired
private BOMbrService service;
@Autowired
private BOGradbnefService mbrGradService;
@Autowired
private BOMaComncdService bOMaComncdService;
@Autowired
private BOMaSopmalService maSopmalService;
@Autowired
private BOCommonService boCommonService;
@Autowired
private BOCommonService commonService;
@Autowired
private BOOrdrMngrService boOrdrMngrService;
@Autowired
private BOJobUserService boJobUserService;
/**
* 로그/메모 폼 이동
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectLogMemoInqire")
public String selectLogMemoInqire(CrmCnsltVO vo , CrmMbrVO mbrVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
mbrVO.setPageDv("crm");
mbrVO.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrInfoLogCrm", mbrVO),
model,
"resultMap"
);
public String selectLogMemoInqire(CrmCnsltVO crmCnsltVO , BOMbrVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
vo.setPageDv("crm");
vo.setSopmalCd(authSopmalCd);
model.addAttribute("cnsltVO",vo);
//시크릿키 set
String secretKey = "";
secretKey = commonService.selectSecretkey();
vo.setSecretKey(secretKey);
//회원정보 수정 조회
DataMap result = new DataMap();
result = service.selectBOMbrInfoUpdtInqire(vo);
// Map객체에 필요 정보 할당
Map<String, Object> content = new HashMap<>();
content.put("result", result);
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrInfoLogCrm", mbrVO),
// model,
// "resultMap"
// );
model.addAttribute("cnsltVO",crmCnsltVO);
return "crm/mbr/LogMemoR";
}
@@ -71,13 +134,26 @@ public class CrmMbrController {
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/updateMemoUpdt")
public ResponseEntity<WnbtResponse> updateMemoUpdt(@Validated CrmMbrVO mbrVO,@CookieValue(value = "authSopmalCd") String authSopmalCd) {
mbrVO.setSopmalCd(authSopmalCd);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/updateBOMbrMemoUpdt", mbrVO),
ReplyFromResrc::getReply
@RequestMapping(value = "/updateMemoUpdt", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> updateMemoUpdt(@Validated BOMbrVO vo,@CookieValue(value = "authSopmalCd") String authSopmalCd) {
vo.setSopmalCd(authSopmalCd);
// 사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
vo.setUpdusr(user.getUserInnb());
// service 호출
Map<String, Object> message = new HashMap<>();
message = service.updateBOMbrMemoUpdt(vo);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(message))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/updateBOMbrMemoUpdt", mbrVO),
// ReplyFromResrc::getReply
// );
}
/**
@@ -87,14 +163,74 @@ public class CrmMbrController {
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectMbrInfoUpdtInqire")
public String selectMbrInfoUpdtInqire(CrmCnsltVO vo,CrmMbrVO mbrVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
mbrVO.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrInfoUpdtInqireCrm", mbrVO),
model,
"resultMap"
);
model.addAttribute("cnsltVO",vo);
public String selectMbrInfoUpdtInqire(CrmCnsltVO crmCnsltVO,BOMbrVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
vo.setSopmalCd(authSopmalCd);
//시크릿키 set
String secretKey = "";
secretKey = commonService.selectSecretkey();
vo.setSecretKey(secretKey);
//회원정보 수정 조회
DataMap result = new DataMap();
result = service.selectBOMbrInfoUpdtInqire(vo);
//pos 가입 매장 조회
DataMap pos = new DataMap();
pos = service.selectBOJoinStrInqire(vo);
//외부연동 조회
List<DataMap> extrlMember = new ArrayList<>();
extrlMember = service.selectBOMbrExtrlMbrInfoInqire(vo);
//회원등급 조회
BOGradbnefVO paramVO = new BOGradbnefVO();
paramVO.setSopmalCd(vo.getSopmalCd());
List<DataMap> gradList = null;
gradList = mbrGradService.selectBOMbrGradListInqireWithoutPaging(paramVO);
//성별
BOMaComncdVO cdVO = new BOMaComncdVO();
List<DataMap> sex = new ArrayList<>();
cdVO.setGroupCd("SEX");
sex = service.selectCommCode(cdVO);
//리셀러 구분
List<DataMap> rslr = new ArrayList<>();
cdVO.setGroupCd("RSLR_APPN_DV");
rslr = service.selectCommCode(cdVO);
//쇼핑몰 타입별 쇼핑몰 목록
BOMaSopmalVO sopmalVo = new BOMaSopmalVO();
sopmalVo.setSopmalCd(vo.getSopmalCd());
List<DataMap> sopmalList = new ArrayList<>();
sopmalList = maSopmalService.selectSopmalGroupList(sopmalVo);
//해당 회원 브랜드 별 마케팅 동의 여부
List<DataMap> agreeAtList = new ArrayList<>();
if(!CollectionUtils.isEmpty(sopmalList)){
vo.setSopmalList(sopmalList);
agreeAtList = service.selectBOMarkRecptnAgreList(vo);
}
// Map객체에 필요 정보 할당
Map<String, Object> content = new HashMap<>();
content.put("result", result);
content.put("extrlMember", extrlMember);
content.put("pos", pos);
content.put("paramVO", vo);
content.put("gradList", gradList);
content.put("sex", sex);
content.put("rslr", rslr);
content.put("sopmalList", sopmalList);
content.put("agreeAtList", agreeAtList);
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrInfoUpdtInqireCrm", mbrVO),
// model,
// "resultMap"
// );
model.addAttribute("cnsltVO",crmCnsltVO);
return "crm/mbr/MbrInfoUpdtU";
}
@@ -104,8 +240,8 @@ public class CrmMbrController {
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/updateMbrInfoUpdt", method = RequestMethod.POST)
public ResponseEntity<WnbtResponse> updateMbrInfoUpdt(@Validated CrmMbrVO mbrVO, HttpServletRequest request, @CookieValue(value = "authSopmalCd") String authSopmalCd, BindingResult bindingResult) {
@RequestMapping(value = "/updateMbrInfoUpdt", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> updateMbrInfoUpdt(@Validated BOMbrVO mbrVO, HttpServletRequest request, @CookieValue(value = "authSopmalCd") String authSopmalCd, BindingResult bindingResult) {
// 정합성 검사
if (bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
@@ -138,13 +274,22 @@ public class CrmMbrController {
}
//쇼핑몰 코드 set
mbrVO.setSopmalCd(authSopmalCd);
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
//아이디 중복 체크
if("Y".equals(mbrVO.getMbrIdChngAt())){
//아이디 중복 체크
Map<String, Object> idResult = responseHandler.handleResponseAsMap(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOIdDplctCnfirm", mbrVO)
);
if("01".equals(user.getSysDvCd())){
mbrVO.setSopmalCd(user.getSopmalCd());
}
mbrVO.setMbrDvCd(service.selectBOMbrDvCd(mbrVO));
DataMap idResult = new DataMap();
idResult = service.selectBOIdDplctCnfirm(mbrVO);
// Map<String, Object> idResult = responseHandler.handleResponseAsMap(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOIdDplctCnfirm", mbrVO)
// );
String possibleAt = (String) idResult.get("message");
if("impossible".equals(possibleAt)){
throw new WnbtRestException("중복된 아이디입니다.");
@@ -153,10 +298,16 @@ public class CrmMbrController {
//비밀번호 체크
if("Y".equals(mbrVO.getMbrPwdChngAt())){
/*1 비밀번호 변경 시 관리자 비밀번호 확인*/
Map<String, Object> resultMap = responseHandler.handleResponseAsMap(
sendToResrc.ofPost(RESRC.GCONEBO, "/admin/user/mngr/selectBOJobUserPasswordInqire", mbrVO)
);
int result = (int) resultMap.get("result");
BOJobUserVO vo = new BOJobUserVO();
vo.setPassword(mbrVO.getPassword());
vo.setMngrDv(user.getMbrDvCd());
vo.setMngrInnb(new BigInteger(String.valueOf(user.getUserInnb())));
int result = boJobUserService.selectBOJobUserPasswordInqire(vo);
// Map<String, Object> resultMap = responseHandler.handleResponseAsMap(
// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/user/mngr/selectBOJobUserPasswordInqire", mbrVO)
// );
if (result == 0) {
throw new WnbtRestException("관리자 비밀번호가 일치하지 않습니다");
}else{
@@ -179,10 +330,96 @@ public class CrmMbrController {
String ip = (String) Util.getRequestInfo(request).get("XForwardedFor");
mbrVO.setRegistIp(ip);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/updateBOMbrInfoUpdtCrm", mbrVO),
ReplyFromResrc::getReply
mbrVO.setUpdusr(user.getUserInnb());
mbrVO.setMngrId(user.getMbrId());
String secretKey = "";
secretKey = commonService.selectSecretkey();
mbrVO.setSecretKey(secretKey);
Map<String, Object> message = new HashMap<>();
//비밀번호 수정
if ("Y".equals(mbrVO.getMbrPwdChngAt())) {
BOCommonVO commVO = new BOCommonVO();
commVO.setPass(mbrVO.getMbrPassword()); // 변경할 비밀번호
commVO.setEncptKeyDvCd("01"); // 회원
commVO.setIdntfcInnb(mbrVO.getMbrInnb()); // 회원고유번호
//변경할 비밀번호 암호화
String newPwd = commonService.generateKey(commVO);
mbrVO.setNewPassword(newPwd);
}
// CRM > 회원 정보 수정
if ("01".equals(mbrVO.getAdresDv())) {
mbrVO.setRnmAdres(mbrVO.getAdres());
} else {
mbrVO.setLnbAdres(mbrVO.getAdres());
}
message = service.updateBOMbrInfoUpdtCrm(mbrVO);
//리셀러 등록 or 수정
String beforeAppnDvCd = StringUtil.isEmpty(mbrVO.getBeforeAppnDvCd()) ? "01" : mbrVO.getBeforeAppnDvCd();
if (!beforeAppnDvCd.equals(mbrVO.getAppnDvCd())) {
BOMbrAppnVO appnVO = new BOMbrAppnVO();
appnVO.setAppnDvCd(mbrVO.getAppnDvCd());
appnVO.setOriginDvCd("02");
appnVO.setAppnMemo(mbrVO.getAppnMemo());
appnVO.setIdntfcStdrCd("mbr_innb");
List<String> mbrDvCdArr = new ArrayList<>();
mbrDvCdArr.add(mbrVO.getMbrDvCd());
appnVO.setMbrDvCdArr(mbrDvCdArr);
List<String> mbrInnbArr = new ArrayList<>();
mbrInnbArr.add(mbrVO.getMbrInnb());
appnVO.setIdntfcInfoArr(mbrInnbArr);
appnVO.setAppnInnbArr(mbrVO.getAppnInnbArr());
appnVO.setSopmalCd(mbrVO.getSopmalCd());
appnVO.setUpdusr(user.getUserInnb());
appnVO.setRegusr(user.getUserInnb());
appnVO.setSecretKey(mbrVO.getSecretKey());
service.updateBOMbrRslr(appnVO);
}
// 회원 등급 수정
if (!mbrVO.getBeforeMbrGradInnb().equals(mbrVO.getMbrGradInnb())) {
Integer gradUpdtResult = mbrGradService.updateBOMbrGradMapingUpdt(mbrVO);
//회원 등급 메모 수정 등급명 set
if (gradUpdtResult > 0) {
//회원등급 명 조회
DataMap gradNm = new DataMap();
gradNm = mbrGradService.selectMbrChngGradNm(mbrVO);
String beforeGradNm = (String) gradNm.get("beforeGradNm");
String afterGradNm = (String) gradNm.get("afterGradNm");
mbrVO.setBeforeGradNm(beforeGradNm);
mbrVO.setAfterGradNm(afterGradNm);
mbrVO.setMngrNm(user.getMbrNm());
//관리자 로그 문장 만듦
DataMap mngrLog = new DataMap();
DataMap data = new DataMap();
data.put("id", user.getMbrId());
data.put("registIp", mbrVO.getRegistIp());
data.put("before", mbrVO.getBeforeGradNm());
data.put("after", mbrVO.getAfterGradNm());
data.put("actionDv", "mbrGrad");
mngrLog = service.makeMngrLog(data);
mbrVO.setMngrLogStrt(StringUtil.isNullToString(mngrLog.get("mngrLogStrt")));
mbrVO.setMngrLogEnd(StringUtil.isNullToString(mngrLog.get("mngrLogEnd")));
service.updateBOMbrGradMemoUpdt(mbrVO);
}
}
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(message))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/updateBOMbrInfoUpdtCrm", mbrVO),
// ReplyFromResrc::getReply
// );
}
@@ -202,18 +439,54 @@ public class CrmMbrController {
/**
* 회원 CRM 팝업 폼 ( 아이디 클릭시 바로 옆에 띄워지는 고객 CRM 팝업 화면 )
*
* @param paramVO
* @param vo
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectMbrCrmInfoPopupForm")
public String selectMbrCrmInfoPopupForm(CrmMbrVO mbrVO, ModelMap model,@CookieValue(value = "authSopmalCd") String authSopmalCd) {
mbrVO.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrCrmInfoPopupInqire", mbrVO),
model,
"resultMap"
);
public String selectMbrCrmInfoPopupForm(BOMbrVO vo, ModelMap model,@CookieValue(value = "authSopmalCd") String authSopmalCd) {
vo.setSopmalCd(authSopmalCd);
// 사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}else if ("04".equals(user.getSysDvCd())){//인트라넷이면 대표브랜드로 검색
vo.setSopmalCd(user.getReprsntBrand());
}
String secretKey = commonService.selectSecretkey();
vo.setSecretKey(secretKey);
// 회원 활동 정보 조회 ( 마일리지, 쿠폰, 누적 결재 금액, 누적 주문 건수, 최근 로그인 ip, 최근 수정일시 )
DataMap result = new DataMap();
result = service.selectBOMbrActInfoInqire(vo);
// sns 연동 조회
List<DataMap> sns = new ArrayList<>();
sns = service.selectBOMbrExtrlMbrInfoInqire(vo);
// 고객 주문관련, 게시글관련 데이터 조회
Map<String, Object> orderData = new HashMap<>();
orderData = service.selectBOMbrDataOrderInqireCrmPopup(vo);
// Shop 정보 조회
BOSetupOrdrVO boOrdrVO = new BOSetupOrdrVO();
boOrdrVO.setSopmalCd(vo.getSopmalCd());
// Map객체에 필요 정보 할당
Map<String, Object> content = new HashMap<>();
content.put("shopInfo", boOrdrMngrService.selectBOOrdrSetupList(boOrdrVO));
content.put("result", result);
content.put("sns", sns);
content.put("acttData", orderData);
content.put("paramVO", vo);
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrCrmInfoPopupInqire", mbrVO),
// model,
// "resultMap"
// );
return "crm/mbr/MbrCrmInfoPopupR";
}
@@ -221,38 +494,82 @@ public class CrmMbrController {
/**
* 비회원 CRM 팝업 폼 ( 아이디 클릭시 바로 옆에 띄워지는 고객 CRM 팝업 화면 )
*
* @param mbrVO
* @param vo
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectNmbrCrmInfoPopupForm")
public String selectNmbrCrmInfoPopupForm(CrmMbrVO mbrVO, ModelMap model,@CookieValue(value = "authSopmalCd") String authSopmalCd) {
mbrVO.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOCrmMenuNmbrInfoInqire", mbrVO),
model,
"resultMap"
);
model.addAttribute("vo",mbrVO);
public String selectNmbrCrmInfoPopupForm(BOMbrVO vo, ModelMap model,@CookieValue(value = "authSopmalCd") String authSopmalCd) {
vo.setSopmalCd(authSopmalCd);
//쇼핑몰코드 set
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
String secretKey = boCommonService.selectSecretkey();
vo.setSecretKey(secretKey);
Map<String, Object> mbr = new HashMap<>();
mbr = service.selectBOCrmMenuNmbrInfoInqire(vo);
model.addAttribute("resultMap", mbr);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOCrmMenuNmbrInfoInqire", mbrVO),
// model,
// "resultMap"
// );
model.addAttribute("vo",vo);
return "crm/mbr/NmbrCrmInfoPopupR";
}
/**
* CRM 회원 정보 조회 이동
*
* @param paramVO
* @param vo
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectCstmrInfoInqire")
public String selectCstmrInfoInqire(CrmCnsltVO vo,CrmMbrVO mbrVO, ModelMap model,@CookieValue(value = "authSopmalCd") String authSopmalCd) {
mbrVO.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOCstmrInfoInqire", mbrVO),
model,
"resultMap"
);
model.addAttribute("cnsltVO",vo);
public String selectCstmrInfoInqire(CrmCnsltVO crmCnsltVO,BOMbrVO vo, ModelMap model,@CookieValue(value = "authSopmalCd") String authSopmalCd) {
vo.setSopmalCd(authSopmalCd);
// 사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}
String secretKey = commonService.selectSecretkey();
vo.setSecretKey(secretKey);
// 회원 정보 조회
DataMap result = new DataMap();
result = service.selectBOMbrInfoUpdtInqire(vo);
// 고객 주문관련, 게시글관련 데이터 조회
Map<String, Object> orderData = new HashMap<>();
orderData = service.selectBOMbrDataOrderInqire(vo);
//공통코드
BOMaComncdVO bOMaComncdVO = new BOMaComncdVO();
bOMaComncdVO.setGroupCd("SEX");
List<?> sex = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
bOMaComncdVO.setGroupCd("JOIN_ENVRN");
List<?> joinEnvrn = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
// Map객체에 필요 정보 할당
Map<String, Object> content = new HashMap<>();
content.put("result", result);
content.put("acttData", orderData);
content.put("paramVO", vo);
content.put("sex", sex);
content.put("joinEnvrn", joinEnvrn);
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOCstmrInfoInqire", mbrVO),
// model,
// "resultMap"
// );
model.addAttribute("cnsltVO",crmCnsltVO);
return "crm/mbr/CstmrInfoInqireR";
}
@@ -260,20 +577,29 @@ public class CrmMbrController {
/**
* CRM 회원 정보 조회 > 관리매장 변경 팝업
*
* @param paramVO
* @param vo
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectManageStrChngPopupForm")
public String selectManageStrChngPopupForm(CrmMbrVO mbrVO, ModelMap model,@CookieValue(value = "authSopmalCd") String authSopmalCd) {
mbrVO.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOManageStrChngPopupForm", mbrVO),
model,
"resultMap"
);
public String selectManageStrChngPopupForm(BOMbrVO vo, ModelMap model,@CookieValue(value = "authSopmalCd") String authSopmalCd) {
vo.setSopmalCd(authSopmalCd);
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
//인트라넷 => 해당 로그인 대표브랜드 set
// crm => session에 있는 브랜드 fo에서 넘어옴
if("04".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getReprsntBrand());
}
Map<String, Object> contents = new HashMap<>();
contents = service.selectBOManageStrChngPopupForm(vo);
model.addAttribute("resultMap", contents);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOManageStrChngPopupForm", mbrVO),
// model,
// "resultMap"
// );
return "crm/mbr/ManageStrChngPopupU";
}
@@ -281,39 +607,76 @@ public class CrmMbrController {
/**
* 탈퇴사유조회
*
* @param paramVO
* @param vo
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectSecsnResn")
public ResponseEntity<WnbtResponse> selectSecsnResn(HttpServletRequest request, CrmMbrVO mbrVO,@CookieValue(value = "authSopmalCd") String authSopmalCd) {
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrwithdrawal", mbrVO),
ReplyFromResrc::getReply
@RequestMapping(value = "/selectSecsnResn", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> selectSecsnResn(HttpServletRequest request, BOWithdrawalVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
DataMap result = service.selectBOMbrwithdrawal(vo);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(result))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrwithdrawal", mbrVO),
// ReplyFromResrc::getReply
// );
}
/**
* CRM 회원 정보 조회 > 관리매장 수정
*
* @param paramVO
* @param vo
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/updateManageStrUpdt")
public ResponseEntity<WnbtResponse> updateManageStrUpdt(HttpServletRequest request, CrmMbrVO mbrVO,@CookieValue(value = "authSopmalCd") String authSopmalCd) { //등록 ip 설정
@RequestMapping(value = "/updateManageStrUpdt", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> updateManageStrUpdt(HttpServletRequest request, BOMbrVO vo,@CookieValue(value = "authSopmalCd") String authSopmalCd) { //등록 ip 설정
String ip = (String) Util.getRequestInfo(request).get("XForwardedFor");
mbrVO.setRegistIp(ip);
mbrVO.setSopmalCd(authSopmalCd);
vo.setRegistIp(ip);
vo.setSopmalCd(authSopmalCd);
//관리매장 없을시 set
if(StringUtil.isEmpty(mbrVO.getBeforeStrNm())){
mbrVO.setBeforeStrNm("관리매장 없음");
if(StringUtil.isEmpty(vo.getBeforeStrNm())){
vo.setBeforeStrNm("관리매장 없음");
}
// 사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/updateBOManageStrUpdt", mbrVO),
ReplyFromResrc::getReply
vo.setUpdusr(user.getUserInnb());
//관리자 로그 문장 만듦
DataMap mngrLog = new DataMap();
DataMap data = new DataMap();
data.put("id", user.getMbrId());
data.put("registIp", vo.getRegistIp());
data.put("before", vo.getBeforeStrNm());
data.put("after", vo.getStrNm());
data.put("actionDv", "store");
mngrLog = service.makeMngrLog(data);
vo.setMngrLogStrt(StringUtil.isNullToString(mngrLog.get("mngrLogStrt")));
vo.setMngrLogEnd(StringUtil.isNullToString(mngrLog.get("mngrLogEnd")));
// service 호출
Map<String, Object> message = new HashMap<>();
message = service.updateBOManageStrUpdt(vo);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(message))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/updateBOManageStrUpdt", mbrVO),
// ReplyFromResrc::getReply
// );
}
@@ -321,107 +684,232 @@ public class CrmMbrController {
/**
* CRM 회원 활동 정보 조회 이동
*
* @param paramVO
* @param vo
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectMbrActInfoInqire")
public String selectMbrActInfoInqire(CrmCnsltVO vo ,CrmMbrVO mbrVO, ModelMap model,@CookieValue(value = "authSopmalCd") String authSopmalCd) {
mbrVO.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selecBOtMbrActInfoInqire", mbrVO),
model,
"resultMap"
);
model.addAttribute("cnsltVO",vo);
public String selectMbrActInfoInqire(CrmCnsltVO crmCnsltVO ,BOMbrVO vo, ModelMap model,@CookieValue(value = "authSopmalCd") String authSopmalCd) {
vo.setSopmalCd(authSopmalCd);
// 사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}
// 회원 활동 정보 조회 ( 마일리지, 쿠폰, 누적 결재 금액, 누적 주문 건수, 최근 로그인 ip, 최근 수정일시 )
DataMap result = new DataMap();
result = service.selectBOMbrActInfoInqire(vo);
// 고객 상품, 검색 관련 데이터 조회
DataMap acttData = new DataMap();
acttData = service.selectBOMbrDataGoodsInqire(vo);
// String recentVisitSopmalNm = service.selectBORecentVisitStrInqire();
// SELECT FN_GET_SOPMAL_NAME(ML.SOPMAL_CD) AS SOPMAL_NM FROM FM_MEMBER_LOGIN ML WHERE ML.MBR_DV_CD = 'GC' AND ML.MBR_INNB = 4 ORDER BY ML.REGIST_DT DESC LIMIT 0, 1;
// Map객체에 필요 정보 할당
Map<String, Object> content = new HashMap<>();
content.put("result", result);
content.put("acttData", acttData);
content.put("paramVO", vo);
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selecBOtMbrActInfoInqire", mbrVO),
// model,
// "resultMap"
// );
model.addAttribute("cnsltVO",crmCnsltVO);
return "crm/mbr/MbrActInfoInqireR";
}
/**
* CRM 회원 활동 정보 (고객 데이터 : 최근 본 상품 )
* @param paramVO
* @param vo
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectMbrDataGoodsInqireToday")
public String selectMbrDataGoodsInqireToday(CrmMbrVO mbrVO, ModelMap model,@CookieValue(value = "authSopmalCd") String authSopmalCd) {
mbrVO.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrDataGoodsInqireToday", mbrVO),
model,
"resultMap"
);
public String selectMbrDataGoodsInqireToday(BOMbrVO vo, ModelMap model,@CookieValue(value = "authSopmalCd") String authSopmalCd) {
vo.setSopmalCd(authSopmalCd);
// 사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}
// 고객 상품, 검색 관련 데이터 조회
List<DataMap> todayList = null;
todayList = service.selectBOMbrDataGoodsInqireToday(vo);
// Map객체에 필요 정보 할당
Map<String, Object> content = new HashMap<>();
content.put("result", todayList);
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrDataGoodsInqireToday", mbrVO),
// model,
// "resultMap"
// );
return "crm/mbr/MbrDataInqireR";
}
/**
* CRM 회원 활동 정보 (고객 데이터 : 위시리스트에 담은 상품 )
* @param paramVO
* @param vo
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectMbrDataGoodsInqireWish")
public String selectMbrDataGoodsInqireWish(CrmMbrVO mbrVO, ModelMap model,@CookieValue(value = "authSopmalCd") String authSopmalCd) {
mbrVO.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrDataGoodsInqireWish", mbrVO),
model,
"resultMap"
);
public String selectMbrDataGoodsInqireWish(BOMbrVO vo, ModelMap model,@CookieValue(value = "authSopmalCd") String authSopmalCd) {
vo.setSopmalCd(authSopmalCd);
// 사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}
// 고객 상품, 검색 관련 데이터 조회
List<DataMap> wishList = null;
wishList = service.selectBOMbrDataGoodsInqireWish(vo);
// Map객체에 필요 정보 할당
Map<String, Object> content = new HashMap<>();
content.put("result", wishList);
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrDataGoodsInqireWish", mbrVO),
// model,
// "resultMap"
// );
return "crm/mbr/MbrDataInqireR";
}
/**
* CRM 회원 활동 정보 (고객 데이터 : 장바구니에 담은 상품 )
* @param paramVO
* @param vo
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectMbrDataGoodsInqireCart")
public String selectMbrDataGoodsInqireCart(CrmMbrVO mbrVO, ModelMap model,@CookieValue(value = "authSopmalCd") String authSopmalCd) {
mbrVO.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrDataGoodsInqireCart", mbrVO),
model,
"resultMap"
);
public String selectMbrDataGoodsInqireCart(BOMbrVO vo, ModelMap model,@CookieValue(value = "authSopmalCd") String authSopmalCd) {
vo.setSopmalCd(authSopmalCd);
// 사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}
vo.setUpdusr(user.getUserInnb());
// 고객 상품, 검색 관련 데이터 조회
List<DataMap> cartList = null;
cartList = service.selectBOMbrDataGoodsInqireCart(vo);
// Map객체에 필요 정보 할당
Map<String, Object> content = new HashMap<>();
content.put("result", cartList);
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrDataGoodsInqireCart", mbrVO),
// model,
// "resultMap"
// );
return "crm/mbr/MbrDataInqireR";
}
/**
* CRM 회원 활동 정보 (고객 데이터 : 최근 검색어 )
* @param paramVO
* @param vo
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectMbrDataGoodsInqireSrch")
public String selectMbrDataGoodsInqireSrch(CrmMbrVO mbrVO, ModelMap model,@CookieValue(value = "authSopmalCd") String authSopmalCd) {
mbrVO.setSopmalCd(authSopmalCd);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrDataGoodsInqireSrch", mbrVO),
model,
"resultMap"
);
public String selectMbrDataGoodsInqireSrch(BOMbrVO vo, ModelMap model,@CookieValue(value = "authSopmalCd") String authSopmalCd) {
vo.setSopmalCd(authSopmalCd);
// 사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}
// 고객 상품, 검색 관련 데이터 조회
List<DataMap> srchKeywordList = null;
srchKeywordList = service.selectBOMbrDataGoodsInqireSrch(vo);
// Map객체에 필요 정보 할당
Map<String, Object> content = new HashMap<>();
content.put("result", srchKeywordList);
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrDataGoodsInqireSrch", mbrVO),
// model,
// "resultMap"
// );
return "crm/mbr/MbrDataSrchKeywordR";
}
/**
* CRM 회원 정보 조회
*
* @param paramVO
* @param vo
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectMbrCrmInfo")
public ResponseEntity<WnbtResponse> selectMbrCrmInfo(CrmMbrVO mbrVO,@CookieValue(value = "authSopmalCd") String authSopmalCd) {
mbrVO.setSopmalCd(authSopmalCd);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrCrmInfoPopupInqire", mbrVO),
ReplyFromResrc::getReply
@RequestMapping(value = "/selectMbrCrmInfo", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> selectMbrCrmInfo(BOMbrVO vo,@CookieValue(value = "authSopmalCd") String authSopmalCd) {
vo.setSopmalCd(authSopmalCd);
// 사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
vo.setSopmalCd(user.getSopmalCd());
}else if ("04".equals(user.getSysDvCd())){//인트라넷이면 대표브랜드로 검색
vo.setSopmalCd(user.getReprsntBrand());
}
String secretKey = commonService.selectSecretkey();
vo.setSecretKey(secretKey);
// 회원 활동 정보 조회 ( 마일리지, 쿠폰, 누적 결재 금액, 누적 주문 건수, 최근 로그인 ip, 최근 수정일시 )
DataMap result = new DataMap();
result = service.selectBOMbrActInfoInqire(vo);
// sns 연동 조회
List<DataMap> sns = new ArrayList<>();
sns = service.selectBOMbrExtrlMbrInfoInqire(vo);
// 고객 주문관련, 게시글관련 데이터 조회
Map<String, Object> orderData = new HashMap<>();
orderData = service.selectBOMbrDataOrderInqireCrmPopup(vo);
// Shop 정보 조회
BOSetupOrdrVO boOrdrVO = new BOSetupOrdrVO();
boOrdrVO.setSopmalCd(vo.getSopmalCd());
// Map객체에 필요 정보 할당
Map<String, Object> content = new HashMap<>();
content.put("shopInfo", boOrdrMngrService.selectBOOrdrSetupList(boOrdrVO));
content.put("result", result);
content.put("sns", sns);
content.put("acttData", orderData);
content.put("paramVO", vo);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(content))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrCrmInfoPopupInqire", mbrVO),
// ReplyFromResrc::getReply
// );
}
}

View File

@@ -1,27 +1,46 @@
package com.wb.domainserver.domain.crm.mlg.controller;
import com.wb.domainserver.common.mvc.tags.ui.pagination.PaginationInfo;
import com.wb.domainserver.common.prop.PaginationProperties;
import com.wb.domainserver.domain.admin.store.sopmal.service.BOMaSopmalService;
import com.wb.domainserver.domain.admin.sys.comncd.service.BOMaComncdService;
import com.wb.domainserver.domain.admin.sys.comncd.vo.BOMaComncdVO;
import com.wb.domainserver.domain.crm.cnslt.vo.CrmCnsltVO;
import com.wb.domainserver.domain.crm.mlg.vo.CrmMlgVO;
import com.wb.domainserver.domain.crm.mlg.vo.PosReqVO;
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.mlg.service.BOMlgService;
import com.wb.domainserver.domain.gcone.mbr.mlg.vo.BOCashVO;
import com.wb.domainserver.domain.gcone.mbr.mlg.vo.BOMlgSrchVO;
import com.wb.domainserver.domain.gcone.mbr.mlg.vo.BOMlgVO;
import com.wb.domainserver.domain.gcone.ntcn.mssage.service.BOMssageService;
import com.wb.domainserver.domain.gcone.ntcn.mssage.vo.BOMssageVO;
import com.wb.domainserver.domain.mngr.mbr.vo.MlgSrchVO;
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.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;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
@@ -54,6 +73,26 @@ public class CrmMlgController {
@Autowired
private SendToResrc sendToResrc;
@Autowired
private BOMlgService service;
@Autowired
private BOMaSopmalService sopmalService;
@Autowired
private BOMaComncdService bOMaComncdService; // 공통 코드 service
@Autowired
private PaginationProperties paginationProperties;
@Autowired
private BOMssageService boMssageService;
@Autowired
private BOMbrService boMbrService;
@Autowired
private BOCommonService boCommonService;
/**
* 마일리지 내역 폼 이동
@@ -61,15 +100,70 @@ public class CrmMlgController {
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectMlgDtlsForm")
public String selectMlgDtlsForm(CrmCnsltVO cnsltVO , CrmMlgVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
vo.setSopmalCd(authSopmalCd);
public String selectMlgDtlsForm(CrmCnsltVO cnsltVO, BOMlgSrchVO boMlgSrchVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
boMlgSrchVO.setSopmalCd(authSopmalCd);
//사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if ("sopmal".equals(boMlgSrchVO.getServerDv())) {
boMlgSrchVO.setMbrDvCd(user.getMbrDvCd());
boMlgSrchVO.setMbrInnb(user.getUserInnb());
}
if("01".equals(user.getSysDvCd())){
boMlgSrchVO.setSopmalCd(user.getSopmalCd());
}
BOMaComncdVO bOMaComncdVO = new BOMaComncdVO();
//마일리지 적립 구분 코드
bOMaComncdVO.setGroupCd("MLG_ACCML_DV");
List<?> mlgAccmlDv = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
//마일리지 적용 사유 구분 코드
bOMaComncdVO.setGroupCd("MLG_APPLC_DV");
List<?> mlgApplcDv = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
//마일리지 지급/차감 구분
bOMaComncdVO.setGroupCd("MLG_DV");
List<?> mlgDv = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
List<?> sopmalList = sopmalService.selectBOSopmalCdNm();
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/selectBOMlgManagePopupForm", vo),
model,
"resultMap"
);
// Map객체에 필요 정보 할당
DataMap content = new DataMap();
content.put("paramVO", boMlgSrchVO);
content.put("mlgAccmlDv", mlgAccmlDv);
content.put("mlgApplcDv", mlgApplcDv);
content.put("mlgDv", mlgDv);
content.put("sopmalList", sopmalList);
//관리자명
content.put("mngrId", user.getMbrId());
DataMap mngrInfoParamMap = new DataMap();
mngrInfoParamMap.put("mngrId", user.getMbrId());
mngrInfoParamMap.put("mngrInnb", user.getUserInnb());
content.put("mngrNm", service.selectBOMlgMngrInfoInqire(mngrInfoParamMap));
//회원명
content.put("mbrInfoMap", service.selectBOMlgMbrInfoInqire(boMlgSrchVO));
//마일리지 기본 유효기간 조회
content.put("mlgValidPd", service.selectBOMlgValidPd(boMlgSrchVO));
//잔액 합계
BigDecimal blceSum = service.selectBOMlgBlceSum(boMlgSrchVO);
content.put("blceSum", blceSum);
//30일이내 소멸예정 합계
BigDecimal endInMnthBlceSum = service.selectBOEndInMnthMlgBlceSum(boMlgSrchVO);
content.put("endInMnthBlceSum", endInMnthBlceSum);
// 적립 예정 마일리지
String accmlPrearngeSum = service.selectBOAccmlPrearngeSum(boMlgSrchVO);
content.put("accmlPrearngeSum", accmlPrearngeSum);
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/selectBOMlgManagePopupForm", vo),
// model,
// "resultMap"
// );
model.addAttribute("cnsltVO",cnsltVO);
return "crm/mlg/MlgDtlsRForm";
}
@@ -81,37 +175,152 @@ public class CrmMlgController {
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectMlgDtlsInqire")
public String selectMlgDtlsInqire(CrmMlgVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
vo.setSopmalCd(authSopmalCd);
public String selectMlgDtlsInqire(BOMlgSrchVO boMlgSrchVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
boMlgSrchVO.setSopmalCd(authSopmalCd);
//사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if ("sopmal".equals(boMlgSrchVO.getServerDv())) {
boMlgSrchVO.setMbrDvCd(user.getMbrDvCd());
boMlgSrchVO.setMbrInnb(user.getUserInnb());
}
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/selectBOMlgListInqire", vo),
model,
"resultMap"
);
if("01".equals(user.getSysDvCd())){
boMlgSrchVO.setSopmalCd(user.getSopmalCd());
}
//페이징 처리를 위한 pagination 객체 생성
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(boMlgSrchVO.getPageIndex());
paginationInfo.setRecordCountPerPage(boMlgSrchVO.getPageUnit());
paginationInfo.setPageSize(paginationProperties.getPageSize());
//페이징 처리를 위한 값 설정
boMlgSrchVO.setPaginationInfo(paginationInfo);
boMlgSrchVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
boMlgSrchVO.setLastIndex(paginationInfo.getLastRecordIndex());
boMlgSrchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
// 목록 조회
List<DataMap> resultList = null;
resultList = service.selectBOMlgListInqire(boMlgSrchVO);
//마일리지 목록 조회 결과 및 페이징정보 넣기
Map<String, Object> content = new HashMap<>();
content.put("paginationInfo", boMlgSrchVO.getPaginationInfo());
content.put("resultList",resultList);
//회원정보
DataMap mbr = new DataMap();
mbr.put("secretKey", boCommonService.selectSecretkey());
mbr.put("mbrInnb", boMlgSrchVO.getMbrInnb());
mbr.put("mbrDvCd", boMlgSrchVO.getMbrDvCd());
DataMap mbrInfo = new DataMap();
mbrInfo = boMbrService.selectSimpleMbrInfo(mbr);
content.put("mbrInfo", mbrInfo);
content.put("mlgSrchVo", boMlgSrchVO);
//잔액 합계
BigDecimal blceSum = service.selectBOMlgBlceSum(boMlgSrchVO);
content.put("blceSum", blceSum);
//30일이내 소멸예정 합계
BigDecimal endInMnthBlceSum = service.selectBOEndInMnthMlgBlceSum(boMlgSrchVO);
content.put("endInMnthBlceSum", endInMnthBlceSum);
// 공통코드 호출
BOMaComncdVO bOMaComncdVO = new BOMaComncdVO();
//마일리지 적용 사유 구분 코드
bOMaComncdVO.setGroupCd("MLG_ACCML_DV");
List<?> mlgAccmlDv = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
content.put("mlgAccmlDv", mlgAccmlDv);
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/selectBOMlgListInqire", vo),
// model,
// "resultMap"
// );
return "crm/mlg/MlgDtlsR";
}
/**
* 마일리지 팝업 목록 검색 폼
* @param mlgSrchVO
* @param boMlgSrchVO
* @return String
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectMlgManagePopupForm")
public String selectMlgManagePopupForm(ModelMap model,MlgSrchVO mlgSrchVO, @CookieValue(value = "authSopmalCd") String authSopmalCd){
mlgSrchVO.setSopmalCd(authSopmalCd);
public String selectMlgManagePopupForm(ModelMap model,BOMlgSrchVO boMlgSrchVO, @CookieValue(value = "authSopmalCd") String authSopmalCd){
boMlgSrchVO.setSopmalCd(authSopmalCd);
//사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/selectBOMlgManagePopupForm", mlgSrchVO),
model,
"resultMap"
);
if ("sopmal".equals(boMlgSrchVO.getServerDv())) {
boMlgSrchVO.setMbrDvCd(user.getMbrDvCd());
boMlgSrchVO.setMbrInnb(user.getUserInnb());
}
if("01".equals(user.getSysDvCd())){
boMlgSrchVO.setSopmalCd(user.getSopmalCd());
}
BOMaComncdVO bOMaComncdVO = new BOMaComncdVO();
//마일리지 적립 구분 코드
bOMaComncdVO.setGroupCd("MLG_ACCML_DV");
List<?> mlgAccmlDv = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
//마일리지 적용 사유 구분 코드
bOMaComncdVO.setGroupCd("MLG_APPLC_DV");
List<?> mlgApplcDv = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
//마일리지 지급/차감 구분
bOMaComncdVO.setGroupCd("MLG_DV");
List<?> mlgDv = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
List<?> sopmalList = sopmalService.selectBOSopmalCdNm();
// Map객체에 필요 정보 할당
DataMap content = new DataMap();
content.put("paramVO", boMlgSrchVO);
content.put("mlgAccmlDv", mlgAccmlDv);
content.put("mlgApplcDv", mlgApplcDv);
content.put("mlgDv", mlgDv);
content.put("sopmalList", sopmalList);
//관리자명
content.put("mngrId", user.getMbrId());
DataMap mngrInfoParamMap = new DataMap();
mngrInfoParamMap.put("mngrId", user.getMbrId());
mngrInfoParamMap.put("mngrInnb", user.getUserInnb());
content.put("mngrNm", service.selectBOMlgMngrInfoInqire(mngrInfoParamMap));
//회원명
content.put("mbrInfoMap", service.selectBOMlgMbrInfoInqire(boMlgSrchVO));
//마일리지 기본 유효기간 조회
content.put("mlgValidPd", service.selectBOMlgValidPd(boMlgSrchVO));
//잔액 합계
BigDecimal blceSum = service.selectBOMlgBlceSum(boMlgSrchVO);
content.put("blceSum", blceSum);
//30일이내 소멸예정 합계
BigDecimal endInMnthBlceSum = service.selectBOEndInMnthMlgBlceSum(boMlgSrchVO);
content.put("endInMnthBlceSum", endInMnthBlceSum);
// 적립 예정 마일리지
String accmlPrearngeSum = service.selectBOAccmlPrearngeSum(boMlgSrchVO);
content.put("accmlPrearngeSum", accmlPrearngeSum);
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/selectBOMlgManagePopupForm", mlgSrchVO),
// model,
// "resultMap"
// );
//BO 회원 목록조회 API 결과를 Map으로 변환하여 설정
model.addAttribute("mbrSrchVO",mlgSrchVO);
model.addAttribute("mbrSrchVO",boMlgSrchVO);
return "mngr/mbr/MlgManagePopupCForm";
}
@@ -122,14 +331,72 @@ public class CrmMlgController {
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectMlgDtlsPopupInqire")
public String selectMlgDtlsPopupInqire(CrmMlgVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
vo.setSopmalCd(authSopmalCd);
public String selectMlgDtlsPopupInqire(BOMlgSrchVO boMlgSrchVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
boMlgSrchVO.setSopmalCd(authSopmalCd);
//사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/selectBOMlgListInqire", vo),
model,
"resultMap"
);
if ("sopmal".equals(boMlgSrchVO.getServerDv())) {
boMlgSrchVO.setMbrDvCd(user.getMbrDvCd());
boMlgSrchVO.setMbrInnb(user.getUserInnb());
}
if("01".equals(user.getSysDvCd())){
boMlgSrchVO.setSopmalCd(user.getSopmalCd());
}
//페이징 처리를 위한 pagination 객체 생성
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(boMlgSrchVO.getPageIndex());
paginationInfo.setRecordCountPerPage(boMlgSrchVO.getPageUnit());
paginationInfo.setPageSize(paginationProperties.getPageSize());
//페이징 처리를 위한 값 설정
boMlgSrchVO.setPaginationInfo(paginationInfo);
boMlgSrchVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
boMlgSrchVO.setLastIndex(paginationInfo.getLastRecordIndex());
boMlgSrchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
// 목록 조회
List<DataMap> resultList = null;
resultList = service.selectBOMlgListInqire(boMlgSrchVO);
//마일리지 목록 조회 결과 및 페이징정보 넣기
Map<String, Object> content = new HashMap<>();
content.put("paginationInfo", boMlgSrchVO.getPaginationInfo());
content.put("resultList",resultList);
//회원정보
DataMap mbr = new DataMap();
mbr.put("secretKey", boCommonService.selectSecretkey());
mbr.put("mbrInnb", boMlgSrchVO.getMbrInnb());
mbr.put("mbrDvCd", boMlgSrchVO.getMbrDvCd());
DataMap mbrInfo = new DataMap();
mbrInfo = boMbrService.selectSimpleMbrInfo(mbr);
content.put("mbrInfo", mbrInfo);
content.put("mlgSrchVo", boMlgSrchVO);
//잔액 합계
BigDecimal blceSum = service.selectBOMlgBlceSum(boMlgSrchVO);
content.put("blceSum", blceSum);
//30일이내 소멸예정 합계
BigDecimal endInMnthBlceSum = service.selectBOEndInMnthMlgBlceSum(boMlgSrchVO);
content.put("endInMnthBlceSum", endInMnthBlceSum);
// 공통코드 호출
BOMaComncdVO bOMaComncdVO = new BOMaComncdVO();
//마일리지 적용 사유 구분 코드
bOMaComncdVO.setGroupCd("MLG_ACCML_DV");
List<?> mlgAccmlDv = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
content.put("mlgAccmlDv", mlgAccmlDv);
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/selectBOMlgListInqire", vo),
// model,
// "resultMap"
// );
return "mngr/mbr/MlgManagePopupR";
}
@@ -140,15 +407,83 @@ public class CrmMlgController {
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/insertCrmMlgMngrUpDn")
public ResponseEntity<WnbtResponse> insertCrmMlgMngrUp(CrmMlgVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
vo.setSopmalCd(authSopmalCd);
log.debug("CrmMlgVO {}", vo);
@RequestMapping(value = "/insertCrmMlgMngrUpDn", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> insertCrmMlgMngrUp(BOMlgVO mlgVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
mlgVO.setSopmalCd(authSopmalCd);
log.debug("CrmMlgVO {}", mlgVO);
//사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
mlgVO.setRegusr(user.getUserInnb());
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/insertBOMlgMngrUpDn", vo),
ReplyFromResrc::getReply
if("01".equals(user.getSysDvCd())){
mlgVO.setSopmalCd(user.getSopmalCd());
}
//마일리지 적용 로직
DataMap message = new DataMap();
//등록자 구분 - 02 관리자
mlgVO.setRegusrDvCd("02");
//01 : 지급, 02 : 차감
if("01".equals(mlgVO.getMlgDvCd())) {
message = service.insertBOMngrMlgUp(mlgVO);
} else {
message = service.insertBOMngrMlgDn(mlgVO);
}
//문자 발송
if(!"".equals(StringUtil.isNullToString(mlgVO.getMlgSmsCn()))) {
DataMap dataMap = new DataMap();
//dataMap.put("")
BOMssageVO boMssageVO = new BOMssageVO();
boMssageVO.setSopmalCd(mlgVO.getSopmalCd());
boMssageVO.setRegusr(user.getUserInnb());
boMssageVO.setCn(mlgVO.getMlgSmsCn());
DataMap sndngNbMap = boMssageService.selectBOShopNb(boMssageVO);
String sndngNb = StringUtil.isNullToString(sndngNbMap.get("smsAtmcSndngDsptchNb"));
boMssageVO.setSndngNb(sndngNb);
boMssageVO.setRegusrDv("02");
boMssageVO.setSmsNm("surem");
boMssageVO.setRecptnNb(mlgVO.getMbtlnb());
boMssageVO.setSndngIdnb(BigInteger.ZERO);
boMssageVO.setSttus("REG");
boMssageVO.setStrInnb(BigInteger.ZERO);
boMssageVO.setStrNm("");
boMssageVO.setStrDv("");
boMssageVO.setCstmrNm(StringUtil.isNullToString(mlgVO.getMbrNm()));
String mbrInnb = mlgVO.getMbrInnb();
boMssageVO.setCstmrIdnb(!"".equals(mbrInnb) ? new BigInteger(mbrInnb) : BigInteger.ZERO);
DataMap mssageRslt = boMssageService.insertBOMssageSndng(boMssageVO);
DataMap paramMap = new DataMap();
paramMap.put("srchSmsInnb", boMssageVO.getSmsInnb());
List<String> srchSttusList = new ArrayList<String>();
srchSttusList.add("REG");
paramMap.put("srchSttus", srchSttusList);
DataMap messageSureInsert = new DataMap();
messageSureInsert = boMssageService.insertBOMssageSureReigst(paramMap);
message.put("messageSureInsert", messageSureInsert);
DataMap cntResult = new DataMap();
DataMap syncResult = new DataMap();
//대상 수 재설정
cntResult = boMssageService.updateBOMssageSureCnt(paramMap);
//싱크
syncResult = boMssageService.updateBOMssageSync(paramMap);
message.put("syncResult", syncResult);
}
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(message))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/insertBOMlgMngrUpDn", vo),
// ReplyFromResrc::getReply
// );
}
@@ -157,15 +492,31 @@ public class CrmMlgController {
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/updateCrmMlgUsePosblEndDt")
public ResponseEntity<WnbtResponse> updateCrmMlgUsePosblEndDt(CrmMlgVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
vo.setSopmalCd(authSopmalCd);
log.debug("CrmMlgVO {}", vo);
@RequestMapping(value = "/updateCrmMlgUsePosblEndDt", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> updateCrmMlgUsePosblEndDt(BOMlgVO mlgVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
mlgVO.setSopmalCd(authSopmalCd);
log.debug("CrmMlgVO {}", mlgVO);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/updateBOMlgUsePosblEndDt", vo),
ReplyFromResrc::getReply
// 사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
mlgVO.setUpdusr(user.getUserInnb());
if("01".equals(user.getSysDvCd())){
mlgVO.setSopmalCd(user.getSopmalCd());
}
// service 호출
DataMap message = new DataMap();
message = service.updateBOMlgUsePosblEndDt(mlgVO);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(message))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/updateBOMlgUsePosblEndDt", vo),
// ReplyFromResrc::getReply
// );
}
@@ -174,7 +525,7 @@ public class CrmMlgController {
******/
/**
* 포스 마일리지 테스트 페이지
* @param WithdrawalVO
* @param mlgSrchVO
* @return String
*/
@Policy(AuthPolicy.RESTRICTED)
@@ -186,38 +537,38 @@ public class CrmMlgController {
/**
* 포스 마일리지 적립
* @param boMlgVO
* @param vo
* @return ResponseEntity<?>
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/insertPosMlgAdd")
public ResponseEntity<?> insertPosMlgAdd(@RequestBody PosReqVO vo) {
log.debug("마일리지 적용 파라미터 확인{}",vo);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/insertBOPosMlgAdd", vo),
ReplyFromResrc::getReply
);
}
// @Policy(AuthPolicy.PUBLIC)
// @RequestMapping(value = "/insertPosMlgAdd")
// public ResponseEntity<?> insertPosMlgAdd(@RequestBody PosReqVO vo) {
//
// log.debug("마일리지 적용 파라미터 확인{}",vo);
//
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/insertBOPosMlgAdd", vo),
// ReplyFromResrc::getReply
// );
// }
/**
* 포스 마일리지 환불 여부 확인
* @param boMlgVO
* @param map
* @return ResponseEntity<?>
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/selectChkPosRefundable")
public ResponseEntity<?> selectChkPosRefundable(@RequestBody HashMap<String, Object> map, HttpSession session) {
log.debug("마일리지 적용 파라미터 확인{}",map);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/selectBOPosChkRefundable", map),
ReplyFromResrc::getReply
);
}
// @Policy(AuthPolicy.PUBLIC)
// @RequestMapping(value = "/selectChkPosRefundable")
// public ResponseEntity<?> selectChkPosRefundable(@RequestBody HashMap<String, Object> map, HttpSession session) {
//
// log.debug("마일리지 적용 파라미터 확인{}",map);
//
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/selectBOPosChkRefundable", map),
// ReplyFromResrc::getReply
// );
// }
/********
* 충전형 마일리지
@@ -229,15 +580,72 @@ public class CrmMlgController {
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectCashDtlsForm")
public String selectCashDtlsForm(CrmCnsltVO cnsltVO, CrmMlgVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
vo.setSopmalCd(authSopmalCd);
public String selectCashDtlsForm(CrmCnsltVO cnsltVO, BOMlgSrchVO boMlgSrchVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
boMlgSrchVO.setSopmalCd(authSopmalCd);
//사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if ("sopmal".equals(boMlgSrchVO.getServerDv())) {
boMlgSrchVO.setMbrDvCd(user.getMbrDvCd());
boMlgSrchVO.setMbrInnb(user.getUserInnb());
}
if("01".equals(user.getSysDvCd())){
boMlgSrchVO.setSopmalCd(user.getSopmalCd());
}
BOMaComncdVO bOMaComncdVO = new BOMaComncdVO();
//마일리지 적립 구분 코드
bOMaComncdVO.setGroupCd("MLG_ACCML_DV");
List<?> mlgAccmlDv = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
//마일리지 적용 사유 구분 코드
bOMaComncdVO.setGroupCd("MLG_APPLC_DV");
List<?> mlgApplcDv = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
//마일리지 지급/차감 구분
bOMaComncdVO.setGroupCd("MLG_DV");
List<?> mlgDv = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
List<?> sopmalList = sopmalService.selectBOSopmalCdNm();
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/selectBOMlgManagePopupForm", vo),
model,
"resultMap"
);
// Map객체에 필요 정보 할당
DataMap content = new DataMap();
content.put("paramVO", boMlgSrchVO);
content.put("mlgAccmlDv", mlgAccmlDv);
content.put("mlgApplcDv", mlgApplcDv);
content.put("mlgDv", mlgDv);
content.put("sopmalList", sopmalList);
//관리자명
content.put("mngrId", user.getMbrId());
DataMap mngrInfoParamMap = new DataMap();
mngrInfoParamMap.put("mngrId", user.getMbrId());
mngrInfoParamMap.put("mngrInnb", user.getUserInnb());
content.put("mngrNm", service.selectBOMlgMngrInfoInqire(mngrInfoParamMap));
//회원명
content.put("mbrInfoMap", service.selectBOMlgMbrInfoInqire(boMlgSrchVO));
//마일리지 기본 유효기간 조회
content.put("mlgValidPd", service.selectBOMlgValidPd(boMlgSrchVO));
//잔액 합계
BigDecimal blceSum = service.selectBOMlgBlceSum(boMlgSrchVO);
content.put("blceSum", blceSum);
//30일이내 소멸예정 합계
BigDecimal endInMnthBlceSum = service.selectBOEndInMnthMlgBlceSum(boMlgSrchVO);
content.put("endInMnthBlceSum", endInMnthBlceSum);
// 적립 예정 마일리지
String accmlPrearngeSum = service.selectBOAccmlPrearngeSum(boMlgSrchVO);
content.put("accmlPrearngeSum", accmlPrearngeSum);
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/selectBOMlgManagePopupForm", vo),
// model,
// "resultMap"
// );
model.addAttribute("cnsltVO", cnsltVO);
return "crm/mlg/CashDtlsRForm";
}
@@ -250,15 +658,54 @@ public class CrmMlgController {
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectCashDtlsInqire")
public String selectCashDtlsInqire(CrmMlgVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
vo.setSopmalCd(authSopmalCd);
public String selectCashDtlsInqire(BOCashVO cashVo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
cashVo.setSopmalCd(authSopmalCd);
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if ("01".equals(user.getSysDvCd())) {
cashVo.setSopmalCd(user.getSopmalCd());
cashVo.setMbrDvCd(user.getMbrDvCd());
cashVo.setMbrInnb(String.valueOf(user.getUserInnb()));
}
//페이징 처리를 위한 pagination 객체 생성
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(cashVo.getPageIndex());
paginationInfo.setRecordCountPerPage(cashVo.getPageUnit());
paginationInfo.setPageSize(paginationProperties.getPageSize());
cashVo.setPaginationInfo(paginationInfo);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/selectBOCashList", vo),
model,
"resultMap"
);
//페이징 처리를 위한 값 설정
cashVo.setFirstIndex(paginationInfo.getFirstRecordIndex());
cashVo.setLastIndex(paginationInfo.getLastRecordIndex());
cashVo.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
// service 호출
//회원정보
DataMap mbr = new DataMap();
mbr.put("secretKey", boCommonService.selectSecretkey());
mbr.put("mbrInnb", cashVo.getMbrInnb());
mbr.put("mbrDvCd", cashVo.getMbrDvCd());
DataMap mbrInfo = new DataMap();
mbrInfo = boMbrService.selectSimpleMbrInfo(mbr);
// 충전형 마일리지 목록 조회
List<DataMap> cashList = service.selectBOCashList(cashVo);
//충전형 마일리지 잔액 조회
BigDecimal blce = service.selectBOCashBlce(cashVo);
DataMap content = new DataMap();
content.put("cashList", cashList);
content.put("paginationInfo", paginationInfo);
content.put("mbrInfo", mbrInfo);
content.put("blce", blce);
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/selectBOCashList", vo),
// model,
// "resultMap"
// );
return "crm/mlg/CashDtlsR";
}