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";
}

View File

@@ -56,5 +56,11 @@ public class BOAppMbrDvcVO {
private String deviceOsVer;
/** 앱 버전 */
private String deviceAppVer;
/** 딥링크 타입 */
private String linkType;
/** 혜택 구분 코드 */
private String bnfDvCd;
/** 스토어 고유번호 */
private String strInnb;
}

View File

@@ -40,9 +40,9 @@ public class BOCmVO extends AbstractVO {
* 작성자ID
*/
private String regusrId;
/**
* 작성자명
*/
/** 작성자명 */
@NotBlank(message = "작성자명")
@Length(min = 0, max = 25, message = "작성자명")
private String regusrNm;
/**
* DEPTH

View File

@@ -2,6 +2,7 @@ package com.wb.domainserver.domain.gcone.bbs.cnslt.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -57,6 +58,8 @@ public class BOCnsltVO extends AbstractVO{
private String cnsltCl;
/** 관련주문번호 */
private String ordrNb;
/** 관련주문번호 */
private String ordrInnb;
/** 출고코드 */
private String dlivyInnb;
/** 반품코드 */
@@ -72,19 +75,26 @@ public class BOCnsltVO extends AbstractVO{
/** 처리일시 */
private String procsDt;
/** 상담내용 */
@NotBlank(message="상담내용")
private String cnsltCn;
/** 전화구분코드 */
@NotBlank(message="인콜/아웃콜")
private String telnbDvCd;
/** 대분류 */
@NotBlank(message="대분류")
private String lrgeCl;
/** 중분류 */
@NotBlank(message="중분류")
private String middlCl;
/** 소분류 */
private String smllCl;
/** 녹취 key */
private String recrdKy;
/** 전화번호 */
@NotBlank(message="전화번호")
private String telnb;
/** 회원명 이메일*/
private String email;
/**
@@ -126,4 +136,8 @@ public class BOCnsltVO extends AbstractVO{
/*crm인지, 통합게시판인지 판단 => bo join에 씀*/
private String crmAt;
private String ctiAt;
}

View File

@@ -1,6 +1,9 @@
package com.wb.domainserver.domain.gcone.bbs.gnrlbbsctt.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import com.wb.domainserver.domain.sopmal.mpage.act.vo.BbsFormAnswVO;
import com.wb.domainserver.domain.sopmal.mpage.act.vo.BbsFormVO;
import com.wb.domainserver.domain.sopmal.mpage.act.vo.DelInfoVO;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -34,6 +37,14 @@ public class BOGnrlbbscttVO extends AbstractVO {
private BigInteger parntsBbscttInnb;
/** 게시판ID */
private String bbsId;
/** 게시판 고유번호 */
private Integer bbsInnb;
/** 판매상품 고유번호 */
private Integer sleGoodsInnb;
/** 주문상품고유번호 */
private Integer ordrGoodsInnb;
/** 주문상품옵션구분코드 */
private String ordrGoodsOptnDvCd;
/** 회원고유번호 */
private Integer mbrInnb;
@@ -49,6 +60,10 @@ public class BOGnrlbbscttVO extends AbstractVO {
private String regusrNm;
/*관리자 명*/
private String mngrNm;
/** (등록아이디) */
private String mbrid;
/** (등록자명) */
private String mbrNm;
/** 비밀번호 */
@Length(min = 0, max = 20, message = "비밀번호")
private String password;
@@ -62,8 +77,14 @@ public class BOGnrlbbscttVO extends AbstractVO {
private String cn;
/** 조회건수 */
private Integer inqireCnt;
/** 댓글건수 */
private Integer cmCnt;
/** 댓글사용여부 */
private String cmUseAt;
/** 평균점수 */
private Integer avrgScore;
/** 에디터 사용여부 */
private String editrUseAt;
/*추천,비추천 구분*/
private String recomendDv;
/** 추천건수 */
@@ -130,6 +151,8 @@ public class BOGnrlbbscttVO extends AbstractVO {
private String useAt;
/** 삭제작업자 */
private Integer delusr;
/** 삭제여부 */
private String delAt;
/** 삭제일시 */
private Date delDt;
@@ -288,6 +311,8 @@ public class BOGnrlbbscttVO extends AbstractVO {
private BigInteger ordrInnb;
/*상품고유번호배열*/
private List<String> goodsInnbArr;
/*주문고유번호*/
private String[] ordrInnbArr;
/*주문상품옵션고유번호*/
private String ordrGoodsOptnInnb;
/*주문상품옵션고유번호 배열*/
@@ -350,6 +375,9 @@ public class BOGnrlbbscttVO extends AbstractVO {
/*sms 관련*/
private String bbscttSndngDvCd;
/** 노출등록자이름 */
private Integer expsrRegusrNm;
/**
* 리뷰
*/
@@ -419,4 +447,73 @@ public class BOGnrlbbscttVO extends AbstractVO {
private String cnScript;
/*서브페이지 고객센터 표시 여부*/
private String cscAt;
// 추가 답변 내용 (FM_BOARD_ADDITM)
private List<BbsFormAnswVO> bbsFormAnswList;
//게시글 정보 (FM_BOARDMANAGER)
/** 비밀글 사용여부 */
private Boolean secretBbcttUseAt;
// 상품정보 (fm_shop_goods)
/** 상품 이름 */
private String goodsNm;
/** 상품 설명 */
private String goodsDc;
/** 상품 간략설명 */
private String srtDc;
/** 상품 가격 */
private Integer slePric;
// 상품이미지 정보(fm_goods_image)
/** 상품 이미지 위치 */
private String img;
// 리뷰 댓글정보(fm_boardcomment)
/** 댓글 고유번호*/
private Integer cmInnb;
/** 댓글 등록자 구분 */
private String commetRegusrDv;
/** 댓글 작성자 */
private String commetMbrNm;
/** 댓글 작성자 아이디*/
private String commetmbrId;
/** 댓글 ip*/
private String commetIp;
/** 댓글 내용 */
private String commetCn;
/** 댓글 등록일 */
private String commetRegustDt;
// 검색조건
/** 검색어*/
private String searchWord;
/** 비밀글 제외 여부*/
private String serchSecrtBbscttUseAt;
/** 삭제글 제외 여부 */
private String serchDelAt;
/** 사진포함 여부*/
private String serchPhotoRvwAt;
/** 검색 시작일*/
private String saerchStatrDate;
/** 검색 종료일*/
private String saerchEndDate;
/** 세부항목 검색(내용 고유번호)*/
private String[] searchFormItm;
/** 베스트 후기 포함 여부*/
private String searchBstAt;
/** 네이버페이 포함 여부*/
private String searchNpayAt;
/** 주문번호 검색*/
private String searchOrderInnb;
/** 댓글 여부*/
private String searchCommetAt;
}

View File

@@ -73,4 +73,9 @@ public class BOPromVO {
private int lastIndex; // 마지막 인덱스
private int recordCountPerPage; // 페이지당 레코드 수
private PaginationInfo paginationInfo; // 페이징 정보
// 추가 유틸리티 필드
private String joinYn; // 참여여부 (Y/N) - 조회용
private String winYn; // 당첨여부 (Y/N) - 조회용
}

View File

@@ -1,6 +1,8 @@
package com.wb.domainserver.domain.gcone.goods.goods.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import com.wb.domainserver.domain.sopmal.goods.vo.GoodsAdditionVO;
import com.wb.domainserver.domain.sopmal.goods.vo.GoodsIconVO;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -534,4 +536,89 @@ public class BOGoodsVO extends AbstractVO {
/*상품 순서*/
private int goodsOrdr;
/*************************************
* 상품 GOODS START
* **********************************/
/** 가격대체문구사용여부 */
private String pricRplcWordsUseAt;
/** 가격대체문구 */
private String pricRplcWords;
/** 버튼대체문구사용여부 */
private String buttonRplcWordsUseAt;
/** 버튼대체문구 */
private String buttonRplcWords;
/** 버튼대체문구링크URL */
private String buttonRplcWordsUrl;
/** 버튼대체문구링크구분 */
private String buttonRplcWordsDvCd;
/** 결제수단설정 */
private String setleMnSetupCd;
/** 예약상품재고수 */
private long resveGoodsInvntryCnt;
/*************************************
* 상품 GOODS END
* **********************************/
/*************************************
* 옵션 GOODS_OPTION START
* **********************************/
/** 옵션 코드 */
private String optnCd;
/** 옵션별가격 1 */
private double acctoOptnPric1;
/** 옵션별가격 2 */
private double acctoOptnPric2;
/** 옵션별가격 3 */
private double acctoOptnPric3;
/** 옵션별가격 4 */
private double acctoOptnPric4;
/** 마일리지적립구분코드 */
private double mlgAccmlRt;
/** 구매자별 추가혜택여부 */
private String purchsrAcctoAditBnefAt;
/*************************************
* 옵션 GOODS_OPTION END
* **********************************/
/*************************************
* 배너 SHOP_GOODS_BANNER START
* **********************************/
/** 배너고유번호*/
private long bannerInnb;
/*************************************
* 배너 SHOP_GOODS_BANNER END
* **********************************/
private List<GoodsIconVO> goodsIconVOList;
/*************************************
* 카테고리연결 CATEGORY_LINK START
* **********************************/
/** 카테고리연결상품고유번호 */
private long ctgryGoodsEsntlNb;
/*************************************
* 카테고리연결 CATEGORY_LINK END
* **********************************/
/** 입력옵션 텍스트 */
private String inputOptnText;
/*************************************
* 상품수정로그 FM_GOODS_ADMIN_LOG END
* **********************************/
/** 회원ID */
private String mbrId;
/** 세션아이디 */
private String sesionId;
/** 옵션관계번호 배열 */
private String[] optnRelateNbs;
}

View File

@@ -1,6 +1,7 @@
package com.wb.domainserver.domain.gcone.mbr.mbr.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import com.wb.domainserver.domain.crm.mbr.vo.CrmMbrVO;
import com.wb.domainserver.util.dataaccess.DataMap;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -311,4 +312,24 @@ public class BOMbrVO extends AbstractVO{
private List<String> appnInnbArr;
/*지정 메모*/
private String appnMemo;
private String phone;
private String ctiAt;
private String record_key = "";
/**유입경로번호*/
private String inflowCoursNb;
/*id 변경 여부*/
private String mbrIdChngAt;
/** 약정코드 */
private String stplatInnb;
/** 관리자 확인 비밀번호 */
private String password;
/*포스매장고유번호*/
private String posStrInnb;
}

View File

@@ -3,11 +3,13 @@ package com.wb.domainserver.domain.gcone.mbr.mlg.vo;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Date;
import java.util.List;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
/**
*
@@ -66,6 +68,7 @@ public class BOMlgVO extends AbstractVO {
/** 사용가능시작일시 */
private Date usePosblBgnDt;
/** 사용가능종료일시 */
@DateTimeFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSX")
private Date usePosblEndDt;
/** 주문정보 */
private String ordrInfo;
@@ -125,5 +128,18 @@ public class BOMlgVO extends AbstractVO {
private String bnfRcvInnb;
/** 마일리지 유효기간 설정 여부*/
private String validAt;
// 검색
/** 검색_마일리지 적립 구분코드 */
private String srchMlgAccmlDvCd;
/** 검색_브랜드명 */
private String srchSopmalCd;
/** 검색_시작날짜 */
private String srchStartDate;
/** 검색_종료날짜 */
private String srchEndDate;
/** 검색_마일리지 적립 구분 */
private List<String> srchMlgAccmlDv;
}

View File

@@ -4,8 +4,10 @@ import java.util.Date;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
@Data
@EqualsAndHashCode(callSuper = false)
@@ -21,26 +23,35 @@ public class BOCrmDlvylcVO extends AbstractVO{
/**회원구분코드*/
private String mbrDvCd;
/** 배송지설명내용 */
@NotBlank(message = "배송지 설명")
@Length(min=1, max=67)
private String dlvylcDcCn;
/** 받는사람명 */
@NotBlank(message = "받으시는 분")
@Length(min=1, max=13)
private String recpntNm;
/** 전화번호 */
//private String telnb;
/** 휴대폰번호 */
@NotBlank(message = "휴대전화번호")
private String mbtlnb;
private String telnb;
/** 우편번호 */
@NotBlank(message = "우편번호")
@Length(min=1, max=5)
private String zip;
/** 도로명,지번 구분*/
private String adresDv;
/** 도로명 or 지번 주소 */
private String adres;
/** 지번주소 */
private String lnbAdres;
private String lnbAdres = "";
/** 도로명주소 */
private String rnmAdres;
private String rnmAdres = "";
/** 상세주소 */
private String dtlAdres;
/** 기본배송지여부 */
private String dftDlvylcAt;
private String dftDlvylcAt = "N";
/** 최근배송지여부 */
private String recentDlvylcAt;
/** popUp 여부 확인 */
@@ -51,4 +62,11 @@ public class BOCrmDlvylcVO extends AbstractVO{
private String callbackNm;
/*서버 구분*/
private String serverDv;
/**쇼핑몰코드 */
private String sopmalCd;
/*녹취키*/
private String customer_record_key;
/* formId */
private String formId;
}

View File

@@ -1,6 +1,7 @@
package com.wb.domainserver.domain.gcone.ordr.ordr.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@@ -20,9 +21,11 @@ public class BOOrdrSrchVO extends AbstractVO{
private String srchDate;
/**검색 시작일*/
@NotBlank(message = "시작일")
private String srchStartDate;
/**검색 종료일*/
@NotBlank(message = "종료일")
private String srchEndDate;
/** 주문상태코드리스트
@@ -101,4 +104,5 @@ public class BOOrdrSrchVO extends AbstractVO{
private String reprsntBrand; // 입점사 브랜드
private String excelCoulms; // 엑셀다운로드 조회 컬럼
private String ordrInnb; // 주문고유번호
}

View File

@@ -305,6 +305,8 @@ public class BOPayVO extends AbstractVO {
/** 세션 gcpay token */
private String sessionToken;
private String mbtlnb;
/** 토스 배송정보 등록 시 사용하는 택배사 코드 */
public enum DLVCOMPCODE {
DLVCOMPCODE01("code0", "CJ"), //CJ GLS

View File

@@ -249,4 +249,6 @@ public class BODwldCouponVO extends AbstractVO {
/** 웹 쿠폰 이벤트 광고 수신 예외 플래그 **/
private String eventYn;
/** 사용처구분 */
private String useplcDv;
}

View File

@@ -59,12 +59,5 @@ public class BOItrntStrVO extends AbstractVO {
/*대표브랜드*/
private String reprsntBrand;
private String serverDv;
}

View File

@@ -3,7 +3,14 @@ package com.wb.domainserver.domain.sopmal.app.controller;
import java.util.HashMap;
import java.util.Map;
import com.wb.domainserver.domain.gcone.app.service.BOAppService;
import com.wb.domainserver.domain.gcone.app.service.BOFCMNotificationService;
import com.wb.domainserver.domain.gcone.app.vo.BOAppMbrDvcVO;
import com.wb.domainserver.domain.gcone.bnft.bnftmngr.vo.BOBnftMngrPushVO;
import com.wb.domainserver.response.WnbtResponseBody;
import com.wb.domainserver.security.authentication.AnonymousUser;
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;
@@ -55,23 +62,51 @@ public class AppController {
@Autowired
private WnbtWebClientResponseHandler responseHandler;
@Autowired
private BOAppService service;
@Autowired
private BOFCMNotificationService fcmservice;
/**
* 앱 디바이스 정보 입력
* @param vo
* @return ResponseEntity
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/insertAppDeviceInfo", method = RequestMethod.POST)
public ResponseEntity<WnbtResponse> insertAppDeviceInfo(HttpServletRequest request, @RequestBody AppMbrDvcVO vo) {
@RequestMapping(value = "/insertAppDeviceInfo", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> insertAppDeviceInfo(HttpServletRequest request, @RequestBody BOAppMbrDvcVO vo) {
log.debug("insertAppMbrDvcInfo AppMbrDvcVO ::: {}", vo);
HttpSession session = request.getSession();
session.setAttribute("appDvcId", vo.getDeviceId());
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/app/insertBOAppDeviceInfo", vo),
ReplyFromResrc::getReply
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if ("01".equals(user.getSysDvCd())) {
vo.setSopmalCd(user.getSopmalCd());
}
//log.debug("@@@@@@@@@@ BOAppMbrDvcVO ::: {}", vo);
Integer dplct = service.selectBOAppMbrDvcDplct(vo);
Map<String, Object> message = new HashMap<>();
if(dplct < 1) {
message = service.insertBOAppDeviceInfo(vo);
} else {
// 중복된 deviceId가 있을 경우, 디바이스정보를 update한다.
message = service.updateBOAppDeviceInfo(vo);
}
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(message))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/app/insertBOAppDeviceInfo", vo),
// ReplyFromResrc::getReply
// );
}
/**
@@ -80,17 +115,44 @@ public class AppController {
* @return ResponseEntity
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/insertAppMbrDvcInfo", method = RequestMethod.POST)
public ResponseEntity<WnbtResponse> insertAppMbrDvcInfo(HttpServletRequest request, @RequestBody AppMbrDvcVO vo) {
@RequestMapping(value = "/insertAppMbrDvcInfo", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> insertAppMbrDvcInfo(HttpServletRequest request, @RequestBody BOAppMbrDvcVO vo) {
log.debug("insertAppMbrDvcInfo AppMbrDvcVO ::: {}", vo);
HttpSession session = request.getSession();
session.setAttribute("appDvcId", vo.getDeviceId());
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/app/insertBOAppMbrDvcInfo", vo),
ReplyFromResrc::getReply
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if ("01".equals(user.getSysDvCd())) {
vo.setSopmalCd(user.getSopmalCd());
}
if (user.getUserInnb() > 0) {
vo.setMbrInnb(Long.valueOf(user.getUserInnb()));
vo.setMbrDvCd(user.getMbrDvCd());
vo.setMbrId(user.getMbrId());
}
//log.debug("@@@@@@@@@@ BOAppMbrDvcVO ::: {}", vo);
Integer dplct = service.selectBOAppMbrDvcDplct(vo);
Map<String, Object> message = new HashMap<>();
if(dplct < 1) {
message = service.insertBOAppMbrDvcInfo(vo);
} else {
// 중복된 deviceId가 있을 경우, 디바이스 및 회원정보를 update한다.
message = service.updateBOAppMbrDvcInfo(vo);
}
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(message))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/app/insertBOAppMbrDvcInfo", vo),
// ReplyFromResrc::getReply
// );
}
/**
@@ -125,23 +187,49 @@ public class AppController {
/**
* 푸시알림 테스트 발송
*
* @param BnftPushVO
* @param vo
* @param model
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/procTestPushNotification")
public ResponseEntity<WnbtResponse> procTestPushNoti(@RequestBody AppPushVO vo, ModelMap model, HttpSession session){
@RequestMapping(value = "/procTestPushNotification", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> procTestPushNoti(@RequestBody BOBnftMngrPushVO vo, ModelMap model, HttpSession session){
vo.setSopmalCd(MemberJwtContextHolder.getMemberInfo().getSopmalCd());
String pushData = dataToJson(vo.getDataUrl(), vo.getDataKey(), vo.getDataExt());
vo.setPushData(pushData);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/app/procPushNotificationImsi",vo),
ReplyFromResrc::getReply
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if ("01".equals(user.getSysDvCd())) {
vo.setSopmalCd(user.getSopmalCd());
}
//Long[] arrMbrDeviceInnb = vo.getArrMbrDeviceInnb();
String[] arrFcmToken = vo.getArrFcmToken();
log.debug("@@@@@@@@@@ BOBnftMngrPushVO ::: {}", vo);
Map<String, Object> message = new HashMap<>();
for (int i = 0; i < arrFcmToken.length; i++) {
//Long mbrDeviceInnb = arrMbrDeviceInnb[i];
vo.setFcmToken(arrFcmToken[i]);
// FCM 전송 로직
String resultCode = fcmservice.sendPush(vo);
//result.put(mbrDeviceInnb.toString(), resultCode);
message.put("result", resultCode);
}
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(message))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/app/procPushNotificationImsi",vo),
// ReplyFromResrc::getReply
// );
}
public String dataToJson(String str1, String str2, String str3) {

View File

@@ -1,15 +1,29 @@
package com.wb.domainserver.domain.sopmal.csc.controller;
import com.wb.domainserver.domain.gcone.bbs.prom.service.BOPromService;
import com.wb.domainserver.domain.gcone.bbs.prom.vo.BOPromVO;
import com.wb.domainserver.domain.gcone.mbr.mlg.service.BOMlgService;
import com.wb.domainserver.domain.gcone.mbr.mlg.vo.BOMlgVO;
import com.wb.domainserver.domain.gcone.promtn.coupon.service.BOCouponService;
import com.wb.domainserver.domain.gcone.promtn.coupon.vo.BODwldCouponVO;
import com.wb.domainserver.domain.sopmal.csc.vo.PromVO;
import com.wb.domainserver.response.ApiResponse;
import com.wb.domainserver.response.WnbtResponse;
import com.wb.domainserver.response.WnbtResponseBody;
import com.wb.domainserver.response.WnbtWebClientResponseHandler;
import com.wb.domainserver.security.authentication.AnonymousUser;
import com.wb.domainserver.security.authentication.MemberJwtContextHolder;
import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.communicate.RESRC;
import com.wb.domainserver.util.communicate.ReplyFromResrc;
import com.wb.domainserver.util.communicate.SendToResrc;
import com.wb.domainserver.util.dataaccess.DataMap;
import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
@@ -17,6 +31,10 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.*;
@Slf4j
@RestController
@RequestMapping("/sopmal/prom")
@@ -27,13 +45,279 @@ public class PromController {
@Autowired
private SendToResrc sendToResrc;
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/promJoin", method = RequestMethod.POST)
public ResponseEntity<?> promJoin(HttpServletRequest request, @RequestBody PromVO promVO) {
@Autowired
private BOPromService promService;
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/prom/promJoin", promVO),
ReplyFromResrc::getReply
@Autowired
private BOMlgService bomlgService;
@Autowired
private BOCouponService couponService;
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/promJoin", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> promJoin(HttpServletRequest request, @RequestBody BOPromVO promVO) {
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if (user.getUserInnb() > 0) {
// 1. 이벤트 정보 조회 및 유효성 체크
DataMap promInfo = promService.selectPromInfo(promVO);
boolean isActive = promService.isPromActive(promInfo);
Map<String, Object> content = new HashMap<>();
if (!isActive) {
content.put("eventActive", false);
content.put("message", "이벤트 기간이 아닙니다.");
return ApiResponse.of(content).ifPresentOrElse(HttpStatus.OK, HttpStatus.OK);
}
// 2. 참여 이력 조회
// promVO에 mbrInnb 설정
promVO.setMbrInnb((long) user.getUserInnb());
// daily 룰일 때만 오늘 날짜 세팅
if ("daily".equals((String)promInfo.get("promRule"))) {
promVO.setJoinDt(LocalDate.now());
}
if(!user.getSopmalCd().equals((String) promInfo.get("sopmalCd"))){
content.put("alreadySpun", true);
content.put("message", "해당 쇼핑몰 이벤트가 아닙니다.");
return ApiResponse.of(content).ifPresentOrElse(HttpStatus.OK, HttpStatus.OK);
}
DataMap joinInfo = promService.selectPromJoinInfo(promVO);
if (joinInfo != null) {
// 이미 참여한 경우
content.put("alreadySpun", true);
Object sortOrdrObj = joinInfo.get("sortOrdr");
if (sortOrdrObj != null) {
int selected = (sortOrdrObj instanceof Number) ? ((Number) sortOrdrObj).intValue() : Integer.parseInt(sortOrdrObj.toString());
content.put("selected", selected);
}
content.put("message", "이미 참여하셨습니다.");
return ApiResponse.of(content).ifPresentOrElse(HttpStatus.OK, HttpStatus.OK);
}
// 3. 추첨 및 지급 로직 (미참여자)
int totalJoinCount = promService.countPromJoin(promVO);
List<DataMap> rewardList = promService.selectPromRewardList(promVO);
Map<Integer, Integer> rewardWinCount = promService.countRewardWinners(promVO);
log.info("rewardWinCount 전체 데이터: {}", rewardWinCount);
log.info("totalJoinCount: {}", totalJoinCount);
double[] probabilities = new double[rewardList.size()];
for (int i = 0; i < rewardList.size(); i++) {
double baseProb = ((BigDecimal) rewardList.get(i).get("probability")).doubleValue();
Object sortOrdrObj = rewardList.get(i).get("sortOrdr");
int sortOrdr = (sortOrdrObj instanceof Number) ? ((Number) sortOrdrObj).intValue() : Integer.parseInt(sortOrdrObj.toString());
double actualRate = 0.0;
if (totalJoinCount > 0 && rewardWinCount.containsKey(sortOrdr)) {
actualRate = (double) rewardWinCount.get(sortOrdr) / totalJoinCount * 100.0;
}
if (totalJoinCount > 100) {
double diff = baseProb - actualRate;
probabilities[i] = baseProb + diff * 0.8;
if (probabilities[i] < 0) probabilities[i] = 0;
log.info("확률 보정 - baseProb: {}, actualRate: {}, diff: {}, 보정 후: {}", baseProb, actualRate, diff, probabilities[i]);
} else {
probabilities[i] = baseProb;
log.info("확률 보정 - baseProb: {}, actualRate: {}, diff: {}, 보정 후: {}", baseProb, actualRate, 0.0, probabilities[i]);
}
}
double rand = Math.random() * 100;
double acc = 0;
int selectedIdx = 0;
for (int i = 0; i < probabilities.length; i++) {
acc += probabilities[i];
if (rand < acc) {
selectedIdx = i;
break;
}
}
DataMap selectedReward = rewardList.get(selectedIdx);
log.info("추첨 결과 - rand: {}, selectedIdx: {}, selectedReward: {}", rand, selectedIdx, selectedReward);
// 보상 정보 추출
Object sortOrdrObj = selectedReward.get("sortOrdr");
int sortOrdr = (sortOrdrObj instanceof Number) ? ((Number) sortOrdrObj).intValue() : Integer.parseInt(sortOrdrObj.toString());
String rewardTy = (String) selectedReward.get("rewardTy");
BigDecimal accmlmnyAmt = (BigDecimal) selectedReward.get("accmlmnyAmt");
String mlgApplcResn = (String) selectedReward.get("mlgApplcResn");
log.info("원본 mlgApplcResn: {}", mlgApplcResn);
// 마일리지 소멸일자 세팅
String mlgExpireDt = String.valueOf(selectedReward.get("expireDt"));
Date exPireDate = new Date();
if (!"null".equals(mlgExpireDt)) {
int expireDays = Integer.parseInt(mlgExpireDt);
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, expireDays);
calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 59);
calendar.set(Calendar.SECOND, 59);
exPireDate = calendar.getTime();
}
Long couponInnb = selectedReward.get("couponInnb") != null ? Long.valueOf(selectedReward.get("couponInnb").toString()) : null;
Long couponSndngInnb = selectedReward.get("couponSndngInnb") != null ? Long.valueOf(selectedReward.get("couponSndngInnb").toString()) : null;
String rewardDc = (String) selectedReward.get("rewardDc");
boolean rewardSuccess = false;
DataMap result = null;
if ("coupon".equals(rewardTy)) {
// 쿠폰 발급 로직
try {
BODwldCouponVO dwldCouponVO = new BODwldCouponVO();
dwldCouponVO.setSopmalCd(user.getSopmalCd());
dwldCouponVO.setMbrInnb(user.getUserInnb());
dwldCouponVO.setMbrDvCd(user.getMbrDvCd());
dwldCouponVO.setCouponSndngInnb(couponSndngInnb.intValue()); // Long → Integer 변환 필요
dwldCouponVO.setEventYn("Y");
dwldCouponVO.setCouponSndngTy("01");
// 필요시 추가 필드 세팅
log.info("VO: {}", dwldCouponVO);
Map<String, Object> couponResult = couponService.insertBOBnfCouponRegist(dwldCouponVO);
if ("success".equals(couponResult.get("result"))) {
rewardSuccess = true;
log.info("쿠폰 발급 성공: {}", couponResult);
} else {
rewardSuccess = false;
log.error("쿠폰 발급 실패: {}", couponResult.get("message"));
}
} catch (Exception e) {
rewardSuccess = false;
log.error("쿠폰 발급 예외: {}", e.getMessage(), e);
}
} else if ("mileage".equals(rewardTy)) {
// null 체크를 더 엄격하게
if (mlgApplcResn == null || mlgApplcResn.trim().isEmpty()) {
mlgApplcResn = "이벤트 마일리지 지급";
log.info("기본값 사용: {}", mlgApplcResn);
} else {
log.info("DB 값 사용: {}", mlgApplcResn);
}
// 마일리지 VO 설정
BOMlgVO mlgVO = new BOMlgVO();
// 회원 고유번호 설정
mlgVO.setMbrInnb(String.valueOf(user.getUserInnb()));
// 등록자 설정
mlgVO.setRegusr(user.getUserInnb());
// 회원구분코드 설정
mlgVO.setMbrDvCd(user.getMbrDvCd());
// 쇼핑몰코드 설정
mlgVO.setSopmalCd(user.getSopmalCd());
// 등록자구분코드 설정 (01: 회원)
mlgVO.setRegusrDvCd("01");
//마일리지 적립 구분 설정
mlgVO.setMlgAccmlDvCd("add");
// 이벤트 보상 마일리지 적용 구분 설정
mlgVO.setMlgApplcDvCd("07"); // 이벤트 보상 마일리지
// 온라인 오프라인 구분 설정
mlgVO.setOnlineOflneDvCd("01");
// 마일리지 적립 처리 구분 설정
mlgVO.setMlgApplcDvCd("07");
// 이벤트 보상 마일리지 적용 사유 설정
mlgVO.setMlgApplcResn(mlgApplcResn);
// 이벤트 보상 마일리지 금액 설정
mlgVO.setAccmlmnyAmt(accmlmnyAmt);
// 마일리지 유효기간 설정
if (!"null".equals(mlgExpireDt)) {
mlgVO.setUsePosblEndDt(exPireDate);
mlgVO.setMlgValidPd(0);
}
mlgVO.setMlgValidPdAt("Y");
// 마일리지 적립 처리 전 로그
log.info("마일리지 적립 시작 - mlgVO: {}", mlgVO);
// 마일리지 적립 처리
result = bomlgService.insertBOMlgAdd(mlgVO);
// 마일리지 적립 처리 후 로그
log.info("마일리지 적립 결과: {}", result);
rewardSuccess = "success".equals(result.get("result")) || "Y".equals(result.get("success"));
log.debug("mlgVO 확인 {}", mlgVO);
log.info("마일리지 지급 결과: {}", result);
}
if (rewardSuccess) {
// 참여 이력 저장 전에 필수 데이터 설정
promVO.setMbrInnb((long) user.getUserInnb()); // 회원 고유번호
promVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰코드
// 보상 정보 설정
promVO.setPromInnb(promVO.getPromInnb());
promVO.setSortOrdr(sortOrdr);
promVO.setRewardTy(rewardTy);
promVO.setAccmlmnyAmt(accmlmnyAmt);
promVO.setCouponInnb(couponInnb);
promVO.setCouponSndngInnb(couponSndngInnb);
promVO.setRewardDc(rewardDc);
// 참여 이력 저장 전에 로그 추가
log.info("참여 이력 저장 시작 - promVO: {}", promVO);
try {
Map<String, String> insertResult = promService.insertPromJoin(promVO);
log.info("참여 이력 저장 결과 전체: {}", insertResult);
if ("Y".equals(insertResult.get("success"))) { // "result" → "success"로 변경
log.info("참여 이력 저장 성공");
} else {
log.error("참여 이력 저장 실패 - success: {}", insertResult.get("success"));
}
} catch (Exception e) {
log.error("참여 이력 저장 예외 발생: {}", e.getMessage(), e);
content.put("message", "참여 이력 저장에 실패했습니다.");
return ApiResponse.of(content).ifPresentOrElse(HttpStatus.INTERNAL_SERVER_ERROR, HttpStatus.INTERNAL_SERVER_ERROR);
}
Map<String, Object> response = new HashMap<>();
response.put("result", "success");
//response.put("message", "이벤트에 참여되었습니다!");
response.put("selected", sortOrdr);
response.put("selectedReward", selectedReward);
return ResponseEntity.ok(response);
} else {
content.put("message", "보상 지급에 실패했습니다.");
return ApiResponse.of(content).ifPresentOrElse(HttpStatus.INTERNAL_SERVER_ERROR, HttpStatus.INTERNAL_SERVER_ERROR);
}
}
// 여기에 추가 (if 블록 밖으로)
Map<String, Object> content = new HashMap<>();
content.put("message", "로그인이 필요합니다.");
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(content))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/prom/promJoin", promVO),
// ReplyFromResrc::getReply
// );
}
}

View File

@@ -3,9 +3,23 @@ package com.wb.domainserver.domain.sopmal.main.controller;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.wb.domainserver.common.msg.GconeMessageSource;
import com.wb.domainserver.common.mvc.tags.ui.pagination.PaginationInfo;
import com.wb.domainserver.common.prop.PaginationProperties;
import com.wb.domainserver.domain.admin.store.sopmal.service.BOMaSopmalService;
import com.wb.domainserver.domain.admin.store.sopmal.vo.BOMaSopmalVO;
import com.wb.domainserver.domain.admin.sys.comncd.service.BOMaComncdService;
import com.wb.domainserver.domain.admin.sys.comncd.vo.BOMaComncdVO;
import com.wb.domainserver.domain.gcone.common.service.BOCommonService;
import com.wb.domainserver.domain.gcone.mbr.mbr.service.BOMbrService;
import com.wb.domainserver.domain.gcone.mbr.mbr.vo.BOMbrVO;
import com.wb.domainserver.domain.gcone.ordr.ordr.service.BOOrdrService;
import com.wb.domainserver.domain.gcone.ordr.ordr.vo.BOOrdrDlvyVO;
import com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.service.BORtngudrefndService;
import com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.vo.BORtngudrefndVO;
import com.wb.domainserver.domain.gcone.setup.site.service.BOSiteService;
import com.wb.domainserver.domain.gcone.setup.site.vo.BOPrevewVO;
import com.wb.domainserver.domain.gcone.setup.site.vo.BOSiteVO;
import com.wb.domainserver.domain.itrnt.str.service.BOItrntStrService;
import com.wb.domainserver.domain.itrnt.str.vo.BOItrntStrVO;
import com.wb.domainserver.domain.sample.vo.PrevewVO;
import com.wb.domainserver.domain.sopmal.main.vo.BrandVO;
import com.wb.domainserver.domain.sopmal.main.vo.MaSopmalVO;
@@ -13,13 +27,17 @@ import com.wb.domainserver.domain.sopmal.main.vo.MainVO;
import com.wb.domainserver.domain.sopmal.main.vo.StrVO;
import com.wb.domainserver.domain.sopmal.mpage.ordr.vo.MyOrdrDlvyVO;
import com.wb.domainserver.domain.sopmal.mpage.ordr.vo.MyRefundVO;
import com.wb.domainserver.exception.WnbtRestException;
import com.wb.domainserver.response.ApiResponse;
import com.wb.domainserver.response.WnbtResponse;
import com.wb.domainserver.response.WnbtResponseBody;
import com.wb.domainserver.response.WnbtWebClientResponseHandler;
import com.wb.domainserver.security.authentication.AnonymousUser;
import com.wb.domainserver.security.authentication.MemberJwtContextHolder;
import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.communicate.*;
import com.wb.domainserver.util.dataaccess.DataMap;
import com.wb.domainserver.util.util.Util;
import jakarta.servlet.http.Cookie;
import jakarta.servlet.http.HttpServletRequest;
@@ -27,13 +45,17 @@ 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.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.util.MultiValueMap;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -43,9 +65,6 @@ import java.util.Map;
@Controller
public class MainController {
@Autowired
private BOSiteService service;
@Autowired
WnbtWebClientResponseHandler responseHandler;
@@ -61,6 +80,26 @@ public class MainController {
@Autowired
private KakaoProperties kakaoProperties;
@Autowired
private PaginationProperties paginationProperties;
@Autowired
private BOOrdrService service;
@Autowired
private BOCommonService commonService;
@Autowired
private BOSiteService boSiteService;
@Autowired
private BOMaComncdService bOMaComncdService;
@Autowired
private BORtngudrefndService boRtngudrefndService;
@Autowired
private BOItrntStrService boItrntStrService;
@Autowired
private BOMaSopmalService boMaSopmalService;
@Autowired
private BOMbrService boMbrService;
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value= {"/","/index", "/sopmal/index"})
public String index(HttpServletRequest request, ModelMap model, BOPrevewVO prevewVO){
@@ -133,7 +172,7 @@ public class MainController {
siteVO.setCookieValArr(prevewVO.getCookieValArr());
siteVO.setEnv(prevewVO.getEnv());
Map<String, Object> message = new HashMap<>();
message = service.selectBOMainSiteDesignListInqire(siteVO);
message = boSiteService.selectBOMainSiteDesignListInqire(siteVO);
message.put("loginFlag", user.getMbrId());
model.addAttribute("resultMap", message);
@@ -164,19 +203,38 @@ public class MainController {
* @return OrdrDtlR.jsp
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/sopmal/main/selectNMbrMbtlnbInqire")
public ResponseEntity<WnbtResponse> selectNMbrMbtlnbInqire(HttpServletRequest request, ModelMap model, MyOrdrDlvyVO ordrDlvyVO) throws Exception {
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBONMbrMbtlnbInqire", ordrDlvyVO),
// model,
// "data"
// );
model.addAttribute("paramVO", new ObjectMapper().writeValueAsString(ordrDlvyVO));
@RequestMapping(value="/sopmal/main/selectNMbrMbtlnbInqire", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> selectNMbrMbtlnbInqire(HttpServletRequest request, ModelMap model, MyOrdrDlvyVO vo) throws Exception {
model.addAttribute("paramVO", new ObjectMapper().writeValueAsString(vo));
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBONMbrMbtlnbInqire", ordrDlvyVO),
ReplyFromResrc::getReply
BOOrdrDlvyVO ordrDlvyVO = new BOOrdrDlvyVO();
ordrDlvyVO.setOrdrInnb(vo.getOrdrInnb());
ordrDlvyVO.setMbtlnb(vo.getMbtlnb());
ordrDlvyVO.setSopmalCd(vo.getSopmalCd());
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if ("01".equals(user.getSysDvCd())) {
ordrDlvyVO.setSopmalCd(user.getSopmalCd());
}
ordrDlvyVO.setMbrInnb(BigInteger.valueOf(user.getUserInnb()));
ordrDlvyVO.setMbrDvCd(user.getMbrDvCd());
String secretKey = commonService.selectSecretkey();
ordrDlvyVO.setSecretKey(secretKey);
Map<String, Object> message = service.selectBONMbrMbtlnbInqire(ordrDlvyVO);
if ("N".equals(message.get("confirmAt"))) {
throw new WnbtRestException("휴대폰번호가 일치하지 않습니다.");
}
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(message))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBONMbrMbtlnbInqire", ordrDlvyVO),
// ReplyFromResrc::getReply
// );
}
@@ -186,13 +244,26 @@ public class MainController {
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/sopmal/main/selectNMbrOrdrDtlInqire")
public String selectNMbrOrdrDtlInqire(HttpServletRequest request, ModelMap model, MyOrdrDlvyVO ordrDlvyVO) throws Exception {
public String selectNMbrOrdrDtlInqire(HttpServletRequest request, ModelMap model, BOOrdrDlvyVO ordrDlvyVO) throws Exception {
log.debug("비회원 주문 조회 파라미터 =>{}", ordrDlvyVO);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOMbrOrdrDtlInqire", ordrDlvyVO),
model,
"data"
);
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if ("01".equals(user.getSysDvCd())) {
ordrDlvyVO.setSopmalCd(user.getSopmalCd());
}
Map<String, Object> message = service.selectMbrOrdrDtlInqire(ordrDlvyVO);
/**발급대상구분코드*/
BOMaComncdVO bOMaComncdVO = new BOMaComncdVO();
bOMaComncdVO.setGroupCd("ISSU_TRGET_DV");
List<?> issuTrgetDv = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
message.put("issuTrgetDv", issuTrgetDv);
model.addAttribute("data", message);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOMbrOrdrDtlInqire", ordrDlvyVO),
// model,
// "data"
// );
String referer = request.getHeader("referer");
//api에서 넘어 올 시
@@ -216,14 +287,69 @@ public class MainController {
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/sopmal/main/selectNMbrRtngudCanclRefndDtlInqire")
public String selectNMbrRtngudCanclRefndDtlInqire(MyRefundVO refundVO, ModelMap model, HttpServletRequest request){
public String selectNMbrRtngudCanclRefndDtlInqire(MyRefundVO refundVO, BORtngudrefndVO boRtngudrefndVO, ModelMap model, HttpServletRequest request){
refundVO.setServerDv("sopmal");
// 작성자 정보 할당
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
boRtngudrefndVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰코드
}
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/Rtngudrefnd/selectBONMbrRtngudRefndDtlInqire", refundVO),
model,
"resultMap"
);
// 공통코드 호출
BOMaComncdVO bOMaComncdVO = new BOMaComncdVO();
bOMaComncdVO.setGroupCd("RETURN_DLVY_PYMNT_TY"); // 반품배송비 지불 타입 코드
List<?> returnDlvyPymntTyCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
bOMaComncdVO.setGroupCd("RETURN_RESN_DTL"); // 반품상세사유
List<?> returnResnDtlCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
bOMaComncdVO.setGroupCd("RETURN_DLVY_RSPNSBL"); // 반품배송비 지불 책임 코드
List<?> returnDlvyRspnsbl = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
bOMaComncdVO.setGroupCd("SETLE_MTH"); // 환불방법
List<?> refundMth = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
bOMaComncdVO.setGroupCd("RETURN_PROCS_STTUS"); // 반품 처리상태 코드
List<?> returnProcsSttusCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
bOMaComncdVO.setGroupCd("REFUND_PROCS_STTUS"); // 환불 처리상태 코드
List<?> refundProcsSttusCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
bOMaComncdVO.setGroupCd("RETURN_MTH"); // 반품 방법 코드 : 회수 방법
List<?> returnMthCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
bOMaComncdVO.setGroupCd("KCP_BANK_CD"); // KCP 은행코드
List<?> kcpBankCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
bOMaComncdVO.setGroupCd("TOSS_BANK_CD"); // TOSS 은행코드
List<?> toosBankCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
// Map객체에 필요 정보 할당
Map<String, Object> content = new HashMap<>();
content.put("result", boRtngudrefndService.selectBORtngudRefndDtlInqire(boRtngudrefndVO));
content.put("paramVO", boRtngudrefndVO);
content.put("returnDlvyPymntTyCdList", returnDlvyPymntTyCdList);
content.put("returnResnList", returnResnDtlCdList);
content.put("returnDlvyRspnsbl", returnDlvyRspnsbl);
content.put("refundMth", refundMth);
content.put("returnProcsSttusCdList", returnProcsSttusCdList);
content.put("refundProcsSttusCdList", refundProcsSttusCdList);
content.put("returnMthCdList", returnMthCdList);
Map<String, Object> resultData = (Map<String, Object>) content.get("result"); // TODO : ( 2024-08-22 ) 통장 코드 환불 선택해서 입력 Npay , 에스크로, 페이코 고려되어있지않음 확인시 수정 필요
DataMap order = new DataMap();
order = (DataMap) resultData.get("refnd");
log.debug("order : {} ", order);
if ( order != null && ( "gcpay".equals(order.get("pgCmpnyNm")) || "toss".equals(order.get("pgCmpnyNm")) || "tosspay".equals(order.get("pgCmpnyNm")) ) ) {
content.put("bankCdList", toosBankCdList);
} else if ( order != null && ( "kcp".equals(order.get("pgCmpnyNm")) ) ) {
content.put("bankCdList", kcpBankCdList);
} else {
content.put("bankCdList", toosBankCdList);
}
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/Rtngudrefnd/selectBONMbrRtngudRefndDtlInqire", refundVO),
// model,
// "resultMap"
// );
model.addAttribute("paramVO", refundVO);
return Util.getDeviceType(request) + "/mpage/ordr/NmbrRtngudCanclRefndDtlR";
@@ -237,13 +363,38 @@ public class MainController {
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/sopmal/main/selectNMbrOrdrListInqireAjax")
public String selectNMbrOrdrListInqireAjax(ModelMap model, MyOrdrDlvyVO ordrDlvyVO) {
public String selectNMbrOrdrListInqireAjax(ModelMap model, BOOrdrDlvyVO ordrDlvyVO) {
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if ("01".equals(user.getSysDvCd())) {
ordrDlvyVO.setSopmalCd(user.getSopmalCd());
}
ordrDlvyVO.setMbrInnb(BigInteger.valueOf(user.getUserInnb()));
ordrDlvyVO.setMbrDvCd(user.getMbrDvCd());
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOMbrOrdrListInqireAjax", ordrDlvyVO),
model,
"data"
);
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(ordrDlvyVO.getPageIndex());
paginationInfo.setRecordCountPerPage(ordrDlvyVO.getPageUnit());
paginationInfo.setPageSize(paginationProperties.getPageSize());
ordrDlvyVO.setPaginationInfo(paginationInfo);
ordrDlvyVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
ordrDlvyVO.setLastIndex(paginationInfo.getLastRecordIndex());
ordrDlvyVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
ordrDlvyVO.setMbrInnb(BigInteger.valueOf(MemberJwtContextHolder.getMemberInfo().getUserInnb()));
List<DataMap> resultList = service.selectMbrOrdrListInqireAjax(ordrDlvyVO);
Map<String, Object> content = new HashMap<>();
content.put("resultList", resultList);
content.put("paginationInfo", ordrDlvyVO.getPaginationInfo());
model.addAttribute("data", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOMbrOrdrListInqireAjax", ordrDlvyVO),
// model,
// "data"
// );
return "sopmal/mpage/ordr/OrdrDlvyListRList";
}
@@ -267,20 +418,28 @@ public class MainController {
/**
* 매장 안내 조회
* @param gradVO
* @param strVO
* @param model
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/sopmal/main/selectStrGuidance")
public String selectStrGuidance(StrVO strVO, ModelMap model, HttpServletRequest request) {
public String selectStrGuidance(BOItrntStrVO strVO, ModelMap model, HttpServletRequest request) {
strVO.setServerDv("sopmal");
// 작성자 정보 할당
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
strVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰코드
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/itrnt/str/selectBOStrGuidance", strVO),
model,
"resultMap"
);
// service 호출
Map<String, Object> contents = new HashMap<>();
contents = boItrntStrService.selectBOStrGuidance(strVO);
model.addAttribute("resultMap", contents);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/itrnt/str/selectBOStrGuidance", strVO),
// model,
// "resultMap"
// );
model.addAttribute("paramVO", strVO);
// return "sopmal/main/StrGuidanceR";
@@ -290,20 +449,32 @@ public class MainController {
/**
* 매장 검색 목록 폼 이동
* @param gradVO
* @param strVO
* @param model
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/sopmal/main/selectStrListSrchForm")
public String selectStrListSrchForm(StrVO strVO, ModelMap model, HttpServletRequest request) {
public String selectStrListSrchForm(BOItrntStrVO strVO, ModelMap model, HttpServletRequest request) {
strVO.setServerDv("sopmal");
Map<String, Object> contents = new HashMap<>();
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/itrnt/str/selectBOStrListForm", strVO),
model,
"resultMap"
);
// 공통코드 호출
BOMaComncdVO bOMaComncdVO = new BOMaComncdVO();
bOMaComncdVO.setGroupCd("SIDO"); // 시도 코드
List<?> sidoCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
contents.put("sidoCdList", sidoCdList);
bOMaComncdVO.setGroupCd("GUNGU"); // 군구 코드
List<?> gunguCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
contents.put("gunguCdList", gunguCdList);
contents.put("paramVO", strVO);
model.addAttribute("resultMap", contents);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/itrnt/str/selectBOStrListForm", strVO),
// model,
// "resultMap"
// );
model.addAttribute("paramVO", strVO);
// return "sopmal/main/StrSrchListFormR";
@@ -313,20 +484,21 @@ public class MainController {
/**
* 매장 검색 목록 조회
* @param gradVO
* @param strVO
* @param model
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/sopmal/main/selectStrListInqire")
public String selectStrListInqire(StrVO strVO, ModelMap model, HttpServletRequest request) {
public String selectStrListInqire(BOItrntStrVO strVO, ModelMap model, HttpServletRequest request) {
strVO.setServerDv("sopmal");
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/itrnt/str/selectBOStrListInqire", strVO),
model,
"resultMap"
);
Map<String, Object> content = selectBOStrListInqire(strVO);
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/itrnt/str/selectBOStrListInqire", strVO),
// model,
// "resultMap"
// );
model.addAttribute("paramVO", strVO);
// return "sopmal/main/StrSrchListR";
@@ -337,17 +509,52 @@ public class MainController {
/**
* 마이페이지 > 매장 검색 목록 조회 > 스크롤
* @param strVO
* @param model
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/sopmal/main/selectStrListScrolInqire")
public ResponseEntity<?> selectStrListScrolInqire(StrVO strVO) {
@RequestMapping(value = "/sopmal/main/selectStrListScrolInqire", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> selectStrListScrolInqire(BOItrntStrVO strVO) {
strVO.setServerDv("sopmal");
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/itrnt/str/selectBOStrListInqire", strVO),
ReplyFromResrc::getReply
Map<String, Object> content = selectBOStrListInqire(strVO);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(content))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/itrnt/str/selectBOStrListInqire", strVO),
// ReplyFromResrc::getReply
// );
}
/**
* bo로직 매장 목록 조회
*/
public Map<String, Object> selectBOStrListInqire (BOItrntStrVO itrntStrVO) {
// 작성자 정보 할당
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
itrntStrVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰코드
Map<String, Object> contents = new HashMap<>();
// 페이징 객체 생성 & 페이징정보 할당
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(itrntStrVO.getPageIndex());
paginationInfo.setRecordCountPerPage(itrntStrVO.getPageUnit());
paginationInfo.setPageSize(paginationProperties.getPageSize());
itrntStrVO.setPaginationInfo(paginationInfo);
itrntStrVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
itrntStrVO.setLastIndex(paginationInfo.getLastRecordIndex());
itrntStrVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
List<DataMap> resultList = boItrntStrService.selectBOStrListInqire(itrntStrVO);
contents.put("paramVO", itrntStrVO);
contents.put("resultList", resultList);
contents.put("paginationInfo", itrntStrVO.getPaginationInfo());
return contents;
}
@@ -356,36 +563,62 @@ public class MainController {
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/sopmal/main/selecSidoGunguCmmnCdArray")
public ResponseEntity<WnbtResponse> selecSidoGunguCmmnCdArray(StrVO strVO) {
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/itrnt/str/selecBOSidoGunguCmmnCdArray", strVO),
ReplyFromResrc::getReply
@RequestMapping(value = "/sopmal/main/selecSidoGunguCmmnCdArray", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> selecSidoGunguCmmnCdArray(BOItrntStrVO itrntStrVO) {
// 작성자 정보 할당
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
itrntStrVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰코드
// 공통코드 호출
BOMaComncdVO bOMaComncdVO = new BOMaComncdVO();
bOMaComncdVO.setGroupCd("SIDO"); // 시도 코드
List<?> sidoCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
bOMaComncdVO.setGroupCd("GUNGU"); // 군구 코드
List<?> gunguCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
// Map객체에 필요 정보 할당
Map<String, Object> content = new HashMap<>();
content.put("sidoCdList", sidoCdList);
content.put("gunguCdList", gunguCdList);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(content))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/itrnt/str/selecBOSidoGunguCmmnCdArray", strVO),
// ReplyFromResrc::getReply
// );
}
/**
* 매장 상세 조회
* @param gradVO
* @param itrntStrVO
* @param model
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/sopmal/main/selectStrDtlInqire")
public String selectStrDtlInqire(StrVO strVO, ModelMap model, HttpServletRequest request) {
strVO.setServerDv("sopmal");
public String selectStrDtlInqire(BOItrntStrVO itrntStrVO, ModelMap model, HttpServletRequest request) {
itrntStrVO.setServerDv("sopmal");
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/itrnt/str/selectBOStrDtlInqire", strVO),
// model,
// "resultMap"
model.addAttribute("strVO", itrntStrVO);
// 작성자 정보 할당
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
itrntStrVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰코드
Map<String, Object> resultMap = new HashMap<>();
DataMap result = boItrntStrService.selectBOStrDtlInqire(itrntStrVO);
resultMap.put("paramVO", itrntStrVO);
resultMap.put("result", result);
// Map<String, Object> resultMap = responseHandler.handleResponseAsMap(
// sendToResrc.ofPost(RESRC.GCONEBO, "/itrnt/str/selectBOStrDtlInqire", strVO)
// );
model.addAttribute("strVO", strVO);
Map<String, Object> resultMap = responseHandler.handleResponseAsMap(
sendToResrc.ofPost(RESRC.GCONEBO, "/itrnt/str/selectBOStrDtlInqire", strVO)
);
String kakaoKey = "";
if(resultMap.containsKey("paramVO")){
@@ -410,12 +643,18 @@ public class MainController {
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/sopmal/main/selectIndvdlInfoProcsCn")
public ResponseEntity<WnbtResponse> selectIndvdlInfoProcsCn(MaSopmalVO maSopmalVO) {
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopmal/selectBOClauseInformationSopmal", maSopmalVO),
ReplyFromResrc::getReply
@RequestMapping(value = "/sopmal/main/selectIndvdlInfoProcsCn", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<WnbtResponse> selectIndvdlInfoProcsCn(BOMaSopmalVO maSopmalVO) {
DataMap content = selectBOClauseInformationSopmal(maSopmalVO);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(content))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopmal/selectBOClauseInformationSopmal", maSopmalVO),
// ReplyFromResrc::getReply
// );
}
/**
@@ -425,19 +664,43 @@ public class MainController {
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/sopmal/main/selectClause")
public String selectClause(MaSopmalVO vo, ModelMap model, HttpServletRequest request) {
public String selectClause(BOMaSopmalVO vo, ModelMap model, HttpServletRequest request) {
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopmal/selectBOClauseInformationSopmal", vo),
model,
"resultMap"
);
DataMap content = selectBOClauseInformationSopmal(vo);
model.addAttribute("resultMap", content);
// responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopmal/selectBOClauseInformationSopmal", vo),
// model,
// "resultMap"
// );
model.addAttribute("maSopmalVO",vo);
return Util.getDeviceType(request) + "/main/ClauseDtlR";
}
/**
* bo로직 사용자 > 약관 내용 조회
*/
public DataMap selectBOClauseInformationSopmal(BOMaSopmalVO vo) {
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
vo.setSopmalCd(user.getSopmalCd());
DataMap content = new DataMap();
List<DataMap> clauseList = new ArrayList<>();
clauseList = boMaSopmalService.selectBOClauseInformation(vo);
/**약관구분 공통코드*/
BOMaComncdVO bOMaComncdVO = new BOMaComncdVO();
bOMaComncdVO.setGroupCd("STPLAT_DV");
List<?> stplat = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
content.put("clauseList", clauseList);
content.put("stplat", stplat);
return content;
}
/**
* 브랜드 스토리
*
@@ -622,8 +885,8 @@ public class MainController {
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/sopmal/main/selectMbrInfo")
public ResponseEntity<?> selectMbrInfo(HttpServletRequest request, MyOrdrDlvyVO ordrDlvyVO) {
@RequestMapping(value="/sopmal/main/selectMbrInfo", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> selectMbrInfo(HttpServletRequest request, BOMbrVO vo) {
// 쿠키를 가져옴
Cookie[] cookies = request.getCookies();
@@ -648,30 +911,66 @@ public class MainController {
}
String[] cookieValArr = filterList.toArray(new String[filterList.size()]);
ordrDlvyVO.setCookieValArr(cookieValArr);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", ordrDlvyVO),
ReplyFromResrc::getReply
);
vo.setCookieValArr(cookieValArr);
// 사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
vo.setSopmalCd(user.getSopmalCd());
vo.setMbrInnb(String.valueOf(user.getUserInnb()));
vo.setMbrDvCd(user.getMbrDvCd());
// 상품 옵션 조회
Map<String, Object> message = new HashMap<>();
message = boMbrService.selectBOMpageInfoInqire(vo);
BOSiteVO siteVO = new BOSiteVO();
siteVO.setSopmalCd(vo.getSopmalCd());
siteVO.setCookieValArr(vo.getCookieValArr());
List<DataMap> recentGoods = null;
if (vo.getCookieValArr() != null) {
recentGoods = boSiteService.selectBOMainRecentGoods(siteVO);
message.put("recentGoods", recentGoods);
}
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(message))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", ordrDlvyVO),
// ReplyFromResrc::getReply
// );
}
/**
* 메인 화면 쇼핑몰 카테고리별 타입
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/sopmal/main/selectMainSiteDesignCtgryListInqire")
public ResponseEntity<?> selectMainSiteDesignCtgryListInqire(HttpServletRequest request, MainVO vo) {
@RequestMapping(value="/sopmal/main/selectMainSiteDesignCtgryListInqire", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> selectMainSiteDesignCtgryListInqire(HttpServletRequest request, BOSiteVO siteVO) {
Map<String, Object> message = new HashMap<>();
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/ajax/gcone/setup/site/selectBOMainSiteDesignCtgryListInqire", vo),
ReplyFromResrc::getReply
// 작성자 정보 할당
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
if("01".equals(user.getSysDvCd())){
siteVO.setSopmalCd(user.getSopmalCd()); // 쇼핑몰코드
}
List<DataMap> case03 = boSiteService.selectBOMainSiteDesignCtgryListInqire(siteVO);
message.put("resultMap", case03);
return ResponseEntity.ok(
WnbtResponse.builder()
.resBody(new WnbtResponseBody(message))
.build()
);
// return responseHandler.handleResponse(
// sendToResrc.ofPost(RESRC.GCONEBO, "/ajax/gcone/setup/site/selectBOMainSiteDesignCtgryListInqire", vo),
// ReplyFromResrc::getReply
// );
}
}