fo bo 머지작업(sopmal)

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

View File

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

View File

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

View File

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