초기소스

This commit is contained in:
jazz
2025-10-29 17:08:05 +09:00
parent e531aa9540
commit 439a379a02
7551 changed files with 1234427 additions and 3 deletions

View File

@@ -0,0 +1,462 @@
package com.wb.domainserver.domain.itrnt.mbr.controller;
import com.wb.domainserver.common.mvc.tags.ui.pagination.PaginationInfo;
import com.wb.domainserver.common.prop.PaginationProperties;
import com.wb.domainserver.domain.admin.sys.comncd.service.BOMaComncdService;
import com.wb.domainserver.domain.admin.sys.comncd.vo.BOMaComncdVO;
import com.wb.domainserver.domain.gcone.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.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.domain.itrnt.mbr.service.BOItrntMbrService;
import com.wb.domainserver.domain.itrnt.mbr.vo.BOItrntCnsltVO;
import com.wb.domainserver.domain.itrnt.mbr.vo.BOItrntMbrSrchVO;
import com.wb.domainserver.response.ApiResponse;
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.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.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Slf4j
@RestController
@RequestMapping("/itrnt/mbr")
public class BOItrntMbrController {
@Autowired
private BOItrntMbrService service;
@Autowired
private BOMbrService mbrService;
@Autowired
private BOGradbnefService gradbnefService;
@Autowired
private BOCommonService boCommonService;
@Autowired
private BOMaComncdService bOMaComncdService;
@Autowired
private PaginationProperties paginationProperties;
@Autowired
private BOOrdrMngrService boOrdrMngrService;
/**
* 인트라넷 회원 검색 폼
*
* @param vo
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@PostMapping(value = "/selectBOMbrListForm")
public ResponseEntity<?> selectBOMbrListForm(@RequestBody BOMbrVO vo) {
// 사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
//등급
List<DataMap> grad = new ArrayList<>();
BOGradbnefVO bnefVO = new BOGradbnefVO();
bnefVO.setSopmalCd(user.getReprsntBrand());
grad = gradbnefService.selectBOMbrGradListInqireWithoutPaging(bnefVO);
//공통코드
//성별
BOMaComncdVO bOMaComncdVO = new BOMaComncdVO();
bOMaComncdVO.setGroupCd("SEX");
List<?> sex = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
//페이징 처리를 위한 pagination 객체 생성
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(vo.getPageIndex());
paginationInfo.setRecordCountPerPage(vo.getPageUnit());
paginationInfo.setPageSize(paginationProperties.getPageSize());
vo.setPaginationInfo(paginationInfo);
//페이징 처리를 위한 값 설정
vo.setFirstIndex(paginationInfo.getFirstRecordIndex());
vo.setLastIndex(paginationInfo.getLastRecordIndex());
vo.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
// Shop 정보 조회
BOSetupOrdrVO boOrdrVO = new BOSetupOrdrVO();
boOrdrVO.setSopmalCd(user.getReprsntBrand());
// Map객체에 필요 정보 할당
Map<String, Object> content = new HashMap<>();
content.put("sex", sex);
content.put("grad", grad);
content.put("vo", vo);
content.put("paginationInfo", vo.getPaginationInfo());
content.put("tentGroup",user.getTentGroup());
content.put("shopInfo", boOrdrMngrService.selectBOOrdrSetupList(boOrdrVO));
return ApiResponse.of(content).ifPresentOrElse(HttpStatus.OK, HttpStatus.NOT_FOUND);
}
/**
* 인트라넷 회원 검색
*
* @param vo
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@PostMapping(value = "/selectBOItrntMbrList")
public ResponseEntity<?> selectBOItrntMbrList(@RequestBody BOItrntMbrSrchVO vo) {
log.debug("vo => {}",vo);
// 사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
vo.setSopmalCd(user.getReprsntBrand());
vo.setSecretKey(boCommonService.selectSecretkey());
vo.setStrInnb(String.valueOf(user.getUserInnb()));
// pagination
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(vo.getPageIndex());
paginationInfo.setRecordCountPerPage(vo.getPageUnit());
paginationInfo.setPageSize(paginationProperties.getPageSize());
vo.setPaginationInfo(paginationInfo);
vo.setFirstIndex(paginationInfo.getFirstRecordIndex());
vo.setLastIndex(paginationInfo.getLastRecordIndex());
vo.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
List<DataMap> mbrList = service.selectBOItrntMbrList(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("vo", vo);
content.put("resultList", mbrList);
content.put("paginationInfo", vo.getPaginationInfo());
return ApiResponse.of(content).ifPresentOrElse(HttpStatus.OK, HttpStatus.NOT_FOUND);
}
/**
* 인트라넷 회원 검색
*
* @param vo
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@PostMapping(value = "/selectBOItrntsmsMbrList")
public ResponseEntity<?> selectBOItrntsmsMbrList(@RequestBody BOItrntMbrSrchVO vo) {
// 사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
vo.setSopmalCd(user.getReprsntBrand());
vo.setSecretKey(boCommonService.selectSecretkey());
vo.setStrInnb(String.valueOf(user.getUserInnb()));
//회원 목록 조회 결과 및 페이징정보 넣기
Map<String, Object> resultMap = new HashMap<>();
resultMap = service.selectBOItrntsmsMbrList(vo);
// Shop 정보 조회
BOSetupOrdrVO boOrdrVO = new BOSetupOrdrVO();
boOrdrVO.setSopmalCd(vo.getSopmalCd());
Map<String, Object> content = new HashMap<>();
content.put("result", resultMap);
content.put("shopInfo", boOrdrMngrService.selectBOOrdrSetupList(boOrdrVO));
return ApiResponse.of(content).ifPresentOrElse(HttpStatus.OK, HttpStatus.NOT_FOUND);
}
/**
* 고객 정보 조회 ( CRM 회원 정보 )
*
* @param vo
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@PostMapping(value = "/selectBOCstmrInfoInqire")
public ResponseEntity<?> selectBOCstmrInfoInqire(@RequestBody BOMbrVO vo) {
// 사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
String secretKey = boCommonService.selectSecretkey();
vo.setSecretKey(secretKey);
vo.setSopmalCd(user.getReprsntBrand());
// 회원 정보 조회
DataMap result = new DataMap();
result = mbrService.selectBOMbrInfoUpdtInqire(vo);
// 회원 활동 정보 조회 ( 마일리지, 쿠폰, 누적 결재 금액, 누적 주문 건수, 최근 로그인 ip, 최근 수정일시 )
DataMap resultAct = new DataMap();
resultAct = mbrService.selectBOMbrActInfoInqire(vo);
//pos 가입 매장 조회
DataMap pos = new DataMap();
pos = mbrService.selectBOJoinStrInqire(vo);
//외부연동 조회
List<DataMap> extrlMember = new ArrayList<>();
extrlMember = mbrService.selectBOMbrExtrlMbrInfoInqire(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("actData", resultAct);
content.put("paramVO", vo);
content.put("extrlMember", extrlMember);
content.put("pos", pos);
content.put("sex", sex);
content.put("joinEnvrn", joinEnvrn);
return ApiResponse.of(content).ifPresentOrElse(HttpStatus.OK, HttpStatus.NOT_FOUND);
}
/**
* 인트라넷 crm 회원정보 수정
* @param vo
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@PostMapping(value = "/updateBOMbrInfoUpdtItrnt")
public ResponseEntity<?> updateBOMbrInfoUpdtItrnt(@RequestBody BOMbrVO vo) {
// 사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
vo.setUpdusr(user.getUserInnb());
vo.setMngrId(user.getMbrId());
vo.setSopmalCd(user.getReprsntBrand());
String secretKey = "";
secretKey = boCommonService.selectSecretkey();
vo.setSecretKey(secretKey);
//관리자 로그 문장 만듦
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");
log.debug("mngrLog {}",data);
mngrLog = mbrService.makeMngrLog(data);
vo.setMngrLogStrt(StringUtil.isNullToString(mngrLog.get("mngrLogStrt")));
vo.setMngrLogEnd(StringUtil.isNullToString(mngrLog.get("mngrLogEnd")));
//관리매장 수정
if(!StringUtil.isEmpty(String.valueOf(vo.getStrInnb()))){
mbrService.updateBOManageStrUpdt(vo);
}
Map<String, Object> message = new HashMap<>();
message = mbrService.updateBOMbrInfoUpdtCrm(vo);
return ApiResponse.of(message).ifPresentOrElse(HttpStatus.OK, HttpStatus.NOT_FOUND);
}
/**
* 매장 > 고객 상담 조회 폼
*
* @param vo
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@PostMapping(value = "/selectBOCnsltDtlsForm")
public ResponseEntity<?> selectBOCnsltDtlsForm(@RequestBody BOItrntCnsltVO vo) {
// 공통코드 호출
BOMaComncdVO bOMaComncdVO = new BOMaComncdVO();
bOMaComncdVO.setGroupCd("COUNSEL_PROCS_STTUS"); // 상담처리상태
List<?> procsSttusCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
// Map객체에 필요 정보 할당
Map<String, Object> content = new HashMap<>();
content.put("procsSttusCdList",procsSttusCdList);
content.put("paramVO",vo);
return ApiResponse.of(content).ifPresentOrElse(HttpStatus.OK, HttpStatus.NOT_FOUND);
}
/**
* 매장 > 고객 상담 조회
*
* @param vo
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@PostMapping(value = "/selectBOCnsltDtls")
public ResponseEntity<?> selectBOCnsltDtls(@RequestBody BOItrntCnsltVO vo) {
String secretKey = boCommonService.selectSecretkey();
vo.setSecretKey(secretKey);
// 페이징 객체 생성 & 페이징정보 할당
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());
// 공통코드 호출
BOMaComncdVO bOMaComncdVO = new BOMaComncdVO();
bOMaComncdVO.setGroupCd("COUNSEL_PROCS_STTUS"); // 상담처리상태
List<?> procsSttusCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
List<DataMap> resultList = service.selectBOCnsltDtls(vo);
// Map객체에 필요 정보 할당
Map<String, Object> content = new HashMap<>();
// 맵에 페이징 정보와 리스트를 넣어줌
content.put("paramVO", vo);
content.put("resultList", resultList);
content.put("paginationInfo", vo.getPaginationInfo());
content.put("procsSttusCdList", procsSttusCdList); // 상담처리상태
return ApiResponse.of(content).ifPresentOrElse(HttpStatus.OK, HttpStatus.NOT_FOUND);
}
/**
* 매장 > 고객 상담 등록 폼
*
* @param vo
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@PostMapping(value = "/selectBOCnsltRegistPopupForm")
public ResponseEntity<?> selectBOCnsltRegistPopupForm(@RequestBody BOItrntCnsltVO vo) {
String secretKey = boCommonService.selectSecretkey();
vo.setSecretKey(secretKey);
// 공통코드 호출
BOMaComncdVO bOMaComncdVO = new BOMaComncdVO();
bOMaComncdVO.setGroupCd("COUNSEL_PROCS_STTUS"); // 상담처리상태
List<?> procsSttusCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
// Map객체에 필요 정보 할당
Map<String, Object> content = new HashMap<>();
content.put("cnsltVO", vo);
content.put("procsSttusCdList", procsSttusCdList);
return ApiResponse.of(content).ifPresentOrElse(HttpStatus.OK, HttpStatus.NOT_FOUND);
}
/**
* 매장 > 고객 상담 등록
*
* @param vo
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@PostMapping(value = "/insertBOCnsltRegist")
public ResponseEntity<?> insertBOCnsltRegist(@RequestBody BOItrntCnsltVO vo) {
// 작성자 정보 할당
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
vo.setRegusr(user.getUserInnb()); //등록자
vo.setUpdusr(user.getUserInnb()); // 수정자
vo.setRegusrnm(user.getTentcpnNm());//등록자명
vo.setStrInnb(String.valueOf(user.getUserInnb()));//관리자고유번호
String secretKey = boCommonService.selectSecretkey();
vo.setSecretKey(secretKey);
// 상담 등록 로직
Map<String, Object> message = new HashMap<>();
message = service.insertBOCnsltRegist(vo);
return ApiResponse.of(message).ifPresentOrElse(HttpStatus.OK, HttpStatus.NOT_FOUND);
}
/**
* 매장 > 고객 상담 수정 폼
*
* @param vo
* @return
* @author 추지훈
*/
@Policy(AuthPolicy.PUBLIC)
@PostMapping(value = "/selectBOCnsltDtlUpdtInqirePopup")
public ResponseEntity<?> selectBOCnsltDtlUpdtInqirePopup(@RequestBody BOItrntCnsltVO vo) {
// 공통코드 호출
BOMaComncdVO bOMaComncdVO = new BOMaComncdVO();
bOMaComncdVO.setGroupCd("COUNSEL_PROCS_STTUS"); // 상담처리상태
List<?> procsSttusCdList = bOMaComncdService.selectBOCommcdDetailList(bOMaComncdVO);
DataMap result = new DataMap();
result = service.selectBOCnsltDtlUpdtInqirePopup(vo);
// Map객체에 필요 정보 할당
Map<String, Object> content = new HashMap<>();
content.put("cnsltVO", result);
content.put("procsSttusCdList", procsSttusCdList);
return ApiResponse.of(content).ifPresentOrElse(HttpStatus.OK, HttpStatus.NOT_FOUND);
}
/**
* 매장 > 고객 상담 수정
*
* @param vo
* @return
* @author 추지훈
*/
@Policy(AuthPolicy.PUBLIC)
@PostMapping(value = "/updateBOCnsltUpdt")
public ResponseEntity<?> updateBOCnsltUpdt(@RequestBody BOItrntCnsltVO vo) {
// 작성자 정보 할당
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
vo.setUpdusr(user.getUserInnb()); // 수정자
Map<String, Object> message = new HashMap<>();
message = service.updateBOCnsltUpdt(vo);
return ApiResponse.of(message).ifPresentOrElse(HttpStatus.OK, HttpStatus.NOT_FOUND);
}
/**
* 매장 > 고객 상담 삭제
*
* @param vo
* @return
* @author 추지훈
*/
@Policy(AuthPolicy.PUBLIC)
@PostMapping(value = "/deleteBOCnsltDel")
public ResponseEntity<?> deleteBOCnsltDel(@RequestBody BOItrntCnsltVO vo) {
Map<String, Object> message = new HashMap<>();
message = service.deleteBOCnsltDel(vo);
return ApiResponse.of(message).ifPresentOrElse(HttpStatus.OK, HttpStatus.NOT_FOUND);
}
/**
* 매장정보 조회
*
* @param vo
* @return
* @author 추지훈
*/
@Policy(AuthPolicy.PUBLIC)
@PostMapping(value = "/selectBOStrNm")
public ResponseEntity<?> selectBOStrNm(@RequestBody Map<String, Object> paramMap) {
Map<String, Object> message = new HashMap<>();
DataMap content = service.selectBOStrNm(paramMap);
return ApiResponse.of(content).ifPresentOrElse(HttpStatus.OK, HttpStatus.NOT_FOUND);
}
}

View File

@@ -0,0 +1,169 @@
package com.wb.domainserver.domain.itrnt.mbr.controller;
import com.wb.domainserver.common.msg.GconeMessageSource;
import com.wb.domainserver.domain.admin.store.sopmal.vo.MaSopmalVO;
import com.wb.domainserver.domain.itrnt.mbr.vo.ItrntSrchMbrVO;
import com.wb.domainserver.response.WnbtResponse;
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 lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.HashMap;
import java.util.Map;
@Controller
@Slf4j
@RequestMapping("/itrnt/mbr")
public class ItrntMbrController {
/** WebClient 호출을 위한 wrapper */
@Autowired
private WnbtWebClientResponseHandler responseHandler;
/** WebClient 호출을 위한 wrapper */
@Autowired
private SendToResrc sendToResrc;
/** 공통 메시지 처리를 위한 메시지 객체 */
@Autowired
private GconeMessageSource gconeMessageSource;
/**
* 인트라넷 회원 목록 검색 화면
*
* @param vo
* @return String
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectItrntMbrListForm")
public String selectMbrListForm(ModelMap model, ItrntSrchMbrVO vo) {
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/itrnt/mbr/selectBOMbrListForm", vo),
model,
"resultMap"
);
return "itrnt/mbr/ItrntMbrListRForm";
}
/**
* 인트라넷 회원 목록 검색 모달
*
* @param vo
* @return String
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectItrntMbrListPopForm")
public String selectItrntMbrListPopForm(ModelMap model, ItrntSrchMbrVO vo) {
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/itrnt/mbr/selectBOMbrListForm", vo),
model,
"resultMap"
);
return "itrnt/mbr/ItrntMbrSrchPopupRForm";
}
/**
* 인트라넷 회원 목록 조회(화면)
*
* @param vo
* @return String
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectItrntMbrList")
public String selectMbrList(ModelMap model, ItrntSrchMbrVO vo) {
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/itrnt/mbr/selectBOItrntMbrList", vo),
model,
"resultMap"
);
model.addAttribute("pageUnit",vo.getPageUnit());
return "itrnt/mbr/ItrntMbrListR";
}
/**
* 인트라넷 회원 목록 조회(팝업)
*
* @param vo
* @return String
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectItrntMbrPopList")
public String selectItrntMbrPopList(ModelMap model, ItrntSrchMbrVO vo) {
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/itrnt/mbr/selectBOItrntMbrList", vo),
model,
"resultMap"
);
model.addAttribute("pageUnit",vo.getPageUnit());
return "itrnt/mbr/ItrntMbrSrchPopupR";
}
/**
* 인트라넷 회원 목록 조회(ajax)
*selectItrntMbrPopList
* @param vo
* @return String
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectItrntMbrPopListAjax")
public ResponseEntity<WnbtResponse> selectItrntMbrPopListAjax(ModelMap model, ItrntSrchMbrVO vo) {
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/itrnt/mbr/selectBOItrntsmsMbrList", vo),
ReplyFromResrc::getReply
);
}
/**
* 쇼핑몰 url 정보 조회
*
* @return map
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/getPcUrl")
public ResponseEntity<WnbtResponse> getPcUrl(MaSopmalVO vo) {
// 사용자 정보 추출 및 적용
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
vo.setSopmalCd(user.getReprsntBrand());
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/admin/store/sopmal/selectBOSopmalInfoDtl", vo),
ReplyFromResrc::getReply
);
}
/**
* 포스 회원 가입 화면
*
* @param ItrntMbrVO
* @return ResponseEntity
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectMbrJoinForm")
public String selectMbrJoinForm(ModelMap model, @RequestParam String store_code) {
Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("store_code", store_code);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/itrnt/mbr/selectBOStrNm", paramMap),
model,
"resultMap"
);
model.addAttribute("storeCode", store_code);
return "itrnt/mbr/MbrJoinForm";
}
}

View File

@@ -0,0 +1,38 @@
package com.wb.domainserver.domain.itrnt.mbr.mapper;
import com.wb.domainserver.domain.itrnt.mbr.vo.BOItrntCnsltVO;
import com.wb.domainserver.domain.itrnt.mbr.vo.BOItrntMbrSrchVO;
import com.wb.domainserver.util.dataaccess.DataMap;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
@Mapper
@Repository
public interface BOItrntMbrMapper {
/******************************회원 서비스 ************************************/
/*매장별 회원건수조회*/
public int selectBOItrntMbrCnt(BOItrntMbrSrchVO vo);
/*매장별 회원리스트조회*/
public List<DataMap> selectBOItrntMbrList(BOItrntMbrSrchVO vo);
/*매장별 회원리스트조회*/
public List<DataMap> selectBOItrntsmsMbrList(BOItrntMbrSrchVO vo);
/*******************************회원 상담 서비스*******************************/
/*매장 상당 수정*/
Integer selectBOCnsltListCnt(BOItrntCnsltVO vo);
/*매장 상당 수정*/
List<DataMap> selectBOCnsltListInqire(BOItrntCnsltVO vo);
/*매장 상담 상세 조회*/
DataMap selectBOCnsltDtlUpdtInqirePopup(BOItrntCnsltVO vo);
/*매장 상담 등록*/
int insertBOCnsltRegist(BOItrntCnsltVO vo);
/*매장 상당 수정*/
int updateBOCnsltUpdt(BOItrntCnsltVO vo);
/*매장 상당 삭제*/
int deleteBOCnsltDel(BOItrntCnsltVO vo);
/* 매장명 조회 */
DataMap selectBoStrNm(Map<String, Object> paramMap);
}

View File

@@ -0,0 +1,158 @@
package com.wb.domainserver.domain.itrnt.mbr.service;
import com.nimbusds.jose.shaded.gson.Gson;
import com.wb.domainserver.domain.itrnt.mbr.mapper.BOItrntMbrMapper;
import com.wb.domainserver.domain.itrnt.mbr.vo.BOItrntCnsltVO;
import com.wb.domainserver.domain.itrnt.mbr.vo.BOItrntMbrSrchVO;
import com.wb.domainserver.exception.WnbtRestException;
import com.wb.domainserver.util.dataaccess.DataMap;
import com.wb.domainserver.util.string.StringUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Slf4j
@Service
@RequiredArgsConstructor
public class BOItrntMbrService {
@Autowired
private BOItrntMbrMapper mapper;
/*
* 인트라넷 회원 목록 조회
*
*/
public List<DataMap> selectBOItrntMbrList(BOItrntMbrSrchVO vo) {
// 인트라넷 회원 목록
List<DataMap> resultList = null;
// 목록 건수 조회
Integer totCnt = mapper.selectBOItrntMbrCnt(vo);
// 인트라넷 회원 정보와 페이징 정보
vo.getPaginationInfo().setTotalRecordCount(totCnt);
if (totCnt > 0) {
// 상담 목록 조회
resultList = mapper.selectBOItrntMbrList(vo);
}
return resultList;
}
/*
* 인트라넷 sms 적용 회원 조회
*
*/
public Map<String, Object> selectBOItrntsmsMbrList(BOItrntMbrSrchVO vo) {
// 인트라넷 회원 목록
Map<String, Object> resultMap = new HashMap<>();
List<DataMap> resultList = new ArrayList<>();
// 목록 건수 조회
Integer totCnt = mapper.selectBOItrntMbrCnt(vo);
if (totCnt > 0) {
// 상담 목록 조회
resultList = mapper.selectBOItrntsmsMbrList(vo);
}
resultMap.put("mbrInfo", new Gson().toJson(resultList));
resultMap.put("mbrInfoCnt", totCnt);
return resultMap;
}
/*
* 상담 목록 조회
*/
public List<DataMap> selectBOCnsltDtls(BOItrntCnsltVO vo) {
// 상담 목록
List<DataMap> resultList = null;
// 목록 건수 조회
Integer totCnt = mapper.selectBOCnsltListCnt(vo);
// 상담 정보와 페이징 정보
vo.getPaginationInfo().setTotalRecordCount(totCnt);
if (totCnt > 0) {
// 상담 목록 조회
resultList = mapper.selectBOCnsltListInqire(vo);
}
return resultList;
}
/*
* 상담 등록
*/
public Map<String, Object> insertBOCnsltRegist(BOItrntCnsltVO vo) {
Map<String, Object> message = new HashMap<>();
try {
// mapper 호출
int result = mapper.insertBOCnsltRegist(vo);
message.put("result", result);
} catch (WnbtRestException wre) {
throw new WnbtRestException(wre.getMessage());
} catch (Exception e) {
log.error(e.getMessage(), e);
}
return message;
}
/*
* 상담 상세
*/
public DataMap selectBOCnsltDtlUpdtInqirePopup(BOItrntCnsltVO vo) {
DataMap result = new DataMap();
result = mapper.selectBOCnsltDtlUpdtInqirePopup(vo);
return result;
}
/*
* 상담 수정
*/
public Map<String, Object> updateBOCnsltUpdt(BOItrntCnsltVO vo) {
Map<String, Object> message = new HashMap<>();
try {
mapper.updateBOCnsltUpdt(vo);
message.put("result", "success");
} catch (WnbtRestException wre) {
throw new WnbtRestException(wre.getMessage());
} catch (Exception e) {
log.error(e.getMessage());
}
return message;
}
/*
* 상담 삭제
*/
public Map<String, Object> deleteBOCnsltDel(BOItrntCnsltVO vo) {
Map<String, Object> message = new HashMap<>();
try {
mapper.deleteBOCnsltDel(vo);
message.put("result", "success");
} catch (WnbtRestException wre) {
throw new WnbtRestException(wre.getMessage());
} catch (Exception e) {
log.error(e.getMessage());
}
return message;
}
/**
* 매장정보 조회
* @param paramMap
* @return
*/
public DataMap selectBOStrNm(Map<String, Object> paramMap) {
DataMap content = new DataMap();
String storeCode = StringUtil.isNullToString(paramMap.get("store_code"));
String posCdDvVal = storeCode.substring(0, 3);
String posCdPassiveInputVal = storeCode.substring(3);
paramMap.put("posCdDvVal", posCdDvVal);
paramMap.put("posCdPassiveInputVal", posCdPassiveInputVal);
content = mapper.selectBoStrNm(paramMap);
return content;
}
}

View File

@@ -0,0 +1,58 @@
package com.wb.domainserver.domain.itrnt.mbr.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = false)
public class BOItrntCnsltVO extends AbstractVO {
private static final long serialVersionUID = 1L;
/**
* 매장 상담 컬럼
*/
/**매장상담내역 고유번호(PK)*/
private String strCnsltDtlsInnb;
/**매장 고유번호(FK)*/
private String strInnb;
/**관리자 고유번호*/
private String mngrInnb;
/**회원고유번호*/
private String mbrInnb;
/**회원구분코드*/
private String mbrDvCd;
/**상담내용*/
private String cnsltCn;
/**처리상태*/
private String procsSttus;
/**처리일시*/
private String procsDt;
/*작성자이름*/
private String regusrnm;
/**
* 검색
*/
/** 검색_검색어 구분 */
private String srchKeywordDv;
/** 검색_검색어 */
private String srchKeyword;
/** 검색_등록일 구분 */
private String srchDtDv;
/** 검색_시작일 */
private String srchStartDate;
/** 검색_종료일 */
private String srchEndDate;
/** 검색_상담자 */
private String srchMngrNm;
/** 검색_처리 여부 */
private String[] srchProcsSttusCd;
/** 검색_상담내용 */
private String srchCnsltCn;
/*암호화키*/
private String secretKey;
}

View File

@@ -0,0 +1,83 @@
package com.wb.domainserver.domain.itrnt.mbr.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = false)
public class BOItrntMbrSrchVO extends AbstractVO {
private static final long serialVersionUID = 1L;
/*검색항목*/
private String srchDv;
/*검색키워드*/
private String srchKeyword;
/*타검색회원포함*/
private String srchOtherMbr;
/*가입일 시작*/
private String srchStrtRegistDt;
/*가입일 종료*/
private String srchEndRegistDt;
/*최종구매일 시작*/
private String srchStrtLastPurchsDt;
/*최종구매일 종료*/
private String srchEndLastPurchsDt;
/*생년 시작*/
private String srchStrtBrthYear;
/*생년 종료*/
private String srchEndBrthYear;
/*생월 시작*/
private String srchStrtBrthMonth;
/*생월 시작*/
private String srchEndBrthMonth;
/*성별*/
private String srchSex;
/*마케팅 수신 동의*/
private String srchMarktRecptnAgreAt;
/*등급*/
private String srchGrad;
/*마일리지 시작*/
private String srchStrtMlg;
/*마일리지 종료*/
private String srchEndMlg;
/*기준 구매일 시작*/
private String stdrStrtPurchsPd;
/*기준 구매일 종료*/
private String stdrEndPurchsPd;
/*기준 구매금액 시작*/
private String stdrStrtPurchsAmt;
/*기준 구매금액 종료*/
private String stdrEndPurchsAmt;
/*기준 구매횟수 시작*/
private String stdrStrtPurchsCnt;
/*기준 구매횟수 종료*/
private String stdrEndPurchsCnt;
/*기준 상품명*/
private String stdrGoodsNm;
/*비교 구매일 시작*/
private String cmprStrtPurchsPd;
/*비교 구매일 종료*/
private String cmprEndPurchsPd;
/*비교 구매금액 시작*/
private String cmprStrtPurchsAmt;
/*비교 구매금액 종료*/
private String cmprEndPurchsAmt;
/*비교 구매횟수 시작*/
private String cmprStrtPurchsCnt;
/*비교 구매횟수 종료*/
private String cmprEndPurchsCnt;
/*비교 상품명*/
private String cmprGoodsNm;
/********************************************
* 기본 값 확인
* *****************************************/
/*매장고유번호*/
private String strInnb;
/*시크릿키*/
private String secretKey;
/*쇼핑몰코드
* */
private String sopmalCd;
/*정렬조건*/
private String orderCnd;
}

View File

@@ -0,0 +1,10 @@
package com.wb.domainserver.domain.itrnt.mbr.vo;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = false)
public class ItrntMbrVO {
}

View File

@@ -0,0 +1,74 @@
package com.wb.domainserver.domain.itrnt.mbr.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = false)
public class ItrntSrchMbrVO extends AbstractVO {
/*검색항목*/
private String srchDv;
/*검색키워드*/
private String srchKeyword;
/*타검색회원포함*/
private String srchOtherMbr;
/*가입일 시작*/
private String srchStrtRegistDt;
/*가입일 종료*/
private String srchEndRegistDt;
/*최종구매일 시작*/
private String srchStrtLastPurchsDt;
/*최종구매일 종료*/
private String srchEndLastPurchsDt;
/*생년 시작*/
private String srchStrtBrthYear;
/*생년 종료*/
private String srchEndBrthYear;
/*생월 시작*/
private String srchStrtBrthMonth;
/*생월 시작*/
private String srchEndBrthMonth;
/*성별*/
private String srchSex;
/*마케팅 수신 동의*/
private String srchMarktRecptnAgreAt;
/*등급*/
private String srchGrad;
/*마일리지 시작*/
private String srchStrtMlg;
/*마일리지 종료*/
private String srchEndMlg;
/*기준 구매일 시작*/
private String stdrStrtPurchsPd;
/*기준 구매일 종료*/
private String stdrEndPurchsPd;
/*기준 구매금액 시작*/
private String stdrStrtPurchsAmt;
/*기준 구매금액 종료*/
private String stdrEndPurchsAmt;
/*기준 구매횟수 시작*/
private String stdrStrtPurchsCnt;
/*기준 구매횟수 종료*/
private String stdrEndPurchsCnt;
/*기준 상품명*/
private String stdrGoodsNm;
/*비교 구매일 시작*/
private String cmprStrtPurchsPd;
/*비교 구매일 종료*/
private String cmprEndPurchsPd;
/*비교 구매금액 시작*/
private String cmprStrtPurchsAmt;
/*비교 구매금액 종료*/
private String cmprEndPurchsAmt;
/*비교 구매횟수 시작*/
private String cmprStrtPurchsCnt;
/*비교 구매횟수 종료*/
private String cmprEndPurchsCnt;
/*비교 상품명*/
private String cmprGoodsNm;
/*쇼핑몰코드*/
private String sopmalCd;
/*정렬조건*/
private String orderCnd;
}