초기소스

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,299 @@
package com.wb.domainserver.domain.sopmal.mpage.act.controller;
import com.wb.domainserver.common.msg.GconeMessageSource;
import com.wb.domainserver.domain.sopmal.csc.vo.GnrlBbscttVO;
import com.wb.domainserver.domain.sopmal.mpage.act.vo.RvwVO;
import com.wb.domainserver.response.WnbtResponse;
import com.wb.domainserver.response.WnbtWebClientResponseHandler;
import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.communicate.*;
import com.wb.domainserver.util.file.service.FileStorageService;
import com.wb.domainserver.util.util.Util;
import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
/**
* MyActController Class (back)
*
* @author 홍길동
* @since 2024-02-05
* @version 1.0
* @see
*
* <pre>
* == (Modification Information) == 개정이력
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2024-03-05 김혜인 최초 생성
*
* </pre>
*/
@Controller
@RequestMapping("/sopmal/mpage/act")
@Slf4j
public class MyActController {
/** WebClient 호출을 위한 wrapper */
@Autowired
private WnbtWebClientResponseHandler responseHandler;
@Autowired
private SendToResrc sendToResrc;
/** 공통 메시지 처리를 위한 메시지 객체 */
@Autowired
private GconeMessageSource gconeMessageSource;
/** 파일 업로드 */
@Autowired
private FileStorageService filestore;
/**
* 상품 Q&A 조회
* @param bbsctt
* @return String
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/selectGoodsQnaInqire")
public String selectGoodsQnaInqire(HttpServletRequest request, ModelMap model, GnrlBbscttVO bbsctt){
bbsctt.setBbsTyCd("05");
bbsctt.setServerDv("sopmal");
bbsctt.setReqUrl("mpage");
//BO에서 API 호출
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttListInqire",bbsctt),
model,
"resultMap"
);
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire",bbsctt),
model,
"mpageResultMap"
);
return Util.getDeviceType(request)+"/mpage/act/MyGoodsQaR";
}
/**
* 상품 Q&A ajax 조회
* @param bbsctt
* @return String
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/selectGoodsQnaInqireAjax")
public ResponseEntity<?> selectGoodsQnaInqireAjax(GnrlBbscttVO bbsctt){
bbsctt.setBbsTyCd("05");
bbsctt.setServerDv("sopmal");
bbsctt.setReqUrl("mpage");
//게시글 노출 항목 설정값과 게시판 목록 조회
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttListInqire",bbsctt),
ReplyFromResrc::getReply
);
}
/**
* 상품 Q&A 파일정보 조회
* @param bbsctt
* @return String
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/selectFileInfo")
public ResponseEntity<?> selectFileInfo(HttpServletRequest request, ModelMap model, GnrlBbscttVO bbsctt){
bbsctt.setServerDv("sopmal");
//BO에서 API 호출
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOFileInfo",bbsctt),
ReplyFromResrc::getReply
);
}
/**
* 상품 Q&A 수정 폼 이동
* @param bbsctt
* @return String
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/selectGoodsQnaDtlUpdtForm")
public String selectGoodsQnaDtlUpdtForm(HttpServletRequest request, ModelMap model,GnrlBbscttVO bbsctt){
bbsctt.setServerDv("sopmal");
//BO에서 API 호출
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttUpdtPopupForm",bbsctt),
model,
"resultMap"
);
model.addAttribute("bbsctt", bbsctt);
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire",bbsctt),
model,
"mpageResultMap"
);
return Util.getDeviceType(request)+"/mpage/act/MyGoodsQnaDtlUpdtU";
}
/**
* 나의 리뷰 조회 폼
* @param bbsctt
* @return ResponseEntity
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/selectMyRvwInqireForm")
public String selectMyRvwInqireForm(HttpServletRequest request, ModelMap model,GnrlBbscttVO bbsctt){
//BO에서 API 호출
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBORvwBnefInfo",bbsctt),
model,
"mlgAccmlNtc"
);
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire",bbsctt),
model,
"mpageResultMap"
);
model.addAttribute("vo",bbsctt);
return Util.getDeviceType(request)+"/mpage/act/MyRvwRForm";
}
/**
* 나의 리뷰 조회 작성 가능한 리뷰
* @param rvwVO
* @return String
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/selectWritngPosblRvwInqire")
public String selectWritngPosblRvwInqire(HttpServletRequest request, ModelMap model,RvwVO rvwVO){
rvwVO.setRvwBbscttDv("rvw");
rvwVO.setServerDv("sopmal");
//BO에서 API 호출
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOWritPosblRvw",rvwVO),
model,
"resultMap"
);
return Util.getDeviceType(request)+"/mpage/act/WritngPosblRvwR";
}
/**
* 나의 리뷰 조회 작성 가능한 리뷰 ajax(인피니트스크롤)
* @param rvwVO
* @return String
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/selectWritngPosblRvwInqireAjax")
public ResponseEntity<?> selectWritngPosblRvwInqireAjax(RvwVO rvwVO){
rvwVO.setRvwBbscttDv("rvw");
rvwVO.setServerDv("sopmal");
//BO에서 API 호출
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOWritPosblRvw",rvwVO),
ReplyFromResrc::getReply
);
}
/**
* 나의 리뷰 조회 (나의 리뷰)
* @param rvwVO
* @return String
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/selectMyRvwInqire")
public String selectMyRvwInqire(HttpServletRequest request, ModelMap model,RvwVO rvwVO){
rvwVO.setReqUrl("mpage");
rvwVO.setServerDv("sopmal");
rvwVO.setUseAt("Y");
//BO에서 API 호출
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOMyRvwListInqire",rvwVO),
model,
"resultMap"
);
return Util.getDeviceType(request)+"/mpage/act/MyRvwR";
}
/**
* 나의 리뷰 조회 (나의 리뷰) ajax (인피니트스크롤)
* @param rvwVO
* @return String
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/selectMyRvwInqireAjax")
public ResponseEntity<?> selectMyRvwInqireAjax(RvwVO rvwVO){
rvwVO.setReqUrl("mpage");
rvwVO.setServerDv("sopmal");
rvwVO.setUseAt("Y");
//BO에서 API 호출
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOMyRvwListInqire",rvwVO),
ReplyFromResrc::getReply
);
}
/**
* 리뷰 작성 등록 폼
* @param rvwVO
* @return String
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/selectRvwWritngPopupForm")
public String selectRvwWritngPopupForm(HttpServletRequest request, ModelMap model, RvwVO rvwVO){
rvwVO.setRvwBbscttDv("rvw");
rvwVO.setServerDv("sopmal");
//리뷰 등록 가능 여부 true시 등록폼 호출
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttRegistPopupForm",rvwVO),
model,
"resultMap"
);
return Util.getDeviceType(request)+"/mpage/act/RvwWritngPopupC";
}
/**
* 게시글 삭제
*
* @param bbsctt
* @return ResponseEntity
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/deleteRvwBbscttDel", method = RequestMethod.POST)
public ResponseEntity<WnbtResponse> deleteRvwBbscttDel(@RequestBody GnrlBbscttVO bbsctt) {
bbsctt.setServerDv("sopmal");
//BO에서 API 호출
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/updateBOBbscttDel",bbsctt),
ReplyFromResrc::getReply
);
}
/**
* 리뷰 간편 등록
*
* @param vo
* @return ResponseEntity
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/selectRvwEasyRegistForm", method = RequestMethod.POST)
public String selectRvwEasyRegistForm(@RequestBody RvwVO vo, ModelMap model, HttpServletRequest request) {
vo.setRvwBbscttDv("rvw");
//BO에서 API 호출
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttRegistPopupForm", vo),
model,
"resultMap"
);
return Util.getDeviceType(request)+"/mpage/act/RvwEasyRegistC";
}
}

View File

@@ -0,0 +1,21 @@
package com.wb.domainserver.domain.sopmal.mpage.act.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = false)
public class BbsFormAnswVO extends AbstractVO{/**
*
*/
private static final long serialVersionUID = 1030532645994110994L;
// 답변 출력
/** 게시글 고유번호 */
private Integer bbscttInnb;
/** 문항 고유번호 */
private Integer qesitmInnb;
/** 답변내용 */
private String answCn;
}

View File

@@ -0,0 +1,24 @@
package com.wb.domainserver.domain.sopmal.mpage.act.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = false)
public class BbsFormItmVO extends AbstractVO{
/**
*
*/
private static final long serialVersionUID = 8087305150158091337L;
/** 문항 번호*/
private String qesitmInnb;
/** 항목고유 id*/
private String itmInnb;
/** 항목내용*/
private String itmCn;
/** 항목순서*/
private Integer itmOrdr;
}

View File

@@ -0,0 +1,39 @@
package com.wb.domainserver.domain.sopmal.mpage.act.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
@Data
@EqualsAndHashCode(callSuper = false)
public class BbsFormVO extends AbstractVO{
/**
*
*/
private static final long serialVersionUID = 1607485104712731512L;
/** 게시판 문항 고유번호*/
private String qesitmInnb;
/** 게시판 id*/
private String bbsInnb;
/** 추가항목구분 */
private String aditItmDv;
/** 문항명 */
private String qesitmNm;
/** 문항설명 */
private String qesitmDc;
/** 문항유형 */
private String itmTy;
/** 문항순서 */
private Integer qesitmOrdr;
/** 사용여부 */
private String useAt;
/** 게시판 문항의 요소들*/
private List<BbsFormItmVO> bbsFormItmList;
}

View File

@@ -0,0 +1,58 @@
package com.wb.domainserver.domain.sopmal.mpage.act.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = false)
public class CmVO extends AbstractVO {
private static final long serialVersionUID = 1L;
/** 댓글고유번호 */
private String cmInnb;
/** 게시글고유번호 */
private String bbscttInnb;
/** 게시판ID */
private String bbsId;
/** 부모댓글고유번호 */
private String parntsCmInnb;
/** 회원고유번호 */
private Integer mbrInnb;
/** 회원ID */
private String mbrid;
/** 회원명 */
private String mbrNm;
/** DEPTH */
private Integer depth;
/** 내용 */
@NotBlank(message = "내용")
@Length(min = 0, max = 100, message = "내용")
private String cn;
/** 비밀번호 */
private String password;
/** 비밀댓글여부 */
private String secretBbscttAt;
/** IP */
private String ip;
/** 사용여부 */
private String useAt;
/** 삭제작업자 */
private Integer delusr;
/** 삭제일시 */
private Date delDt;
/**작성자 구분 코드*/
private String regusrDvCd;
/**쇼핑몰코드*/
private String sopmalCd;
/** 신규댓글 */
private String newCm;
/** 댓글삭제리스트 */
private String[] delCmInnbArr;
/*요청페이지구분 쇼핑몰인지 관리자인지*/
private String reqPageDv;
}

View File

@@ -0,0 +1,23 @@
package com.wb.domainserver.domain.sopmal.mpage.act.vo;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = false)
public class DelInfoVO{
/** 삭제 회원 구분 코드 */
private String mbrDvCd;
/** 삭제 회원 고유번호 */
private String regusrDvCd;
/** 삭제 회원 고유번호 */
private String regusr;
/** 상품 고유번호 */
private String goodsInnb;
/** 게시글 고유번호*/
private String bbscttInnb;
}

View File

@@ -0,0 +1,394 @@
package com.wb.domainserver.domain.sopmal.mpage.act.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import java.util.HashMap;
import java.util.List;
@Data
@EqualsAndHashCode(callSuper = false)
public class RvwVO extends AbstractVO {
private static final long serialVersionUID = 1L;
/** 쇼핑몰 코드 */
private String sopmalCd;
/**
* 리뷰정보 (fm_shop_goods)
*/
/** 게시글 고유정보 */
private Integer bbscttInnb;
/** 게시판 고유번호 */
private Integer bbsInnb;
/** 판매상품 고유번호 */
private Integer sleGoodsInnb;
/** 주문상품고유번호 */
private Integer ordrGoodsInnb;
/** 주문상품옵션고유번호 */
private Integer ordrGoodsOptnInnb;
/*주문고유번호*/
private String ordrInnb;
/** 주문상품옵션구분코드 */
private String ordrGoodsOptnDvCd;
/** 베스트여부 */
private String bstAt;
/** 등록 회원고유번호 */
private Integer mbrInnb;
/** (등록아이디) */
private String mbrid;
/** (등록자명) */
private String mbrNm;
/** 내용 */
private String cn;
/** 조회건수 */
private Integer inqireCnt;
/** 댓글건수 */
private Integer cmCnt;
/** (다중",") */
private Integer evlScore;
/** 평균점수 */
private Integer avrgScore;
/** 에디터 사용여부 */
private String editrUseAt;
/** 포토리뷰여부 */
private String photoRvwAt;
/** IP */
private String ip;
/** 삭제여부 */
private String delAt;
/** 삭제일시 */
private String delDt;
/** 노출등록자이름 */
private Integer expsrRegusrNm;
// 추가항목 정보(FM_BOARD_ADDITM)
private List<com.wb.domainserver.domain.sopmal.mpage.act.vo.BbsFormVO> bbsFormVoList;
// 추가 답변 내용 (FM_BOARD_ADDITM)
private List<com.wb.domainserver.domain.sopmal.mpage.act.vo.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;
/**
* 첨부파일 정보
*/
/* 파일 고유번호 */
private String bbscttAtchmnfilInnb;
/** 원본파일명 */
private String orginlFilNm;
/** 변환파일명 */
private String sysFilNm;
/** 파일타입 */
private String filTy;
/** 파일크기 */
private String filMg;
/** 파일경로 */
private String filCours;
/** 파일정보 */
private List<HashMap<String, Object>> fileInfo;
/*파일 존재여부*/
private String filExtAt;
/*현존 파일 정보*/
private String extFiles;
/*기존 파일 정보*/
private String filesInfo;
/*기존 파일 변화 여부*/
private String extFilChangeAt;
/*대표이미지 첨부 구분*/
private String represntFilAt;
/*파일 수정여부*/
private String filChangeAt;
/*파일 허용 확장자*/
private String acceptFileExtensions;
/** 댓글 리스트 */
private String[] cmList;
private String boardAnswInnb;
private String bbsNm;
/** 항목고유번호 리스트 */
private String[] itmInnbAns;
/** 답변내용 리스트 */
private String[] answCnAns;
private String[] qesitmInnbAns;
/** 항목고유번호 (분류) */
private String itmInnbDiv;
/** 답변내용 (분류) */
private String answCnDiv;
private String qesitmInnbDiv;
/*
* 상세 조회
*/
/*상품고유번호*/
private String goodsInnb;
/*추천상품고유번호*/
private String recomendGoodsInnb;
/** 상세조회와 페이지 구분처리 */
private String dtlPop;
/*상품 고유번호 배열*/
private String[] goodsInnbArr;
/*주문고유번호*/
private String[] ordrInnbArr;
/**
* 게시글 정보
*/
/** 부모게시글고유번호 */
private String parntsBbscttInnb;
/** 게시판ID */
private String bbsId;
/** DEPTH */
private Integer depth;
/*회원구분코드*/
private String mbrDvCd;
/** 등록자구분코드 */
private String regusrDvCd;
/** 등록자ID */
private String regusrId;
/** 등록자명 */
private String regusrNm;
/** 비밀번호 */
@Length(min = 0, max = 20, message = "비밀번호")
private String password;
/** 제목 */
@NotBlank(message = "제목")
@Length(min = 0, max = 100, message = "제목")
private String sj;
/** 댓글사용여부 */
private String cmUseAt;
/** 추천건수 */
private Integer recomendCnt;
/** 비추천건수 */
private Integer nonrecomendCnt;
/** 정렬순서 */
private Integer sortOrdr;
/** 정렬순서여부 */
private String sortOrdrAt;
/** 비밀글여부 */
private String secretBbscttAt;
/** 공지여부 */
private String ntcAt;
/** 노출여부 */
private String expsrAt;
/** 온라인여부 */
private String onlineAt;
/** 오프라인여부 */
private String oflneAt;
/** 게시기간설정여부 */
private String ntcePdSetupAt;
/** 게시시작일자 */
private String ntceBgnDe;
/** 게시종료일자 */
private String ntceEndDe;
/** 공지기간설정여부 */
private String ntcPdSetupAt;
/** 공지시작일자 */
private String ntcBgnDe;
/** 공지종료일자 */
private String ntcEndDe;
/** 메인노출여부 */
private String mainExpsrAt;
/** NPay 게시글 일련번호 */
private String npayBbscttSnb;
/** NPay 답변 전송여부*/
private String npayAnswTrnsmisAt;
/** NPay 답변번호*/
private String npayAnswNb;
/** NPay 상품주문번호*/
private String npayGoodsOrdrnb;
/** NPay 리뷰유형코드*/
private String npayRvwTyCd;
/** AGENT */
private String agent;
/** 사용여부 */
private String useAt;
/**
* 검색조건
*/
/** 검색구분 */
private String srchDv;
/** 검색어 */
private String srchKeyword;
/*검색어 배열(상품상세 키워드 검색)*/
private String[] srchKeywordArr;
/** 검색 시작일 */
private String srchStartDt;
/** 검색 종료일 */
private String srchEndDt;
/** 게시판 이름 코드 */
private String bbsTyCd;
/** 답변 상태 */
private String answSttus;
/** 분류명 */
private String srchitmInnb;
/** 네이버페이 후기 여부*/
private String npayAt;
/** 주문번호 후기 여부*/
private String srchOrdrInnb;
/** 댓글 여부*/
private String srchCmAt;
/** 기간 */
private String datePeriod;
/** 항목내용 */
private String itmCn;
/* 사용자 > 상품 상세 > 리뷰 정렬*/
private String sortDv;
/**
* 게시글추가문항답변
*/
/** 문항답변고유번호 */
private String qesitmAnswInnb;
/** 문항고유번호 */
private String qesitmInnb;
/** 문항필수여부 */
private String qesitmEssntlAt;
/** 문항사용여부 */
private String qesitmUseAt;
/** 문항순서 */
private String qesitmOrdr;
/** 항목고유번호 */
private String itmInnb;
/** 답변내용 */
private String answCn;
/** 문항필수여부(배열) */
private String[] qesitmEssntlAtArr;
/** 문항고유번호(배열) */
private String[] qesitmInnbArr;
/** 문항 명(배열) */
private String[] qesitmNmArr;
/** 항목고유번호(배열) */
private String[] itmInnbArr;
/** 답변내용(배열) */
private String[] answCnArr;
/** 답변 여부(배열) */
private String[] qesitmAtArr;
/** 타입 코드 */
private String[]itmTyCdArr;
/** 리뷰 문항 필수 여부 배열*/
private String[] rvwQesitmEssntlAtArr;
/** 리뷰 문항 명 배열*/
private String[] rvwQesitmNmArr;
/** 리뷰 답변 여부 배열*/
private String[] rvwQesitmAtArr;
/** 리뷰 문항고유번호 배열*/
private String[] rvwQesitmInnbArr;
/** 리뷰 평점 배열*/
private String[] evlScoreArr;
/** 리뷰 항목고유번호 배열*/
private String[] rvwItmInnbArr;
/** 선택삭제 게시글리스트 */
private String[] delBbscttInnbArr;
/**
* 권한
*/
//권한 구분 (REDNG : 읽기권한, REGIST: 쓰기권한, CM: 댓글등록권한)
private String authDv;
//권한 결과값
private String authResult;
/*
* 요청 값
*/
/*요청 페이지 구분(고객센터=>csc , 서브페이지=>subPage, 이용안내 => useGudiance, crm => crm)*/
private String reqUrl;
/* 서버 구분 sopmal or mngr*/
private String serverDv;
/*상세 구분*/
private String dtlAt;
/*사용자 등록,수정시 목록이동 or 등록,수정폼 유지*/
private String listAt;
/*리뷰,게시글 구분*/
private String rvwBbscttDv;
/**
* 게시판 설정
*/
/* 파일 첨부 여부*/
private String filAtch;
/*게시글발송방식코드*/
private String bbscttSndngMthCd;
/*sms 관련*/
private String bbscttSndngDvCd;
/*삭제 관련*/
/*회수 마일리지 관련 정보*/
private List<DelInfoVO> delInfoArr;
/*모바일 pc 구분*/
private String diviceDv;
}

View File

@@ -0,0 +1,446 @@
package com.wb.domainserver.domain.sopmal.mpage.bnef.controller;
import com.wb.domainserver.common.msg.GconeMessageSource;
import com.wb.domainserver.domain.sopmal.mpage.bnef.vo.MyBnefCashVO;
import com.wb.domainserver.domain.sopmal.mpage.bnef.vo.MyBnefCouponVO;
import com.wb.domainserver.domain.sopmal.mpage.bnef.vo.MyBnefMbrGradVO;
import com.wb.domainserver.domain.sopmal.mpage.bnef.vo.MyBnefMlgVO;
import com.wb.domainserver.exception.WnbtRestException;
import com.wb.domainserver.response.WnbtResponse;
import com.wb.domainserver.response.WnbtWebClientResponseHandler;
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.util.Util;
import jakarta.servlet.http.HttpServletRequest;
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.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/sopmal/mpage/bnef")
@Slf4j
public class MyBnefController {
@Autowired
private WnbtWebClientResponseHandler responseHandler;
@Autowired
private SendToResrc sendToResrc;
@Autowired
private GconeMessageSource gconeMessageSource;
/**
* 회원 등급 혜택 조회
* @param request
* @param model
* @param gradVO
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/selectMbrGradInqire")
public String selectCscMainForm(HttpServletRequest request, ModelMap model, MyBnefMbrGradVO gradVO) {
gradVO.setServerDv("sopmal");
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/setup/gradbnef/selectBOMbrGradListInqire", gradVO),
model,
"resultMap"
);
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", gradVO),
model,
"mpageResultMap"
);
return Util.getDeviceType(request) + "/mpage/bnef/MbrGradR";
}
/**
* 마이페이지 > 마일리지 내역 이동
* @param mlgVO
* @param model
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/selectMlgDtlsInqireForm")
public String selectMlgDtlsInqireForm(MyBnefMlgVO mlgVO, ModelMap model, HttpServletRequest request) {
mlgVO.setServerDv("sopmal");
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/selectBOMlgManagePopupForm", mlgVO),
model,
"resultMap"
);
model.addAttribute("paramVO", mlgVO);
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", mlgVO),
model,
"mpageResultMap"
);
return Util.getDeviceType(request) + "/mpage/bnef/MlgDtlsRForm";
}
/**
* 마이페이지 > 마일리지 목록 조회
* @param mlgVO
* @param model
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/selectMlgDtlsInqire")
public String selectMlgDtlsInqire(MyBnefMlgVO mlgVO, ModelMap model, HttpServletRequest request) {
mlgVO.setServerDv("sopmal");
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/selectBOMlgListInqire", mlgVO),
model,
"resultMap"
);
model.addAttribute("paramVO", mlgVO);
return Util.getDeviceType(request) + "/mpage/bnef/MlgDtlsR";
}
/**
* 마이페이지 > 마일리지 목록 조회 > 스크롤
* @param mlgVO
* @param model
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/selectMlgDtlsScrolInqire")
public ResponseEntity<WnbtResponse> selectMlgDtlsScrolInqire(MyBnefMlgVO mlgVO) {
mlgVO.setServerDv("sopmal");
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/selectBOMlgListInqire", mlgVO),
ReplyFromResrc::getReply
);
}
/**
* 쿠폰 내역 폼 이동
*
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/selectCouponDtlsForm")
public String selectCouponDtlsForm(MyBnefCouponVO couponVO, ModelMap model, HttpServletRequest request) {
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOHoldCouponDtlsForm", couponVO),
model,
"resultMap"
);
model.addAttribute("paramVO", couponVO);
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", couponVO),
model,
"mpageResultMap"
);
return Util.getDeviceType(request) + "/mpage/bnef/CouponDtlsRForm";
}
/**
* 사용가능 쿠폰 조회
*
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/selectCouponUsePosblDtlsInqire")
public String selectCouponUsePosblDtlsInqire(MyBnefCouponVO couponVO, ModelMap model, HttpServletRequest request) {
couponVO.setServerDv("sopmal");
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponUsePosblDtlsInqire", couponVO),
model,
"resultMap"
);
model.addAttribute("paramVO", couponVO);
return Util.getDeviceType(request) + "/mpage/bnef/UsePosblCouponDtlsR";
}
/**
* 마이페이지 > 쿠폰 > 사용가능 쿠폰 조회 > 스크롤
* @param couponVO
* @param model
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/selectCouponUsePosblDtlsScrolInqire")
public ResponseEntity<WnbtResponse> selectCouponUsePosblDtlsScrolInqire(MyBnefCouponVO couponVO) {
couponVO.setServerDv("sopmal");
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponUsePosblDtlsInqire", couponVO),
ReplyFromResrc::getReply
);
}
/**
* 쿠폰 다운로드 가능 조회
*
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/selectDwldCouponDtlsInqire")
public String selectDwldCouponDtlsInqire(MyBnefCouponVO couponVO, ModelMap model, HttpServletRequest request) {
couponVO.setServerDv("sopmal");
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBODwldCouponDtlsInqire", couponVO),
model,
"resultMapDwld"
);
model.addAttribute("paramVO", couponVO);
// return "sopmal/mpage/bnef/DwldCouponDtlsR";
return Util.getDeviceType(request) + "/mpage/bnef/DwldCouponDtlsR";
}
/**
* 마이페이지 > 쿠폰 > 다운로드 가능 쿠폰 조회 > 스크롤
* @param couponVO
* @param model
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/selectDwldCouponDtlsScrolInqire")
public ResponseEntity<WnbtResponse> selectDwldCouponDtlsScrolInqire(MyBnefCouponVO couponVO) {
couponVO.setServerDv("sopmal");
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBODwldCouponDtlsInqire", couponVO),
ReplyFromResrc::getReply
);
}
/**
* 쿠폰 정보 조회 팝업
*
* @param CouponVO couponVO
* @param model
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectCouponDtlInfoInqirePopup")
public String selectCouponDtlInfoInqirePopup(MyBnefCouponVO couponVO, ModelMap model, HttpServletRequest request) {
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBOCouponInfoInqirePopup", couponVO),
model,
"resultMap"
);
// return "sopmal/mpage/bnef/UsePosblCouponDtlPopupR";
return Util.getDeviceType(request) + "/mpage/bnef/UsePosblCouponDtlPopupR";
}
/**
* 쿠폰 정보 조회 팝업
*z
* @param CouponVO couponVO
* @param model
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value = "/selectDwldYCouponDtlInfoInqirePopup")
public String selectDwldYCouponDtlInfoInqirePopup(MyBnefCouponVO couponVO, ModelMap model, HttpServletRequest request) {
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectBODwldYCouponInfoInqirePopup", couponVO),
model,
"resultMap"
);
// return "sopmal/mpage/bnef/UsePosblCouponDtlPopupR";
return Util.getDeviceType(request) + "/mpage/bnef/UsePosblCouponDtlPopupR";
}
/**
* 쿠폰 코드 등록 오프라인 쿠폰 등록 ( 인증번호 쿠폰 )
*
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/insertCouponRegist")
public ResponseEntity<WnbtResponse> insertCouponRegist(@Validated MyBnefCouponVO couponVO, BindingResult bindingResult) {
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/insertBOCodeCouponRegist", couponVO),
ReplyFromResrc::getReply
);
}
/**
* (모든) 쿠폰 다운로드
*
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/insertDwldCouponAllRegist")
public ResponseEntity<WnbtResponse> insertDwldCouponAllRegist(@Validated MyBnefCouponVO couponVO, BindingResult bindingResult) {
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/insertBODwldCouponAllRegist", couponVO),
ReplyFromResrc::getReply
);
}
/**
* 쿠폰 다운로드
*
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/insertDwldCouponRegist")
public ResponseEntity<WnbtResponse> insertDwldCouponRegist(@Validated MyBnefCouponVO couponVO, BindingResult bindingResult) {
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/insertBODwldCouponAllRegist", couponVO),
ReplyFromResrc::getReply
);
}
/**
* 쿠폰 다운로드 여부 조회 (이벤트 페이지)
*
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/selectCouponDownYn")
public ResponseEntity<WnbtResponse> selectCouponDownYn(@Validated MyBnefCouponVO couponVO) {
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/promtn/coupon/selectCouponDownYn", couponVO),
ReplyFromResrc::getReply
);
}
/***************************************************************
* 마이페이지 > 충전형 마일리지 관련 서비스 시작
***************************************************************/
/**
* 마이페이지 > 충전형 마일리지 내역 이동
* @param mlgVO
* @param model
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/selectCashDtlsInqireForm")
public String selectCashDtlsInqireForm(MyBnefMlgVO mlgVO, ModelMap model, HttpServletRequest request) {
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/selectBOCashBlce", mlgVO),
model,
"resultMap"
);
model.addAttribute("paramVO", mlgVO);
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 충전형 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", mlgVO),
model,
"mpageResultMap"
);
return Util.getDeviceType(request) + "/mpage/bnef/CashDtlsRForm";
}
/**
* 마이페이지 > 충전형 마일리지 목록 조회
* @param mlgVO
* @param model
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/selectCashDtlsInqire")
public String selectCashDtlsInqire(MyBnefMlgVO mlgVO, ModelMap model, HttpServletRequest request) {
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/selectBOCashList", mlgVO),
model,
"resultMap"
);
model.addAttribute("paramVO", mlgVO);
return Util.getDeviceType(request) + "/mpage/bnef/CashDtlsR";
}
/**
* 마이페이지 > 충전형 마일리지 목록 조회 > 스크롤
* @param mlgVO
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/selectCashDtlsScrolInqire")
public ResponseEntity<WnbtResponse> selectCashDtlsScrolInqire(MyBnefMlgVO mlgVO) {
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/selectBOCashList", mlgVO),
ReplyFromResrc::getReply
);
}
/**
* 마이페이지 > 충전형 마일리지 > 상품권번호조회
* @param mlgVO
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/selectGiftCardCrtfcNb")
public ResponseEntity<WnbtResponse> selectGiftCardCrtfcNb(MyBnefCashVO vo) {
if (vo.getCrtfcNb() == null || vo.getCrtfcNb().isEmpty()) {
throw new WnbtRestException("상품권 인증번호를 입력해주세요");
}
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/selectBOGiftCardCrtfcNb", vo),
ReplyFromResrc::getReply
);
}
/**
* 마이페이지 > 충전형 마일리지 > 상품권 등록
* @param mlgVO
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/insertGiftCard")
public ResponseEntity<WnbtResponse> insertGiftCard(MyBnefCashVO vo) {
if (vo.getPinNb() == null || vo.getPinNb().isEmpty()) {
throw new WnbtRestException("상품권 pin 번호를 입력해주세요");
}
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mlg/insertBOCashReg", vo),
ReplyFromResrc::getReply
);
}
}

View File

@@ -0,0 +1,19 @@
package com.wb.domainserver.domain.sopmal.mpage.bnef.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = false)
public class MyBnefCashVO extends AbstractVO {
private static final long serialVersionUID = 1L;
/*상품권 인증번호*/
private String crtfcNb;
/*상품권 pin 번호*/
private String pinNb;
}

View File

@@ -0,0 +1,194 @@
package com.wb.domainserver.domain.sopmal.mpage.bnef.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigInteger;
import java.util.List;
/**
*
* 마이페이지 쿠폰 VO
* @author 추지훈.
* @since 2024-03-05
* @version 1.0
* @see
*
* <pre>
* == (Modification Information) == 개정이력
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2024-03-05 추지훈. 최초 생성
*
* </pre>
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class MyBnefCouponVO extends AbstractVO {
private static final long serialVersionUID = 1L;
/**
* 쿠폰정보
*/
/** 다운로드 쿠폰 고유번호 */
private BigInteger dwldCouponInnb;
/** 쿠폰 고유번호 */
private Integer couponInnb;
/** 회원 고유번호 */
private Integer mbrInnb;
/** 회원 구분 코드 */
private String mbrDvCd;
/** 회원 명 */
private String mbrNm;
/** 회원 휴대폰번호 */
private String mbtlnb;
/** 쿠폰팩 고유번호 */
private Integer cupnpkInnb;
/** 오프라인쿠폰 고유번호 */
private Integer oflneCouponInnb;
/** 쿠폰 발송 고유번호 */
private Integer couponSndngInnb;
/** 쿠폰 발송 유형코드 */
private String couponSndngTy;
/** 발송구분 */
private String sndngDv;
/** 발송대상 구분 */
private String sndngTrgetDv;
/** 쇼핑몰 코드 */
private String sopmalCd;
/** 다운로드 쿠폰팩명 */
private String cupnpkNm;
/** 다운로드 쿠폰팩 설명 */
private String cupnpkDc;
/** 다운로드 쿠폰명 */
private String coupNm;
/** 다운로드 쿠폰 설명 */
private String couponDc;
/** 사용환경코드 */
private String useEnvrnCd;
/** 단독사용, 공동사용 */
private String otrCouponSmtmUseAt;
/** 중복다운로드여부 */
private String dplctDwldAt;
/** 중복할인여부 */
private String dplctDscntAt;
/** 사용가능금액 */
private String usePosblAmt;
/** 상품카테고리 제한구분( 전체상품(all), 상품/카테고리(issue) ) */
private String goodsCtgryLmttDv;
/** 유효기간시작일시 */
private String validpdBgnDt;
/** 유효기간시작일시 포맷 yyyy-mm-dd */
private String validpdBgnDe;
/** 유효기간종료일시 */
private String validpdEndDt;
/** 유효기간종료일시 포맷 yyyy-mm-dd */
private String validpdEndDe;
/** 유효기간 남은 일수 */
private String validpdDay;
/** 쿠폰 사용여부 */
private String couponUseAt;
/** 쿠폰 사용 일시 */
private String couponUseDt;
/** 오프라인쿠폰 인증번호 */
private String oflneCouponCrtnb;
/** 사용처구분 */
private String useplcDv;
/** 복원 원본쿠폰 */
private String recovryOrginlCoupon;
/** 사용자 다운로드할 쿠폰 목록 */
private List<UserDwldVO> downloadCouponList;
// 쿠폰 혜택
/** 다운로드 쿠폰 혜택 고유번호 */
private Integer dwldCouponBnefInnb;
/** 혜택구분 */
private String bnefDv;
/** 상품할인구분 */
private String goodsDscntDv;
/** 추가할인금액 */
private String aditDscntAmt;
/** 추가할인비율 */
private String aditDscntRt;
/** 할인최대금액 */
private String dscntMxmmAmt;
/** 무료, 금액 */
private String dlvyAmtDscntDv;
/** 배송비할인금액 */
private String dlvyAmtDscntAmt;
/** 배송비최대할인금액 */
private String dlvyAmtMxmmDscntAmt;
// 쿠폰 적용 상품
/** 쿠폰 적용상품 고유번호 */
private Integer dwldCouponApplcGoodsInnb;
/** 상품적용구분 */
private String goodsApplcDv;
/** 판매상품 고유번호 */
private Integer sleGoodsInnb;
/** 혜택 적용 판매상품 고유번호 리스트 */
private List<Integer> sleGoodsInnbList;
/** 혜택 제외 판매상품 고유번호 리스트 */
private List<Integer> ExclSleGoodsInnbList;
/** 카테고리 ID */
private Integer ctgryId;
/** 혜택 적용 카테고리 ID 리스트 */
private List<Integer> ctgryIdList;
/** 혜택 제외 카테고리 ID 리스트 */
private List<Integer> ExclCtgryIdList;
// 검색조건
/** 검색_회원아이디, 회원명 */
private String searchKeyword;
/** 검색_발급일 시작 */
private String srchStartDate;
/** 검색_발급일 종료 */
private String srchEndDate;
/** 검색_다운로드쿠폰사용여부 */
private String srchUseAt;
/** 쿠폰 발급 혹은 쿠폰 등록 시 쿠폰 고유번호 */
private String couponArray;
/** 쿠폰 발급 혹은 쿠폰 등록 시 쿠폰 쇼핑몰 코드*/
private String[] sopmalArray;
/** 쿠폰 다운로드 시 쿠폰 쇼핑몰 코드 */
private String couponSopmalCd;
/** 쿠폰 다운로드 시 쿠폰 발송 고유번호 배열 */
private String couponSndngArray;
/** 그룹 코드 */
private String groupCd;
/** 주문 고유번호 ( 주문 쿠폰 사용 내역 조회 ) */
private String ordrInnb;
/** JSON 형태의 회원 리스트 ( 발급하기 ) */
private String jsonMbrList;
private String serverDv;
}

View File

@@ -0,0 +1,44 @@
package com.wb.domainserver.domain.sopmal.mpage.bnef.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
*
* 마이페이지 쿠폰 VO
* @author 추지훈.
* @since 2024-03-05
* @version 1.0
* @see
*
* <pre>
* == (Modification Information) == 개정이력
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2024-03-05 추지훈. 최초 생성
*
* </pre>
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class MyBnefMbrGradVO extends AbstractVO {
private static final long serialVersionUID = 1L;
/**
* 회원 등급 정보
*/
/** 쇼핑몰 코드 */
private String sopmalCd;
/** 모바일_서버구분 */
private String serverDv;
}

View File

@@ -0,0 +1,113 @@
package com.wb.domainserver.domain.sopmal.mpage.bnef.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = false)
public class MyBnefMlgVO extends AbstractVO {
private static final long serialVersionUID = 1L;
/**
* 마일리지 정보
*/
/** 마일리지 고유번호 */
private Integer mlgInnb;
/** 주문고유번호 */
private Integer ordrInnb;
/** 회원고유번호 */
private Integer mbrInnb;
/** 회원구분코드 */
private String mbrDvCd;
/** 쇼핑몰 코드 */
private String sopmalCd;
/** 게시글고유번호 */
private Integer bbscttInnb;
/** 주문코드 */
private String ordrCd;
/** 마일리지구분 */
private String mlgDvCd;
/** 마일리지적립구분 */
private String mlgAccmlDvCd;
/** 마일리지적용구분 */
/** 적립(지급) : 리뷰(일반,포토,한달),구매,이벤트, 관리자 사용(차감, 소멸) : 구매, 관리자, 기간만료 */
private String mlgApplcDvCd;
/** 마일리지적용사유 */
private String mlgApplcResn;
/** 적립금액 */
private BigDecimal accmlmnyAmt;
/** 잔액 */
private BigDecimal blce;
/** 손실 */
private BigDecimal loss;
/** 사용가능시작일시 */
private Date usePosblBgnDt;
/** 사용가능종료일시 */
@DateTimeFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSX")
private Date usePosblEndDt;
/** 주문정보 */
private String ordrInfo;
/** 관리코드 */
private String manageCd;
/** 관리메모 */
private String manageMemo;
/** 만료여부 */
private String endAt;
/** 취소여부 */
private String canclAt;
/** 취소일시 */
private Date canclDt;
/** 소멸 배치 묶음 */
private String extshBatchBundle;
/** 온오프 구분 */
private String onlineOflneDvCd;
/** 매장고뷰번호 */
private Integer strInnb;
/** 매장코드 */
private String strCd;
/** 매장명 */
private Integer strnm;
/** 매장구분 */
private String strDvCd;
/** 포스코드 */
private String posCd;
/** 등록자구분 */
private String regusrDvCd;
/** 수정자구분 */
private String updusrDvCd;
/** 마일리지 유효기간 */
private long mlgValidDt;
// 검색
/** 검색_마일리지 적립 구분코드 */
private String srchMlgAccmlDvCd;
/** 검색_브랜드명 */
private String srchSopmalCd;
/** 검색_시작날짜 */
private String srchStartDate;
/** 검색_종료날짜 */
private String srchEndDate;
/** 유효기간 수정_종료일자 */
private String usePosblEndDtStr;
private String serverDv;
// 사용자 > 마일리지 내역
private String bgnDt;
private String endDt;
}

View File

@@ -0,0 +1,63 @@
package com.wb.domainserver.domain.sopmal.mpage.bnef.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigInteger;
/**
*
* 쿠폰 VO
* @author 추지훈
* @since 2023-12-11
* @version 1.0
* @see
*
* <pre>
* == (Modification Information) == 개정이력
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2023-12-11 추지훈 최초 생성
*
* </pre>
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class UserDwldVO extends AbstractVO {
private static final long serialVersionUID = 1L;
/** 다운로드쿠폰 고유번호 */
private BigInteger dwldCouponInnb;
/** 쿠폰 고유번호 */
private Integer couponInnb;
/** 쇼핑몰 코드 */
private String sopmalCd;
/** 회원고유번호 */
private Integer mbrInnb;
/** 회원구분코드 */
private String mbrDvCd;
/** 쿠폰팩고유번호 */
private Integer cupnpkInnb;
/** 오프라인쿠폰 고유번호 */
private Integer oflneCouponInnb;
/** 쿠폰발송 고유번호 */
private Integer couponSndngInnb;
/** 쿠폰팩 명 */
private String cupnpkNm;
/** 쿠폰팩 설명 */
private String cupnpkDc;
/** 회원 명 */
private String mbrNm;
/** 휴대폰번호 */
private String mbtlnb;
/** 오프라인쿠폰 인증번호 */
private String oflneCouponCrtnb;
/** 사용처 구분 */
private String useplcDvCd;
}

View File

@@ -0,0 +1,666 @@
package com.wb.domainserver.domain.sopmal.mpage.mbr.controller;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.wb.domainserver.domain.sopmal.csc.vo.GnrlBbscttVO;
import com.wb.domainserver.domain.sopmal.mbr.vo.MbrVO;
import com.wb.domainserver.domain.sopmal.mpage.mbr.vo.*;
import com.wb.domainserver.domain.sopmal.mpage.ordr.vo.MyOrdrDlvyVO;
import com.wb.domainserver.util.string.StringUtil;
import com.wb.domainserver.util.util.Util;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.wb.domainserver.common.msg.GconeMessageSource;
import com.wb.domainserver.exception.WnbtRestException;
import com.wb.domainserver.response.WnbtResponse;
import com.wb.domainserver.response.WnbtResponseBody;
import com.wb.domainserver.response.WnbtWebClientResponseHandler;
import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.communicate.BoResultMapConverter;
import com.wb.domainserver.util.communicate.RESRC;
import com.wb.domainserver.util.communicate.ReplyFromResrc;
import com.wb.domainserver.util.communicate.SendToResrc;
import com.wb.domainserver.util.communicate.ValidateResultConverter;
import lombok.extern.slf4j.Slf4j;
/**
*
* 마이페이지 회원
* @author 추지훈.
* @since 2024-02-29
* @version 1.0
* @see
*
* <pre>
* == (Modification Information) == 개정이력
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2024-02-29 추지훈. 최초 생성
* 2024-10-11 이대환. 회원정보수정 수정
*
* </pre>
*/
@Controller
@RequestMapping("/sopmal/mpage/mbr")
@Slf4j
public class MyMbrController {
/** WebClient 호출을 위한 wrapper */
@Autowired
private WnbtWebClientResponseHandler responseHandler;
@Autowired
private SendToResrc sendToResrc;
/** 공통 메시지 처리를 위한 메시지 객체 */
@Autowired
private GconeMessageSource gconeMessageSource;
/**
* 사용자 > 마이페이지 > 메인 화면 이동
*
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectMpageMainInqire")
public String selectMpageMainInqire(HttpServletRequest request, ModelMap model, MyOrdrDlvyVO ordrDlvyVO) throws Exception {
model.addAttribute("paramVO", new ObjectMapper().writeValueAsString(ordrDlvyVO));
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOMpageOrdrSttusInqire", ordrDlvyVO),
model,
"ordrSttusMap"
);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOWslistInqire", ordrDlvyVO),
model,
"wishListMap"
);
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", ordrDlvyVO),
model,
"mpageResultMap"
);
String diviceTy = Util.getDeviceType(request);
if("sopmal".equals(diviceTy)){ //pc버전만 조회
//qna 조회
GnrlBbscttVO bbsctt = new GnrlBbscttVO();
bbsctt.setBbsTyCd("05");
bbsctt.setBbsId("goods_qna");
bbsctt.setServerDv("sopmal");
bbsctt.setReqUrl("mpage");
bbsctt.setPageUnit(5);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttListInqire", bbsctt),
model,
"qnaResultMap"
);
//리뷰 조회
bbsctt.setUseAt("Y");
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOMyRvwListInqire", bbsctt),
model,
"rvw"
);
}
return diviceTy + "/mpage/main/MpageMainR";
}
/**
* 회원 비밀번호 확인 폼 이동
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/selectMbrInfoUpdtPasswordCnfirmForm")
public String selectMbrInfoUpdtPasswordCnfirmForm(MyMbrVO mymbrVO, ModelMap model, HttpServletRequest request){
Map<String, Object> resultMap = responseHandler.handleResponseAsMap(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOExtrlIntrlckAt", mymbrVO)
);
mymbrVO.setExtrlIntrlckAt((String) resultMap.get("extrlIntrlckAt"));
if(mymbrVO.getExtrlIntrlckAt().equals("Y")) {
return selectMbrInfoUpdtForm(mymbrVO, model, request);
}
return Util.getDeviceType(request) + "/mpage/mbr/MbrInfoUpdtPasswordCnfirmR";
}
/**
* 회원 비밀번호 확인
* @param mymbrVO
* @param bindingResult
* @return
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectMbrInfoUpdtPasswordCnfirm")
public ResponseEntity<WnbtResponse> selectMbrInfoUpdtPasswordCnfirm(MyMbrVO mymbrVO){
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrPasswordCnfirm", mymbrVO),
ReplyFromResrc::getReply
);
}
/**
* 마이페이지 회원 정보 수정 조회
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/selectMbrInfoUpdtForm")
public String selectMbrInfoUpdtForm(MyMbrVO mymbrVO, ModelMap model, HttpServletRequest request){
mymbrVO.setServerDv("sopmal");
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrInfoUpdtInqire", mymbrVO),
model,
"resultMap"
);
return Util.getDeviceType(request) + "/mpage/mbr/MbrInfoUpdtU";
}
/**
* 회원 정보 수정 (아이디 수정)
* @param mymbrVO
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/updateMbrIdUpdt" , method = RequestMethod.POST)
public ResponseEntity<WnbtResponse> updateMbrIdUpdt(@Validated MyMbrIdChngVO mymbrVO, BindingResult bindingResult){
// 정합성 검사
if (bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
}
/*1 비밀번호 정규 표현식 확인*/
String password = mymbrVO.getNewPassword();
String pwPattern = "^(?=.*[a-zA-Z])(?=.*\\d)(?=.*\\W)?[a-zA-Z\\d\\W]{6,20}$|^(?=.*[a-zA-Z])(?=.*\\W)(?=.*\\d)?[a-zA-Z\\W\\d]{6,20}$|^(?=.*\\d)(?=.*\\W)(?=.*[a-zA-Z])?[a-zA-Z\\d\\W]{6,20}$";
Matcher matcher = Pattern.compile(pwPattern).matcher(password);
if (!matcher.matches()) {
throw new WnbtRestException("비밀번호는 영문 대소문자/숫자/특수문자 중 2가지 이상 조합한 6~20자로 입력해주세요.");
}
/*2 변경 비밀번호 확인*/
if (!password.equals(mymbrVO.getCheckPassword())) {
throw new WnbtRestException("비밀번호가 일치하지 않습니다.");
}
/*3 아이디 비밀번호 동일 확인*/
if (password.equals(mymbrVO.getMbrId())) {
throw new WnbtRestException("비밀번호는 아이디와 동일할 수 없습니다.");
}
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/updateBOMbrIdUpdt", mymbrVO),
ReplyFromResrc::getReply
);
}
/**
* 회원 정보 수정 (비밀번호 수정)
* @param mymbrVO
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/updateMbrPasswordUpdt" , method = RequestMethod.POST)
public ResponseEntity<WnbtResponse> updateMbrPasswordUpdt(@Validated MyMbrPwdChngVO mymbrVO, BindingResult bindingResult){
// 정합성 검사
if (bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
}
//비밀번호 변경시
/*1 비밀번호 변경 시 현재 비밀번호 확인*/
Map<String, Object> resultMap = responseHandler.handleResponseAsMap(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrPasswordCnfirm", mymbrVO)
);
int result = (int) resultMap.get("result");
if (result == 0) {
throw new WnbtRestException("현재 비밀번호가 일치하지 않습니다");
}
/*2 비밀번호 정규 표현식 확인*/
String password = mymbrVO.getNewPassword();
String pwPattern = "^(?=.*[a-zA-Z])(?=.*\\d)(?=.*\\W)?[a-zA-Z\\d\\W]{6,20}$|^(?=.*[a-zA-Z])(?=.*\\W)(?=.*\\d)?[a-zA-Z\\W\\d]{6,20}$|^(?=.*\\d)(?=.*\\W)(?=.*[a-zA-Z])?[a-zA-Z\\d\\W]{6,20}$";
Matcher matcher = Pattern.compile(pwPattern).matcher(password);
if (!matcher.matches()) {
throw new WnbtRestException("비밀번호는 영문 대소문자/숫자/특수문자 중 2가지 이상 조합한 6~20자로 입력해주세요.");
}
/*3 변경 비밀번호 확인*/
if (!password.equals(mymbrVO.getCheckPassword())) {
throw new WnbtRestException("변경 비밀번호가 일치하지 않습니다.");
}
/*4 아이디 비밀번호 동일 확인*/
if (responseHandler.handleResponseAsMap(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOIdPasswordDuplicateAt", mymbrVO)
).get("idPasswordDuplicateAt").equals("Y")) {
throw new WnbtRestException("비밀번호는 아이디와 동일할 수 없습니다.");
}
/*5 기존 비밀번호 동일 확인*/
if (password.equals(mymbrVO.getMbrPassword())) {
throw new WnbtRestException("현재 비밀번호와 동일한 비밀번호를 재사용할 수 없습니다.");
}
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/updateBOMbrPasswordUpdt", mymbrVO),
ReplyFromResrc::getReply
);
}
@Policy(AuthPolicy.PUBLIC)@RequestMapping(value="/selectCrtnbSndng")public String selectCrtnbSndng(){return "/0";}
/**
* 회원 정보 수정 (휴대폰번호 수정)
* @param mymbrVO
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/updateMbrMblphonInfoUpdt")
public ResponseEntity<WnbtResponse> updateMbrMblphonInfoUpdt(@Validated MyMbrVO mymbrVO, BindingResult bindingResult){
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/updateBOMbrMblphonInfoUpdt", mymbrVO),
ReplyFromResrc::getReply
);
}
/**
* 회원 정보 수정 (이메일 수정)
* @param mymbrVO
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/updateMbrEmailInfoUpdt")
public ResponseEntity<WnbtResponse> updateMbrEmailInfoUpdt(@Validated MyMbrEmailChngVO mymbrVO, BindingResult bindingResult){
// 정합성 검사
if (bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
}
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/updateBOMbrEmailInfoUpdt", mymbrVO),
ReplyFromResrc::getReply
);
}
/**
* 계정 연동 활성화
* @param mymbrVO
* @param bindingResult
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/insertAcntCnncSttusRegist" , method = RequestMethod.POST)
public ResponseEntity<WnbtResponse> insertAcntCnncSttusRegist(MyMbrVO mymbrVO, BindingResult bindingResult){
// 정합성 검사
if (bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
}
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/insertBOAcntCnncSttusRegist", mymbrVO),
ReplyFromResrc::getReply
);
}
/**
* 계정 연동 비활성화
* @param mymbrVO
* @param bindingResult
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/deleteAcntCnncSttusDel" , method = RequestMethod.POST)
public ResponseEntity<WnbtResponse> deleteAcntCnncSttusDel(MyMbrVO mymbrVO, BindingResult bindingResult){
// 정합성 검사
if (bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
}
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/deleteBOAcntCnncSttusDel", mymbrVO),
ReplyFromResrc::getReply
);
}
/**
* 마이페이지 회원 정보 수정
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/updateMbrInfoUpdt")
public ResponseEntity<WnbtResponse> updateMbrInfoUpdt(@Validated MyMbrVO mymbrVO, BindingResult bindingResult){
mymbrVO.setServerDv("sopmal");
// 정합성 검사
if (bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
}
mymbrVO.setMbtlnb(mymbrVO.getMbtlnb().replace("-",""));
//모바일일 시 진행
if("mobile".equals(mymbrVO.getUtilDv())){
Map<String, Object> resultMap = responseHandler.handleResponseAsMap(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrMbtlnbCompare", mymbrVO)
);
int result = (Integer) resultMap.get("result");
if(result == 0){
if(!"Y".equals(mymbrVO.getMbtlnbChngAt())){
throw new WnbtRestException("휴대폰 인증이 필요합니다.");
}
}
}
if (mymbrVO.getBrthDe() != null) {
mymbrVO.setBrthDe(mymbrVO.getBrthDe().replace(",", ""));
}
if (mymbrVO.getMarktRecptnAgreAt() == null || mymbrVO.getMarktRecptnAgreAt().isEmpty()) {
mymbrVO.setMarktRecptnAgreAt("N");
}
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/updateBOMbrInfoUpdt", mymbrVO),
ReplyFromResrc::getReply
);
}
/**
* 회원 탈퇴 화면 이동
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/selectMbrSecsnForm")
public String selectMbrSecsnForm(ModelMap model, HttpServletRequest request, MyMbrVO mymbrVO) {
mymbrVO.setServerDv("sopmal");
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrSecsnForm", mymbrVO),
model,
"resultMap"
);
return Util.getDeviceType(request) + "/mpage/mbr/MbrSecsnU";
}
/**
* 회원 탈퇴 ( 탈퇴엔 등록, 회원에는 수정 )
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/updateMbrSecsn")
public ResponseEntity<WnbtResponse> updateMbrSecsn(@Validated WithdrawalVO vo, BindingResult bindingResult, HttpServletRequest request){
//validation 체크
if (bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
}
vo.setServerDv("sopmal");
//ip주소 get
Map<String, String> requestInfo = Util.getRequestInfo(request);
String ip = (String) requestInfo.get("XForwardedFor");
vo.setRegistIp(ip);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/updateBOMbrSecsn", vo),
ReplyFromResrc::getReply
);
}
/**
* 배송지 관리 목록 조회 이동
* @param dlvylcVO
* @param ModelMap
* @return MbrDlvylcListInqireR.jsp
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping("/selectDlvylcManagePopupForm")
public String selectMbrDlvylcListInqire(HttpServletRequest request, DlvylcVO dlvylcVO) {
return Util.getDeviceType(request)+"/mpage/mbr/DlvylcManageRForm";
}
/**
* 배송지 관리
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/selectDlvylcManagePopup")
public String selectDlvylcManagePopup(HttpServletRequest request, DlvylcVO dlvylcVO, ModelMap model){
String jspPath = "";
dlvylcVO.setServerDv("sopmal");
//popUp or page 호출인지에 따라 페이지유닛 및 경로 분기
if("Y".equals(dlvylcVO.getIsPop())) {
if("N".equals(dlvylcVO.getIsMobile())){ //모바일 여부에 따른 팝업 페이지 유닛 분기
dlvylcVO.setPageUnit(3);
}else{
dlvylcVO.setPageUnit(100);
}
jspPath = Util.getDeviceType(request)+"/mpage/mbr/DlvylcManagePopupR";
} else {
if ("N".equals(dlvylcVO.getIsMobile())) { //모바일 여부에 따른 팝업 페이지 유닛 분기
dlvylcVO.setPageUnit(3);
} else {
dlvylcVO.setPageUnit(100);
}
jspPath = Util.getDeviceType(request)+"/mpage/mbr/DlvylcManageR";
}
dlvylcVO.setServerDv("sopmal");
//BO에서 API 호출
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOMbrDlvylcListInqire", dlvylcVO),
model,
"resultMap"
);
//기존 페이지 유지
model.addAttribute("pageIndex", dlvylcVO.getPageIndex());
model.addAttribute("formId", dlvylcVO.getFormId());
//배송지 관리 팝업 > 콜백 함수 이름 전달
if("Y".equals(dlvylcVO.getIsPop())) {
model.addAttribute("callbackNm", dlvylcVO.getCallbackNm());
}
return jspPath;
}
/**
* 배송지 수정 상세 조회
* @param dlvylcVO
* @return String
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectDlvylcUpdtPopupForm")
public String selectDlvylcUpdtPopupForm(HttpServletRequest request, ModelMap model, DlvylcVO dlvylcVO){
dlvylcVO.setServerDv("sopmal");
//BO API 호출하여 상세 조회
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBODlvylcUpdtPopupForm",dlvylcVO),
model,
"dtlDlvylc"
);
model.addAttribute("pageIndex",dlvylcVO.getPageIndex());
return Util.getDeviceType(request)+"/mpage/mbr/DlvylcUpdtPopupU";
}
/**
* 배송지 수정 상세 조회
* @param dlvylcVO
* @return String
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectDlvylcUpdtMobilePopupForm")
public String selectDlvylcUpdtMobilePopupForm(HttpServletRequest request, ModelMap model, DlvylcVO dlvylcVO){
Map<String, Object> paramMap = new HashMap<>();
dlvylcVO.setServerDv("sopmal");
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBODlvylcUpdtPopupForm", dlvylcVO),
model,
"dtlDlvylc"
);
//모델 객체에 상세 조회 및 페이지 인덱스,회원고유번호 담음
// model.addAttribute("dtlDlvylc",BoResultMapConverter.convert(new ObjectMapper(), reply.getReply()));
model.addAttribute("pageIndex",dlvylcVO.getPageIndex());
return Util.getDeviceType(request)+"/mpage/mbr/DlvylcUpdtMobilePopupU";
}
/**
* 배송지 수정
* @param dlvylcVO
* @return ResponseEntity<WnbtResponse>
*/
@Policy(AuthPolicy.RESTRICTED)
@PostMapping(value="/updateDlvylcUpdt")
public ResponseEntity<WnbtResponse> updateDlvylcUpdt(@Validated DlvylcVO dlvylcVO,
BindingResult bindingResult){
//입력값 정합성 점검결과 처리
if(bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
}
//휴대폰번호 정합성 체크
String mbtlnb = dlvylcVO.getMbtlnb();
mbtlnb = mbtlnb.replace("-", "");
int mbtlnbLen = mbtlnb.length();
if (!(mbtlnbLen >= 8 && mbtlnbLen <= 12)) {
throw new WnbtRestException("번호는 8자~12자 입니다.");
}
//도로명 지번 분기처리 하여 vo에 set함
if("01".equals(dlvylcVO.getAdresDv())) {
dlvylcVO.setRnmAdres(dlvylcVO.getAdres());
dlvylcVO.setLnbAdres(null);
}else if("02".equals(dlvylcVO.getAdresDv())){
dlvylcVO.setLnbAdres(dlvylcVO.getAdres());
dlvylcVO.setRnmAdres(null);
}
dlvylcVO.setServerDv("sopmal");
//BO API 호출 => 배송지 수정
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/updateBODlvylcUpdt", dlvylcVO),
ReplyFromResrc::getReply
);
}
/**
* 배송지 등록 팝업 이동
* @return String
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectDlvylcRegistForm")
public String selectDlvylcRegistForm(HttpServletRequest request, ModelMap model, DlvylcVO dlvylcVO){
model.addAttribute("vo",dlvylcVO);
return Util.getDeviceType(request)+"/mpage/mbr/DlvylcRegistPopupC";
}
/**
* 배송지 등록
* @param dlvylcVO
* @param bindingResult
* @return ResponseEntity<WnbtResponse>
*/
@Policy(AuthPolicy.RESTRICTED)
@PostMapping(value="/insertDlvylcRegist")
public ResponseEntity<WnbtResponse> insertDlvylcRegist(@Validated DlvylcVO dlvylcVO,
BindingResult bindingResult){
//입력값 정합성 점검결과 처리
if(bindingResult.hasErrors()) {
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
}
//휴대폰번호 정합성 체크
String mbtlnb = dlvylcVO.getMbtlnb();
mbtlnb = mbtlnb.replace("-","");
int mbtlnbLen = mbtlnb.length();
if(!(mbtlnbLen >= 8 && mbtlnbLen <= 12)){
throw new WnbtRestException("번호는 8자~12자 입니다.");
}
dlvylcVO.setServerDv("sopmal");
//등록 jsp에서 넘어온 주소를 도로명 지번 분기처리 하여 vo에 set함
if("01".equals(dlvylcVO.getAdresDv())) {
dlvylcVO.setRnmAdres(dlvylcVO.getAdres());
dlvylcVO.setLnbAdres(null);
}else if("02".equals(dlvylcVO.getAdresDv())){
dlvylcVO.setLnbAdres(dlvylcVO.getAdres());
dlvylcVO.setRnmAdres(null);
}
//BO API 호출 => 배송지 등록
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/insertBODlvylcRegist", dlvylcVO),
ReplyFromResrc::getReply
);
}
/**
* 배송지 삭제
* @param dlvylcVO
* @return ResponseEntity<WnbtResponse>
*/
@Policy(AuthPolicy.RESTRICTED)
@PostMapping(value="/deleteDlvylcDel")
public ResponseEntity<WnbtResponse> deleteDlvylcDel(DlvylcVO dlvylcVO){
dlvylcVO.setServerDv("sopmal");
//BO API 호출 => 배송지 삭제
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/deleteBODlvylcDel", dlvylcVO),
ReplyFromResrc::getReply
);
}
/**
* 기본배송지 수정
* @param dlvylcVO
* @return ResponseEntity<WnbtResponse>
*/
@Policy(AuthPolicy.RESTRICTED)
@PostMapping(value="/updatedftDlvylcAtUpdt")
public ResponseEntity<WnbtResponse> updatedftDlvylcAtUpdt(DlvylcVO dlvylcVO){
dlvylcVO.setServerDv("sopmal");
//BO API 호출 => 기본배송지 수정
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/updateBOdftDlvylcAtUpdt", dlvylcVO),
ReplyFromResrc::getReply
);
}
}

View File

@@ -0,0 +1,62 @@
package com.wb.domainserver.domain.sopmal.mpage.mbr.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
@Data
@EqualsAndHashCode(callSuper = false)
public class DlvylcVO extends AbstractVO{
private static final long serialVersionUID = 1L;
/** 주소록 고유번호 */
private Integer adbkInnb;
/** 회원고유번호 */
private String mbrInnb;
/**회원구분코드*/
private String mbrDvCd;
/** 배송지설명내용 */
@NotBlank(message = "배송지 설명")
private String dlvylcDcCn;
/** 받는사람명 */
@NotBlank(message = "받으시는 분")
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 rnmAdres = "";
/** 상세주소 */
@NotBlank(message = "상세주소")
private String dtlAdres;
/** 기본배송지여부 */
private String dftDlvylcAt = "N";
/** 최근배송지여부 */
private String recentDlvylcAt;
/** popUp 여부 확인 */
private String isPop;
/*모바일 여부 확인*/
private String isMobile;
/**오더링 방법 */
private String ordering;
/**콜백함수 이름 */
private String callbackNm;
/*서버구분*/
private String serverDv;
/** formId */
private String formId;
}

View File

@@ -0,0 +1,24 @@
package com.wb.domainserver.domain.sopmal.mpage.mbr.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = false)
public class MyMbrEmailChngVO extends AbstractVO {
private static final long serialVersionUID = 1L;
/*id*/
@NotBlank(message = "아이디")
private String id;
/*도메인*/
@NotBlank(message = "도메인")
private String domain;
/*이메일주소*/
private String email;
}

View File

@@ -0,0 +1,47 @@
package com.wb.domainserver.domain.sopmal.mpage.mbr.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = false)
public class MyMbrIdChngVO extends AbstractVO {
private static final long serialVersionUID = 1L;
// fm_member
/** 회원고유번호 */
private String mbrInnb;
/** 회원구분코드 */
private String mbrDvCd;
/** 회원유형코드 */
private String mbrTyCd;
/** 회원비밀번호 */
@NotBlank(message = "신규 아이디")
private String mbrId;
/** 변경할 비밀번호 */
@NotBlank(message = "신규 비밀번호")
private String newPassword;
/** 변경할 비밀번호 확인 비밀번호 */
private String checkPassword;
/** 비밀번호변경일자 */
private String passwordChngDe;
}

View File

@@ -0,0 +1,47 @@
package com.wb.domainserver.domain.sopmal.mpage.mbr.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = false)
public class MyMbrPwdChngVO extends AbstractVO {
private static final long serialVersionUID = 1L;
// fm_member
/** 회원고유번호 */
private String mbrInnb;
/** 회원구분코드 */
private String mbrDvCd;
/** 회원유형코드 */
private String mbrTyCd;
/** 회원비밀번호 */
@NotBlank(message = "기존 비밀번호")
private String mbrPassword;
/** 변경할 비밀번호 */
@NotBlank(message = "변경할 비밀번호")
private String newPassword;
/** 변경할 비밀번호 확인 비밀번호 */
private String checkPassword;
/** 비밀번호변경일자 */
private String passwordChngDe;
}

View File

@@ -0,0 +1,171 @@
package com.wb.domainserver.domain.sopmal.mpage.mbr.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = false)
public class MyMbrVO extends AbstractVO {
private static final long serialVersionUID = 1L;
// fm_member
/** 회원고유번호 */
private String mbrInnb;
/** 회원구분코드 */
private String mbrDvCd;
/** 회원등급 */
private String mbrGradInnb;
/** 유입경로번호 */
private String inflowCoursNb;
/** 가입환경코드 */
private String sbscrbEnvrnCd;
/** 회원유형코드 */
private String mbrTyCd;
/** 회원ID */
private String mbrid;
/** 회원비밀번호 */
private String mbrPassword;
/** 변결할 비밀번호 */
private String newPassword;
/** 비밀번호변경일자 */
private String passwordChngDe;
/** 회원명 */
private String mbrNm;
/** 이메일 */
private String email;
/** 이메일수신여부 */
private String emailRecptnAt;
/** 휴대폰 번호 */
private String mbtlnb;
/** 휴대폰 번호 변경 여부*/
private String mbtlnbChngAt;
/** SMS수신여부 */
private String smsRecptnAt;
/** 전화번호 */
private String telnb;
/** 우편번호 */
@NotBlank(message = "우편번호")
private String zip;
/** 도로명; 지번 */
private String adresDv;
/** 지번주소 */
private String lnbAdres;
/** 도로명주소 */
// @NotBlank(message = "도로명주소")
private String rnmAdres;
/** 상세주소 */
@NotBlank(message = "상세주소")
private String dtlAdres;
/** 성별 */
private String sexdstn;
/** 생년월일 */
@NotBlank(message = "생년월일")
private String brthDe;
/** 상태 */
private String sttus;
/** 상태 */
private String unitySvcCnsOffrInfo;
/** 통합서비스정보제공동의 */
private String indvdlInfoValidPd;
/** 광고수신동의변경일시 */
private String advrtsRecptnAgreUpdtDt;
/** 광고수신동의전송일시 */
private String advrtsRecptnAgreTrnsmisDt;
/** GCONE 가입여부 */
private String gconeSbscrbAt;
/** 관리자메모 */
private String mngrMemo;
/** 관리자로그 */
private String mngrLog;
/** 주문번호 */
private String ordrInnb;
// 외부연동 회원 ( kakao; naver; pos )
/** 외부연동순번 */
private Integer extrlIntrlckSnb;
/** 쇼핑몰코드 */
private String sopmalCd;
/** 외부연동구분코드 */
private String extrlIntrlckDvCd;
/** 외부연동ID */
private String extrlIntrlckId;
/** 가입구분코드 */
private String sbscrbDvCd;
/** 외부연동여부 */
private String extrlIntrlckAt;
// fm_member_join
/** 마케팅 수신 동의 여부 */
private String marktRecptnAgreAt;
/** 마케팅 발신 동의 여부 */
private String beforeMarktRecptnAgreAt;
// 회원 탈퇴 fm_member_withdrawal
/**회원 고유번호 배열*/
private String[] mbrArr;
/**탈퇴사유*/
private String secsnResn;
/**등록아이피*/
private String registIp;
/**메모*/
private String memo;
/** 회원 탈퇴 고유번호 */
private Integer withdrawalMbrInnb;
/*서버구분*/
private String serverDv;
/*수정 행위 구분*/
private String updtDv;
/*모바일 pc 구분*/
private String utilDv;
}

View File

@@ -0,0 +1,80 @@
package com.wb.domainserver.domain.sopmal.mpage.mbr.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
@Data
@EqualsAndHashCode(callSuper = false)
public class WithdrawalVO extends AbstractVO {
private static final long serialVersionUID = 1L;
/**
* 회원 고유번호 배열
*/
private String[] mbrarr;
/**
* 회원고유번호
*/
private String mbrInnb;
/*회원구분코드 배열*/
private List<String> mbrDvCdArr;
/**
* 회원구분코드
*/
private String mbrDvCd;
/**
* 회원명
*/
private String mbrNm;
/**
* 이메일
*/
private String email;
/**
* 휴대폰번호
*/
private String mbtlnb;
/**
* 전화번호
*/
private String telnb;
/**
* 우편번호
*/
private String zip;
/**
* 도로명, 지번
*/
private String adresDv;
/**
* 도로명주소
*/
private String rnmAdres;
/**
* 상세주소
*/
private String dtlAdres;
/**
* 성별
*/
private String sexdstn;
/**
* 일자는 01로 입력
*/
private String brthDe;
/**
* 탈퇴사유
*/
@NotBlank(message = "탈퇴 사유")
private String secsnResn;
/**
* 등록아이피
*/
private String registIp;
/*서버구분*/
private String serverDv;
}

View File

@@ -0,0 +1,886 @@
package com.wb.domainserver.domain.sopmal.mpage.ordr.controller;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.wb.domainserver.common.msg.GconeMessageSource;
import com.wb.domainserver.domain.sopmal.mpage.ordr.vo.*;
import com.wb.domainserver.response.WnbtResponse;
import com.wb.domainserver.response.WnbtWebClientResponseHandler;
import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
import com.wb.domainserver.security.authorization.annotation.Policy;
import com.wb.domainserver.util.communicate.RESRC;
import com.wb.domainserver.util.communicate.ReplyFromResrc;
import com.wb.domainserver.util.communicate.SendToResrc;
import com.wb.domainserver.util.cookie.CookieUtil;
import com.wb.domainserver.util.util.Util;
import jakarta.servlet.http.Cookie;
import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j;
import org.apache.logging.log4j.util.Base64Util;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import java.util.HashMap;
@Controller
@RequestMapping("/sopmal/mpage/ordr")
@Slf4j
public class MyOrdrController {
@Autowired
private WnbtWebClientResponseHandler responseHandler;
@Autowired
private SendToResrc sendToResrc;
@Autowired
private GconeMessageSource gconeMessageSource;
/* ####################################
사용자 > 마이페이지 > MY쇼핑 > 주문/배송조회 시작
#################################### */
/**
* 마이 페이지 > MY쇼핑 > 마이페이지 상단 내 정보
* @return OrdrDlvyListR.jsp
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectMpageInfoRefreshInqire")
public String selectMpageInfoRefreshInqire(HttpServletRequest request, ModelMap model, MyOrdrDlvyVO ordrDlvyVO) throws Exception {
model.addAttribute("paramVO", new ObjectMapper().writeValueAsString(ordrDlvyVO));
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", ordrDlvyVO),
model,
"mpageResultMap"
);
// return Util.getDeviceType(request) + "/mpage/MypageRight";
return "comm/mpage/MypageRight";
}
/**
* 마이 페이지 > MY쇼핑 > 주문/배송조회 > 주문/배송 목록 조회 화면 이동
* @return OrdrDlvyListR.jsp
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectMbrOrdrListInqire")
public String selectMbrOrdrListInqire(HttpServletRequest request, ModelMap model, MyOrdrDlvyVO ordrDlvyVO) throws Exception {
model.addAttribute("paramVO", new ObjectMapper().writeValueAsString(ordrDlvyVO));
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", ordrDlvyVO),
model,
"mpageResultMap"
);
return Util.getDeviceType(request) + "/mpage/ordr/OrdrDlvyListR";
}
/**
* 마이 페이지 > MY쇼핑 > 주문/배송조회 > 주문/배송 목록 조회
* @param ordrDlvyVO
* @return ResponseEntity<WnbtResponse>
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectMbrOrdrListInqireAjax")
public String selectMbrOrdrListInqireAjax(ModelMap model, MyOrdrDlvyVO ordrDlvyVO) {
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOMbrOrdrListInqireAjax", ordrDlvyVO),
model,
"data"
);
return "sopmal/mpage/ordr/OrdrDlvyListRList";
}
/**
* 마이 페이지 > MY쇼핑 > 마이페이지 > 주문/배송 목록 조회
* @param ordrDlvyVO
* @return ResponseEntity<WnbtResponse>
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectMbrOrdrListInqireMapge")
public String selectMbrOrdrListInqireMapge(ModelMap model, MyOrdrDlvyVO ordrDlvyVO) {
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOMbrOrdrListInqireAjax", ordrDlvyVO),
model,
"data"
);
return "sopmal/mpage/ordr/OrdrDlvyListMpageRList";
}
/**
* 마이 페이지 > MY쇼핑 > 주문/배송조회 > 주문/배송 목록 조회 (스크롤)
* @param ordrDlvyVO
* @return ResponseEntity<WnbtResponse>
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectMbrOrdrListInqireScrollAjax")
public ResponseEntity<WnbtResponse> selectMbrOrdrListInqireScrollAjax(ModelMap model, MyOrdrDlvyVO ordrDlvyVO) {
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOMbrOrdrListInqireAjax", ordrDlvyVO),
ReplyFromResrc::getReply
);
}
/**
* 마이 페이지 > MY쇼핑 > 주문/배송조회 > 주문 취소 상태 수정
* @param ordrDlvyVO
* @return ResponseEntity<WnbtResponse>
* @throws JsonProcessingException
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/updateCanclOrdr")
public ResponseEntity<WnbtResponse> updateCanclOrdr(MyOrdrDlvyVO ordrDlvyVO) throws JsonProcessingException {
/**
Map<String, Object> resultMap = responseHandler.handleResponseAsMap(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/updateBOCanclOrdr", ordrDlvyVO)
);
if ("1".equals(resultMap.get("status"))) {
List<Map<String, String>> errorList = new ArrayList<>();
errorList.add(ValidateResultConverter.setErrorMap("error", (String) resultMap.get("message")));
throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList));
}
WnbtResponse response = WnbtResponse.builder().resBody(new WnbtResponseBody(new ObjectMapper().writeValueAsString(resultMap))).build();
*/
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/updateBOCanclOrdr", ordrDlvyVO),
ReplyFromResrc::getReply
);
}
/**
* 마이 페이지 > MY쇼핑 > 주문/배송조회 > 주문 기준 구매 확정
* @param ordrVO
* @return ResponseEntity<WnbtResponse>
* @throws JsonProcessingException
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/updatePurchsDcsnByOrdr")
public ResponseEntity<WnbtResponse> updateBOPurchsDcsnByOrdr(MyOrdrVO ordrVO) throws JsonProcessingException {
/**
Map<String, Object> resultMap = responseHandler.handleResponseAsMap(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/updateBOPurchsDcsnByOrdr", ordrVO)
);
if ("1".equals(resultMap.get("status"))) {
List<Map<String, String>> errorList = new ArrayList<>();
errorList.add(ValidateResultConverter.setErrorMap("error", (String) resultMap.get("message")));
throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList));
}
WnbtResponse response = WnbtResponse.builder().resBody(new WnbtResponseBody(new ObjectMapper().writeValueAsString(resultMap))).build();
*/
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/updateBOPurchsDcsnByOrdr", ordrVO),
ReplyFromResrc::getReply
);
}
/**
* 마이 페이지 > MY쇼핑 > 주문/배송조회 > 상품 기준 구매 확정
* @param ordrVO
* @return ResponseEntity<WnbtResponse>
* @throws JsonProcessingException
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/updatePurchsDcsnByItem")
public ResponseEntity<WnbtResponse> updatePurchsDcsnByItem(MyOrdrVO ordrVO) throws JsonProcessingException {
/**
Map<String, Object> resultMap = responseHandler.handleResponseAsMap(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/updatePurchsDcsnByItem", ordrVO)
);
if ("1".equals(resultMap.get("status"))) {
List<Map<String, String>> errorList = new ArrayList<>();
errorList.add(ValidateResultConverter.setErrorMap("error", (String) resultMap.get("message")));
throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList));
}
WnbtResponse response = WnbtResponse.builder().resBody(new WnbtResponseBody(new ObjectMapper().writeValueAsString(resultMap))).build();
*/
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/updatePurchsDcsnByItem", ordrVO),
ReplyFromResrc::getReply
);
}
/**
* 마이 페이지 > MY쇼핑 > 주문/배송조회 > 주문/배송 상세 조회 화면 이동
* @return OrdrDtlR.jsp
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectMbrOrdrDtlInqire")
public String selectOrdrDtlInqire(HttpServletRequest request, ModelMap model, MyOrdrDlvyVO ordrDlvyVO) throws Exception {
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOMbrOrdrDtlInqire", ordrDlvyVO),
model,
"data"
);
model.addAttribute("paramVO", new ObjectMapper().writeValueAsString(ordrDlvyVO));
model.addAttribute("vo", ordrDlvyVO);
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", ordrDlvyVO),
model,
"mpageResultMap"
);
return Util.getDeviceType(request) + "/mpage/ordr/OrdrDtlR";
}
/**
* 마이 페이지 > MY쇼핑 > 주문/배송조회 > 배송지 수정
* @param param
* @return ResponseEntity<WnbtResponse>
* @throws JsonProcessingException
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/updateDlvylc")
public ResponseEntity<WnbtResponse> updateDlvylc(@RequestBody HashMap<String, Object> param) throws JsonProcessingException {
/**
Map<String, Object> resultMap = responseHandler.handleResponseAsMap(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/updateBODlvylc", param)
);
if ("1".equals(resultMap.get("status"))) {
List<Map<String, String>> errorList = new ArrayList<>();
errorList.add(ValidateResultConverter.setErrorMap("error", (String) resultMap.get("message")));
throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList));
}
WnbtResponse response = WnbtResponse.builder().resBody(new WnbtResponseBody(new ObjectMapper().writeValueAsString(resultMap))).build();
// return ResponseEntity.status(HttpStatus.OK).body(response);
*/
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/updateBODlvylc", param),
ReplyFromResrc::getReply
);
}
/**
* 마이 페이지 > MY쇼핑 > 주문/배송조회 > 결제취소 팝업 화면 이동
* @return OrdrSetleCanclPopup.jsp
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectSetleCanclPopupForm")
public String selectSetleCanclPopupForm(HttpServletRequest request,ModelMap model, MyOrdrDlvyVO ordrDlvyVO) throws JsonProcessingException {
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOSetleCanclRefndRegist", ordrDlvyVO),
model,
"data"
);
ObjectMapper objectMapper = new ObjectMapper();
model.addAttribute("adscript", Base64Util.encode(objectMapper.writeValueAsString(model.getAttribute("data"))));
return Util.getDeviceType(request) + "/mpage/ordr/OrdrSetleCanclPopup";
}
/**
* 마이 페이지 > MY쇼핑 > 주문/배송조회 > 결제취소 등록
* @param param
* @return ResponseEntity<WnbtResponse>
* @throws JsonProcessingException
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/insertSetleCanclRegist")
public ResponseEntity<WnbtResponse> registSetleCancl(@RequestBody HashMap<String, Object> param) throws JsonProcessingException {
/**
Map<String, Object> resultMap = responseHandler.handleResponseAsMap(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/insertBOSetleCanclRegist", param)
);
if ("1".equals(resultMap.get("status"))) {
List<Map<String, String>> errorList = new ArrayList<>();
errorList.add(ValidateResultConverter.setErrorMap("error", (String) resultMap.get("message")));
throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList));
}
WnbtResponse response = WnbtResponse.builder().resBody(new WnbtResponseBody(new ObjectMapper().writeValueAsString(resultMap))).build();
*/
// return ResponseEntity.status(HttpStatus.OK).body(response);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/insertBOSetleCanclRegist", param),
ReplyFromResrc::getReply
);
}
/* ####################################
사용자 > 마이페이지 > MY쇼핑 > 주문/배송조회 종료
#################################### */
/* ####################################
사용자 > 마이페이지 > MY쇼핑 > 개인결제 시작
#################################### */
/**
* 마이 페이지 > MY쇼핑 > 개인결제 > 개인결제 목록 화면 이동
* @return IndvdlSetleR.jsp
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectIndvdlSetleInqire")
public String selectIndvdlSetleInqire(HttpServletRequest request, ModelMap model, MyIndvdlSetleVO indvdlSetleVO) {
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", indvdlSetleVO),
model,
"mpageResultMap"
);
return Util.getDeviceType(request) + "/mpage/ordr/IndvdlSetleR";
}
/**
* 마이 페이지 > MY쇼핑 > 개인결제 > 개인결제 목록 조회
* @param indvdlSetleVO
* @return ResponseEntity<WnbtResponse>
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectIndvdlSetleInqireAjax")
public String selectIndvdlSetleInqireAjax(HttpServletRequest request, ModelMap model, MyIndvdlSetleVO indvdlSetleVO) {
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOIndvdlSetleInqireAjax", indvdlSetleVO),
model,
"data"
);
return Util.getDeviceType(request) + "/mpage/ordr/IndvdlSetleRList";
}
/**
* 마이 페이지 > MY쇼핑 > 개인결제 > 개인결제 목록 조회 (스크롤)
* @param indvdlSetleVO
* @return ResponseEntity<WnbtResponse>
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectIndvdlSetleInqireScrollAjax")
public ResponseEntity<WnbtResponse> selectIndvdlSetleInqireScrollAjax(ModelMap model, MyIndvdlSetleVO indvdlSetleVO) {
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOIndvdlSetleInqireAjax", indvdlSetleVO),
ReplyFromResrc::getReply
);
}
/* ####################################
사용자 > 마이페이지 > MY쇼핑 > 개인결제 종료
#################################### */
/**
* 배송 조회
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/selectDlvyInqire")
public String selectDlvyInqire(MyDlivyVO dlivyVO, ModelMap model, HttpServletRequest request){
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/dlivy/selectBOOrdrDlvyDtlsInqire", dlivyVO),
model,
"resultMap"
);
// return "sopmal/mpage/ordr/DlvyInqireR";
return Util.getDeviceType(request) + "/mpage/ordr/DlvyInqireR";
}
/**
* 반품 취소 환불 조회 이동
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/selectRtngudCanclRefndForm")
public String selectRtngudCanclRefndForm(MyRefundVO refundVO, ModelMap model, HttpServletRequest request) throws JsonProcessingException {
refundVO.setServerDv("sopmal");
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/Rtngudrefnd/selectBORtngudRefndListInqireForm", refundVO),
model,
"resultMap"
);
model.addAttribute("paramVO", refundVO);
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", refundVO),
model,
"mpageResultMap"
);
return Util.getDeviceType(request) + "/mpage/ordr/RtngudCanclRefndListFormR";
}
/**
* 반품 취소 환불 목록 조회
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/selectRtngudCanclRefndInqire")
public String selectRtngudCanclRefndInqire(MyRefundVO refundVO, ModelMap model, HttpServletRequest request){
refundVO.setServerDv("sopmal");
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/Rtngudrefnd/selectBOMbrRefundListInqire", refundVO),
model,
"resultMap"
);
model.addAttribute("paramVO", refundVO);
// return "sopmal/mpage/ordr/RtngudCanclRefndListR";
return Util.getDeviceType(request) + "/mpage/ordr/RtngudCanclRefndListR";
}
/**
* 마이페이지 > 반품/환불 목록 조회 > 스크롤
* @param mlgVO
* @param model
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/selectRtngudCanclRefndScrolInqire")
public ResponseEntity<?> selectRtngudCanclRefndScrolInqire(MyRefundVO refundVO) {
refundVO.setServerDv("sopmal");
return responseHandler.handleMapResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/Rtngudrefnd/selectBOMbrRefundListInqire", refundVO),
result -> ResponseEntity.status(HttpStatus.OK).body(result)
);
}
/**
* 반품 취소 환불 상세 조회
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/selectRtngudCanclRefndDtlInqire")
public String selectRtngudCanclRefndDtlInqire(MyRefundVO refundVO, ModelMap model, HttpServletRequest request){
refundVO.setServerDv("sopmal");
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/Rtngudrefnd/selectBORtngudRefndDtlInqire", refundVO),
model,
"resultMap"
);
model.addAttribute("paramVO", refundVO);
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", refundVO),
model,
"mpageResultMap"
);
return Util.getDeviceType(request) + "/mpage/ordr/RtngudCanclRefndDtlR";
}
/**
* 반품 취소 환불 정보 수정
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/updateRtngudCanclRefndUpdt")
public ResponseEntity<WnbtResponse> updateRtngudCanclRefndUpdt(MyRefundVO refundVO, ModelMap model){
log.debug("ordrVO is {}", refundVO);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/Rtngudrefnd/updateBOOrderReUpdt", refundVO),
ReplyFromResrc::getReply
);
}
/**
* 마이 페이지 > MY쇼핑 > 주문/배송조회 > 반품/환불 신청 팝업 이동
* @return
* @author 추지훈
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectRetrunRegistPopupForm")
public String selectRetrunRegistPopupForm(HttpServletRequest request,ModelMap model, MyOrdrDlvyVO ordrDlvyVO) {
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOSetleCanclRefndRegist", ordrDlvyVO),
model,
"data"
);
return Util.getDeviceType(request) + "/mpage/ordr/RefundRegistPopupC";
}
/**
* 선물함 목록 폼 이동
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/selectGiftListInqireForm")
public String selectGiftListInqireForm(MyOrdrShippingVO ordrShippingVO, ModelMap model, HttpServletRequest request) throws JsonProcessingException {
log.debug("선물함 이동 ordrShippingVO is {}", ordrShippingVO);
model.addAttribute("paramVO", new ObjectMapper().writeValueAsString(ordrShippingVO));
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOUserGiftOrdrListInqireForm", ordrShippingVO),
model,
"resultMap"
);
// model.addAttribute("paramVO", ordrShippingVO);
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", ordrShippingVO),
model,
"mpageResultMap"
);
return Util.getDeviceType(request) + "/mpage/ordr/GiftListFormR";
}
/**
* 선물함 목록 조회
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/selectGiftListInqire")
public String selectGiftListInqire(MyOrdrShippingVO ordrShippingVO, ModelMap model, HttpServletRequest request){
log.debug("ordrShippingVO is {}", ordrShippingVO);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOUserGiftOrdrListInqireAjax", ordrShippingVO),
model,
"resultMap"
);
return Util.getDeviceType(request) + "/mpage/ordr/GiftListR";
}
/**
* 마이 페이지 > MY쇼핑 > 선물함 > 선물함 목록 조회 (스크롤)
* @param ordrDlvyVO
* @return ResponseEntity<WnbtResponse>
*/
@Policy(AuthPolicy.RESTRICTED)
@RequestMapping(value="/selectMbrGfitListInqireScrollAjax")
public ResponseEntity<WnbtResponse> selectMbrGfitListInqireScrollAjax(ModelMap model, MyOrdrDlvyVO ordrDlvyVO) {
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOUserGiftOrdrListInqireAjax", ordrDlvyVO),
ReplyFromResrc::getReply
);
}
/**
* 선물함 > 선물 조회 팝업
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/selectGiftOrdrSittnPopupForm")
public String selectGiftOrdrSittnPopupForm(MyOrdrShippingVO ordrShippingVO, ModelMap model, HttpServletRequest request){
log.debug("ordrShippingVO is {}", ordrShippingVO);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOUserGiftShippSittnPopup", ordrShippingVO),
model,
"resultMap"
);
return Util.getDeviceType(request) + "/mpage/ordr/GiftOrdrSittnPopupR";
}
/**
* 위시리스트 폼 이동
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/selectWslistInqireForm")
public String selectWslistInqireForm(MyWishVO wishVO, ModelMap model, HttpServletRequest request){
wishVO.setServerDv("sopmal");
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOWslistInqireForm", wishVO),
model,
"resultMap"
);
model.addAttribute("paramVO", wishVO);
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", wishVO),
model,
"mpageResultMap"
);
return Util.getDeviceType(request) + "/mpage/ordr/WslistInqireRForm";
}
/**
* 위시리스트 추가
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/insertWslistGoods")
public ResponseEntity<WnbtResponse> insertWslistGoods(MyWishVO wishVO, HttpServletRequest request){
String agentId = "";
Cookie[] cookies = request.getCookies();
if(cookies != null){
if (CookieUtil.hasAgentCookie(request.getCookies())) {
agentId = CookieUtil.getAgentCookieValue(request.getCookies());
wishVO.setAgentId(agentId);
}
}
wishVO.setIp(request.getAttribute("LoggingClientIp").toString());
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/insertBOWslistGoods", wishVO),
ReplyFromResrc::getReply
);
}
/**
* 위시리스트 목록 조회
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/selectWslistInqire")
public String selectWslistInqire(MyWishVO wishVO, ModelMap model, HttpServletRequest request){
wishVO.setServerDv("sopmal");
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOWslistInqire", wishVO),
model,
"resultMap"
);
model.addAttribute("paramVO", wishVO);
// return "sopmal/mpage/ordr/WslistInqireR";
return Util.getDeviceType(request) + "/mpage/ordr/WslistInqireR";
}
/**
* 마이페이지 > 위시리스트 목록 조회 > 스크롤
* @param mlgVO
* @param model
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/selectWslistScrolInqire")
public ResponseEntity<?> selectWslistScrolInqire(MyWishVO wishVO) {
wishVO.setServerDv("sopmal");
return responseHandler.handleMapResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOWslistInqire", wishVO),
result -> ResponseEntity.status(HttpStatus.OK).body(result)
);
}
/**
* 상품 옵션 선택 팝업
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/selectGoodsOptnSlcPopup")
public String selectGoodsOptnSlcPopup(@RequestBody MyWishVO wishVO, ModelMap model, HttpServletRequest request){
// ReplyFromResrc reply = sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBORelateGoodsPopup", wishVO);
// model.addAttribute("resultMap", BoResultMapConverter.convert(new ObjectMapper(), reply.getReply()));
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBORelateGoodsPopup", wishVO),
model,
"resultMap"
);
return Util.getDeviceType(request)+"/mpage/ordr/GoodsSlcPopupR";
}
/**
* 위시리스트 상품 삭제
* @param wishVO
* @param bindingResult
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/deleteWslistGoodsDel" , method = RequestMethod.POST)
public ResponseEntity<WnbtResponse> deleteWslistGoodsDel(@Validated MyWishVO wishVO, BindingResult bindingResult ){
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/deleteBOWslistGoodsDel", wishVO),
ReplyFromResrc::getReply
);
}
/**
* 정기 배송 관리 목록 폼 이동
* @param ordrShippingVO
* @param model
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/selectFdrmDlvyInqireForm")
public String selectFdrmDlvyInqireForm(MyOrdrShippingVO ordrShippingVO, ModelMap model){
log.debug("wishVO is {}", ordrShippingVO);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOFdrmDlvyForm", ordrShippingVO),
model,
"resultMap"
);
model.addAttribute("paramVO", ordrShippingVO);
// 마이페이지 > 상단 회원 정보 ( 등금, 이름, 마일리지, 쿠폰, 위시리스트, 배송중, 등급산정기준 )
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMpageInfoInqire", ordrShippingVO),
model,
"mpageResultMap"
);
return "sopmal/mpage/ordr/FdrmDlvyFormR";
}
/**
* 정기 배송 관리 목록 조회
* @param ordrShippingVO
* @param model
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/selectFdrmDlvyInqire")
public String selectFdrmDlvyInqire(MyOrdrShippingVO ordrShippingVO, ModelMap model){
log.debug("wishVO is {}", ordrShippingVO);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOFdrmDlvyInqire", ordrShippingVO),
model,
"resultMap"
);
return "sopmal/mpage/ordr/FdrmDlvyR";
}
/**
* 정기 배송 > 배송 주기 변경 팝업
* @param ordrShippingVO
* @param model
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/selectFdrmDlvyCycleChngForm")
public String selectFdrmDlvyCycleChngForm(MyOrdrShippingVO ordrShippingVO, ModelMap model){
log.debug("wishVO is {}", ordrShippingVO);
responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOFdrmDlvyCycleChngForm", ordrShippingVO),
model,
"resultMap"
);
return "sopmal/mpage/ordr/FdrmDlvyCycleChngU";
}
/**
* 정기 배송 > 배송 해지
* @param ordrShippingVO
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value="/updateFdrmDlvyCycleChng ")
public ResponseEntity<WnbtResponse> updateFdrmDlvyCycleChng (MyOrdrShippingVO ordrShippingVO){
log.debug("ordrShippingVO is {}", ordrShippingVO);
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/updateBOFdrmDlvyCycleChng", ordrShippingVO),
ReplyFromResrc::getReply
);
}
/**
* 현금영수증 수정 발급
*
* @param vo
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/updateCashReceipt")
public ResponseEntity<WnbtResponse> updateCashReceipt(MyOrdrVO vo) {
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/selngpruf/updateCashReceipt", vo),
ReplyFromResrc::getReply
);
}
/**
* 현금영수증 정보수정
*
* @param vo
* @return
*/
@Policy(AuthPolicy.PUBLIC)
@RequestMapping(value = "/updateCashReceiptInfo")
public ResponseEntity<WnbtResponse> updateCashReceiptInfo(MyOrdrVO vo) {
return responseHandler.handleResponse(
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/selngpruf/updateBOCshRcipt", vo),
ReplyFromResrc::getReply
);
}
}

View File

@@ -0,0 +1,120 @@
package com.wb.domainserver.domain.sopmal.mpage.ordr.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
*
*
* @author 추지훈
* @since 2024-03-11
* @version 1.0
* @see
*
* <pre>
* == (Modification Information) == 개정이력
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2024-03-11 추지훈. 최초 생성
*
* </pre>
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class MyDlivyVO extends AbstractVO {
private static final long serialVersionUID = 1L;
/**출고고유번호*/
private String dlivyInnb;
/**주문고유번호*/
private String ordrInnb;
/**쇼핑몰코드*/
private String sopmalCd;
/**주문배송고유번호*/
private String ordrDlvyInnb;
/**출고코드번호*/
private String dlivyCdNb;
/**출고준비(45), 출고완료(55), 배송중(65), 배송완료(75)*/
private String dlivySttusCd;
/**상태변경일시*/
private String sttusUpdtDt;
/**택배사코드*/
private String hdrycpnCd;
/**택배사코드 명*/
private String hdrycpnNm;
/**송장번호*/
private String invcnb;
/**출고일시*/
private String dlivyDt;
/**출고완료일시*/
private String dlivyComptDt;
/**배송완료일시*/
private String dlvyComptDt;
/**배송그룹코드*/
private String dlvyGroupCd;
/**관리자 고유번호*/
private String mngrInnb;
/** 중요주문여부 */
private String imprtncOrdrAt;
/**배송주기*/
private String dlvyCycleCd;
/** 구매확정구분코드 */
private String purchsDcsnDvCd;
// 출고 상품
/** 출고상품고유번호 */
private String dlivyGoodsInnb;
/** 주문상품옵션고유번호 */
private String ordrGoodsOptnInnb;
/** 옵션유형 */
private String optnTy;
// 배송그룹 / 밥법 변경
/** 배송 그룹 코드 */
private String DlvyGroupCd;
// 스위트래커 배송 추적
/** 주문배송추적고유번호 */
private Integer ordrDlvyTraceInnb;
/** 스윗트래커송장코드 */
private String stInvcCd;
/** 상세내용 - 배송 추적 내용 json */
private String dtlCn;
// 배송 추적 : 배송정보
/** 우편번호 */
private String dlvylcZip;
/** 주소 구분 코드 */
private String dlvylcAdresDvCd;
/** 도로명 주소 */
private String dlvylcRnmAdres;
/** 지번 주소 */
private String dlvylcLnbAdres;
/** 상세 주소 */
private String dlvylcAdresDtl;
}

View File

@@ -0,0 +1,13 @@
package com.wb.domainserver.domain.sopmal.mpage.ordr.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = false)
public class MyIndvdlSetleVO extends AbstractVO {
private String sopmalCd; // 쇼핑몰코드
private String ordrInnb; // 주문번호
}

View File

@@ -0,0 +1,34 @@
package com.wb.domainserver.domain.sopmal.mpage.ordr.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = false)
public class MyOrdrDlvyVO extends AbstractVO {
private String sopmalCd; // 쇼핑몰코드
private String srchwrd; // 검색어
private String bgnDt; // 검색 시작 일자
private String endDt; // 검색어 종료 일자
private String dateRange; // 기간
private String ordrInnb; // 주문번호
private String ordrDlvyInnb; // 주문배송고유번호
private String serverDv; // 서버 구분
private String mbtlnb; // 주문자 휴대폰번호
private String mpageAt; // 마이페이지 여부
private String[] cookieValArr;//쿠키
/** 현재 주문 상태 */
private String currOrdrSttusCd;
}

View File

@@ -0,0 +1,145 @@
package com.wb.domainserver.domain.sopmal.mpage.ordr.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
*
*
* @author 추지훈
* @since 2024-03-11
* @version 1.0
* @see
*
* <pre>
* == (Modification Information) == 개정이력
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2024-03-11 추지훈. 최초 생성
*
* </pre>
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class MyOrdrShippingVO extends AbstractVO {
private static final long serialVersionUID = 1L;
public MyOrdrShippingVO() {}
public MyOrdrShippingVO(String sopmalCd, String ordrInnb) {
this.sopmalCd = sopmalCd;
this.ordrInnb = ordrInnb;
}
/** 주문고유번호 */
private String ordrInnb;
/** 주문배송고유번호 */
private String ordrDlvyInnb;
/** 쇼핑몰 코드 */
private String sopmalCd;
/** 받는자명 */
private String recpntNm;
/** 받는자전화번호 */
private String recpntTelnb;
/** 받는자휴대폰번호 */
private String recpntMbtlnb;
/** 배송지우편번호 */
private String dlvylcZip;
/** 지번(zibun), 도로명(street) */
private String dlvylcAdresDvCd;
/** 배송지지번주소 */
private String dlvylcLnbAdres;
/** 배송지도로명주소 */
private String dlvylcRnmAdres;
/** 배송지주소상세 */
private String dlvylcAdresDtl;
/** 추적배송지주소 */
private String traceDlvylcAdres;
/** 배송지그룹번호 */
private int dlvylcGroupNb;
/** 택배, POS주문, 기타(프레쉬배송?) */
private String dlvyMthCd;
/** 반품배송비금액 */
private int rtngudDlvyAmtAmt;
/** 관리자무료배송비사용여부 */
private String mngrFreeDlvyAmtUseAt;
/** 실배송금액 */
private int rlDlvyAmt;
/** 무료배송조건금액 */
private int freeDlvyCndAmt;
/** 기본배송비금액 */
private int dftDlvyAmtAmt;
/** 예약발송여부 */
private String resveSndngAt;
/** 예약발송구분코드 */
private String resveSndngDvCd;
/** 예약발송일자 */
private String resveSndngDe;
/** 배송메시지내용 */
private String dlvyMssageCn;
/** 선물메시지내용 */
private String giftMssageCn;
/** 관리자 고유번호 */
private Integer mngrInnb;
/** 회원고유번호 */
private Integer mbrInnb;
/** 사용여부 */
// private String useAt;
/** 오더링 방법 */
private String ordering;
/** 송장번호 */
private String invcnb;
/** 배송주기 코드 */
private String dlvyCycleCd;
// 검색
private String srchwrd; // 검색어
private String bgnDt; // 검색 시작 일자
private String endDt; // 검색어 종료 일자
private String dateRange; // 기간
}

View File

@@ -0,0 +1,47 @@
package com.wb.domainserver.domain.sopmal.mpage.ordr.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = false)
public class MyOrdrVO extends AbstractVO {
private static final long serialVersionUID = 1L;
/** 쇼핑몰 코드 */
private String sopmalCd;
/** 주문고유번호 */
private String ordrInnb;
/** 주문상품고유번호 */
private String ordrGoodsInnb;
/** 주문상품옵션고유번호 */
private String ordrGoodsOptnInnb;
/** 주문배송 고유번호 */
private String ordrDlvyInnb;
/** 옵션 구분 */
private String optnTy;
/** 인증번호 */
private String crtnb;
/** 발급대상구분코드 개인(01), 사업자(02) */
private String issuTrgetDvCd;
/** 주문자명 */
private String ordrrNm;
/** 주문자이메일주소 */
private String ordrrEmail;
/** 매출증빙고유번호 */
private String selngPrufInnb;
}

View File

@@ -0,0 +1,185 @@
package com.wb.domainserver.domain.sopmal.mpage.ordr.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
*
*
* @author 추지훈
* @since 2024-03-11
* @version 1.0
* @see
*
* <pre>
* == (Modification Information) == 개정이력
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2024-03-11 추지훈. 최초 생성
*
* </pre>
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class MyRefundVO extends AbstractVO {
private static final long serialVersionUID = 1L;
/**상세 내용*/
public String dtlCn;
/**주문 배송 추적 고유번호*/
public String ordrDlvyTraceInnb;
/**쇼핑몰 코드*/
public String sopmalCd;
/**검색어*/
public String srchwrd;
/**검색구분*/
public String srchDv;
/**검색시작일*/
public String bgnDt;
/**검색종료일*/
public String endDt;
//날짜 검색 구분
private String srchDtDv;
//** 반품처리상태 */
private String[] returnProcsStuusCd;
//** 환불처리상태 */
private String[] refundProcsSttusCd;
/** 회원 고유번호 */
private Integer mbrInnb;
/** 회원 구분 코드 */
private String mbrDvCd;
//** 회수방법(반품) */
private String srchReturnMthCd;
/** 반품환불 고유번호 */
private String orderReInnb;
/*주문고유번호*/
private String ordrInnb;
/*환불신청일시*/
private String refundReqstDt;
/*환불완료일시*/
private String refundComptDt;
/*신청(request), 처리중(ing), 완료(complete)*/
private String refundTyCd;
/*전체취소(full), 부분취소(partial)*/
private String refundScopeCd;
/*환불사유내용*/
private String refundResnCn;
/*계좌이체(account), 무통장(bank), 신용카드(card), 수동(manual), ?(payco_coupon), 포스기기(pos)*/
private String refundMthCd;
/*환불계좌은행명*/
private String refundAcntBnnkNm;
/*환불계좌예금주명*/
private String refundAcntDpstrNm;
/*환불계좌번호*/
private String refundAcntnb;
/*환불금액*/
private String refundAmt;
/*환불적립금액*/
private Integer refundAccmlmnyAmt;
/*배송비환불총금액*/
private Integer dlvyAmtTotRefundAmt;
/*쿠폰할인보정금액*/
private Integer coupDscntRevisnAmt;
/*적립금보정금액*/
private Integer accmlmnyRevisnAmt;
/*에누리보정금액*/
private Integer enuriRevisnAmt;
/*적립금유효일자*/
private String accmlmnyValidDe;
/*다운로드쿠폰 고유번호*/
private String dwldCouponInnb;
/*상태메모내용*/
private String sttusMemoCn;
/*관리자메모내용*/
private String mngrMemoCn;
/*관리자 고유번호*/
private String mngrInnb;
/*스마트쇼핑환불신청일시*/
private String smrtShopngRefndReqstDt;
/*스마트쇼핑환불완료일시*/
private String smrtShopngRefndComptDt;
/*cancel_done, refund_request*/
private String smrtShopngRefndProcsSttusCd;
/*스마트쇼핑클레임발생금액*/
private Integer smrtShopngClaimOccrrncAmt;
/*스마트쇼핑초도배송비금액*/
private Integer smrtShopngFrsttmeDlvyAmtAmt;
/*반품환불보류상품번호내용*/
private String returnRefndDferGoodsNbCn;
/*사용여부*/
private String useAt;
/*처리대상자 구분*/
private String procsTargetDv;
/**신청(request), 완료(complete), 철회(retraction)*/
private String returnProcsSttusCd;
/**반품사유코드*/
private String returnResnCd;
/**고객-단순변심,고객-오주문,본사-배송지연,본사-상품불량,본사-상품파손,본사-상품품절,본사-오배송*/
private String returnDtlResnCd;
/**반품사유내용*/
private String returnResnCn;
/**고객이배송(user),상점이회수(shop)*/
private String returnMthCd;
/** 반품고객전화번호 */
private String returnCstmrTelnb;
/** 반품고객휴대폰번호 */
private String returnCstmrMbtlnb;
/** 반품배송비금액 */
private String returnDlvyAmt;
/** company,provider */
private String returnDlvyAmtRecptTrgetCd;
/**구매자(buyer), 판매자(seller)*/
private String returnDlvyRspnsblCd;
/**직접 송금(A), 환불금액에서 차감(M), 택배상자 동봉(D)*/
private String returnDlvyPymntTyCd;
/**반품배송비입금자명*/
private String returnDlvyAmtRcpmnyerNm;
/**반품배송비입금계좌번호*/
private String returnDlvyAmtRcpmnyAcntnb;
/**회수지우편번호*/
private String zip;
/**지번(zibun), 도로명(street)*/
private String adresDvCd;
/**회수지지번주소*/
private String lnbAdres;
/**회수지도로명주소*/
private String rnmAdres;
/**회수지주소상세*/
private String dtlAdres;
/**반품접수일시*/
private String returnRceptDt;
/**반품완료일시*/
private String returnComptDt;
/**스마트쇼핑반품요청일시*/
private String smrtShopngReturnReqstDt;
/**스마트쇼핑반품완료일시*/
private String smrtShopngReturnComptDt;
/**return_request, collect_done, return_deliveryfee, return_done, exchange_done*/
private String smrtShopngReturnProcsSttusCd;
/** 지번 or 도로명 주소 */
private String lnbOrRnmAdres;
/** 반품 환불 상품 옵션 리스트 */
// private List<OrderReItemVO> orderReItemVOList;
private String serverDv;
}

View File

@@ -0,0 +1,62 @@
package com.wb.domainserver.domain.sopmal.mpage.ordr.vo;
import com.wb.domainserver.domain.comm.vo.AbstractVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 위시리스트 VO
*
* @author 추지훈
* @since 2024-03-21
* @version 1.0
* @see
*
* <pre>
* == (Modification Information) == 개정이력
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2024-03-21 추지훈 최초 생성
*
* </pre>
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class MyWishVO extends AbstractVO {
private static final long serialVersionUID = 1L;
/** 위시리스트 고유번호 */
private String wslistInnb;
/** 상품 고유번호 */
private Integer goodsInnb;
/** 쇼핑몰코드 */
private String sopmalCd;
/** 회원 고유번호 */
private Integer mbrInnb;
/** 회원 구분 코드 */
private String mbrDvCd;
/** AGENT */
private String agent;
/** AGENTID */
private String agentId;
/** IP */
private String ip;
/** 위시리스트 고유번호 배열 */
private String[] wslistInnbArr;
private String serverDv;
}