초기소스
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
package com.wb.domainserver.domain.mngr.alarm.controller;
|
||||
|
||||
import com.wb.domainserver.domain.mngr.alarm.vo.AlarmSrchVo;
|
||||
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 lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.CookieValue;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
@Controller
|
||||
@RequestMapping(value = "/mngr/alarm")
|
||||
@Slf4j
|
||||
public class AlarmController {
|
||||
|
||||
/** WebClient 호출을 위한 wrapper */
|
||||
@Autowired
|
||||
private WnbtWebClientResponseHandler responseHandler;
|
||||
|
||||
@Autowired
|
||||
private SendToResrc sendToResrc;
|
||||
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value = "/select/selectAlarmCount")
|
||||
public ResponseEntity<WnbtResponse> selectAlarmCount(@CookieValue(value = "authSopmalCd") String authSopmalCd, AlarmSrchVo vo) {
|
||||
|
||||
log.debug("selectAlarmCount()");
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO,"/gcone/alarm/select/selectAlarmCount",vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.wb.domainserver.domain.mngr.alarm.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class AlarmSrchVo extends AbstractVO {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String sopmalCd;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,162 @@
|
||||
package com.wb.domainserver.domain.mngr.analytics.controller;
|
||||
|
||||
import com.wb.domainserver.domain.mngr.analytics.vo.AnalyticsErpGoodsSrchVO;
|
||||
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 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.*;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Controller
|
||||
@RequestMapping(value = "/mngr/analytics")
|
||||
@Slf4j
|
||||
public class AnalyticsController {
|
||||
|
||||
/** WebClient 호출을 위한 wrapper */
|
||||
@Autowired
|
||||
private WnbtWebClientResponseHandler responseHandler;
|
||||
|
||||
@Autowired
|
||||
private SendToResrc sendToResrc;
|
||||
|
||||
/**
|
||||
* 매출일지 리스트
|
||||
* @return String JSP 경로
|
||||
*/
|
||||
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value ="/select/sales-journal")
|
||||
public String selectSummaryList (AnalyticsErpGoodsSrchVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
log.debug("selectSummaryList()");
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/analytics/select/sales-journal", ""),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/analytics/SalesJournal";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* ERP 제상품 현황 화면
|
||||
* @return String JSP 경로
|
||||
*/
|
||||
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value ="/select/erp-goods")
|
||||
public String selectErpGoodsList (AnalyticsErpGoodsSrchVO vo , ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
log.debug("selectErpGoodsList()");
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/analytics/select/erp-goods", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/analytics/ErpGoods";
|
||||
}
|
||||
|
||||
/**
|
||||
* ERP 제상품현황 리스트
|
||||
* @return String JSP 경로
|
||||
*/
|
||||
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value ="/select/erp-goodsR")
|
||||
public String selectErpGoodsListR (AnalyticsErpGoodsSrchVO vo , ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
log.debug("selectErpGoodsListR()");
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/analytics/select/erp-goodsR", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/analytics/ErpGoodsR";
|
||||
}
|
||||
|
||||
/**
|
||||
* ERP 세트상품 화면
|
||||
* @return String JSP 경로
|
||||
*/
|
||||
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value ="/select/erp-set-goods")
|
||||
public String selectErpSetGoodsList (AnalyticsErpGoodsSrchVO vo , ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
log.debug("selectErpSetGoodsList()");
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/analytics/select/erp-set-goods", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/analytics/ErpSetGoods";
|
||||
}
|
||||
|
||||
/**
|
||||
* ERP 세트상품 리스트
|
||||
* @return String JSP 경로
|
||||
*/
|
||||
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value ="/select/erp-set-goodsR")
|
||||
public String selectErpSetGoodsListR (AnalyticsErpGoodsSrchVO vo , ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
log.debug("selectErpSetGoodsListR()");
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/analytics/select/erp-set-goodsR", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/analytics/ErpSetGoodsR";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 제상품 내역 업데이트
|
||||
* @param jsonData 게시판 등록 파라미터 jsonData
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/update/erp-goods" , method= RequestMethod.POST)
|
||||
@ResponseBody
|
||||
public ResponseEntity<WnbtResponse> updatePuriOrder(@RequestBody List<Map<String,Object>> jsonData){
|
||||
|
||||
log.debug(" 검색 파라미터 확인 231: {}", jsonData);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/analytics/update/erp-goods", jsonData),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.wb.domainserver.domain.mngr.analytics.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class AnalyticsErpGoodsSrchVO extends AbstractVO {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String sopmalCd;
|
||||
|
||||
private String brandCd;
|
||||
|
||||
private String barcode;
|
||||
|
||||
private String goodsName;
|
||||
|
||||
private String setCode;
|
||||
|
||||
private String setGoodsName;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,105 @@
|
||||
package com.wb.domainserver.domain.mngr.api.controller;
|
||||
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.wb.domainserver.domain.mngr.api.service.ApiService;
|
||||
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.dataaccess.DataMap;
|
||||
import com.wb.domainserver.util.string.StringUtil;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
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.*;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Map;
|
||||
|
||||
@Controller
|
||||
@RequestMapping(value = "/mngr/api")
|
||||
@Slf4j
|
||||
public class ApiController {
|
||||
|
||||
/** WebClient 호출을 위한 wrapper */
|
||||
@Autowired
|
||||
private WnbtWebClientResponseHandler responseHandler;
|
||||
|
||||
@Autowired
|
||||
private SendToResrc sendToResrc;
|
||||
|
||||
@Autowired
|
||||
private ApiService service;
|
||||
|
||||
/**
|
||||
* Order Api
|
||||
* 주문내역 api
|
||||
*/
|
||||
@ResponseBody
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value ="/select/selectOrderList", method = RequestMethod.POST)
|
||||
public String selectOrderList (@RequestBody Map<String, Object> requestBody, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd, HttpServletResponse response, HttpServletRequest request) throws IOException {
|
||||
|
||||
String clientIp = request.getHeader("X-Forwarded-For");
|
||||
String agentId = request.getHeader("agent_id");
|
||||
String sessionId = request.getHeader("session_id");
|
||||
|
||||
DataMap logParams = new DataMap();
|
||||
if (!StringUtil.isEmpty(clientIp) && clientIp.contains(",")) {
|
||||
clientIp = clientIp.split(",")[0];
|
||||
}
|
||||
|
||||
log.debug("clientIp :: {}", clientIp);
|
||||
|
||||
if (!clientIp.startsWith("221.139.65.203")) {
|
||||
response.sendError(HttpServletResponse.SC_FORBIDDEN,"Forbidden: 외부 네트워크 접근 금지");
|
||||
service.insertMngrApiAccessLog(request,response,"N","외부 네트워크 접근 금지","");
|
||||
return null;
|
||||
}
|
||||
|
||||
log.debug("selectOrderList()");
|
||||
log.debug("✅ 받은 요청 바디: " + requestBody);
|
||||
requestBody.put("authSopmalCd", authSopmalCd);
|
||||
String listStr = "";
|
||||
String clearDataStr = "";
|
||||
ResponseEntity<WnbtResponse> boResponse = responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/api/select/selectOrderList", requestBody),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
// CSV 추출
|
||||
Object resultObj = boResponse.getBody().getResBody().getResult();
|
||||
if (resultObj instanceof String) {
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
JsonNode outerJson = mapper.readTree((String) resultObj);
|
||||
JsonNode listNode = outerJson.get("list");
|
||||
JsonNode clearDataNode = outerJson.get("clearData");
|
||||
|
||||
if (listNode != null && !listNode.isNull()) {
|
||||
listStr = listNode.toString();
|
||||
} else {
|
||||
log.warn("⚠️ 'list' 필드가 존재하지 않음");
|
||||
}
|
||||
|
||||
if (clearDataNode != null && !clearDataNode.isNull()) {
|
||||
clearDataStr = clearDataNode.toString();
|
||||
} else {
|
||||
log.warn("⚠️ 'clearDataStr' 필드가 존재하지 않음");
|
||||
}
|
||||
|
||||
}
|
||||
int clearDataStrLength = Math.min(clearDataStr.length(), 1000);
|
||||
String responseData = clearDataStr.substring(0,clearDataStrLength);
|
||||
|
||||
service.insertMngrApiAccessLog(request,response,"Y","",responseData);
|
||||
return listStr;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,116 @@
|
||||
package com.wb.domainserver.domain.mngr.api.service;
|
||||
|
||||
import com.wb.domainserver.domain.log.mapper.LogMapper;
|
||||
import com.wb.domainserver.util.dataaccess.DataMap;
|
||||
import com.wb.domainserver.util.string.StringUtil;
|
||||
import jakarta.servlet.http.Cookie;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
public class ApiService {
|
||||
|
||||
private final LogMapper mapper;
|
||||
|
||||
|
||||
public void insertMngrApiAccessLog(HttpServletRequest request, HttpServletResponse response, String successFlag, String failMsg, String responseData) throws IOException {
|
||||
|
||||
String sessionId = request.getHeader("session_id");
|
||||
String userAgent = request.getHeader("User-Agent");
|
||||
String clientIp = request.getHeader("X-Forwarded-For");
|
||||
String agentId = "";
|
||||
String authSopmalCd = "";
|
||||
DataMap dataMap = new DataMap();
|
||||
|
||||
// 호출된 메소드 이름
|
||||
String methodName = "selectOrderList";
|
||||
|
||||
// 요청 URL
|
||||
String url = request.getRequestURI();
|
||||
|
||||
// 요청 파라미터
|
||||
String postParam = "";
|
||||
|
||||
if ("POST".equalsIgnoreCase(request.getMethod())) {
|
||||
if ("application/json".equalsIgnoreCase(request.getContentType())) {
|
||||
try {
|
||||
postParam = new String(request.getInputStream().readAllBytes(), request.getCharacterEncoding());
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// agentId 가져오기
|
||||
if (request.getCookies() != null) {
|
||||
Cookie[] cookies = request.getCookies();
|
||||
for (Cookie cookie : cookies) {
|
||||
if (cookie.getName().equals("agent_id")) {
|
||||
agentId = cookie.getValue();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//접속환경
|
||||
String env;
|
||||
String upperUseAgent = userAgent.toUpperCase();
|
||||
if (upperUseAgent.contains("MOBILE") || upperUseAgent.contains("ANDROID") || upperUseAgent.contains("IPHONE")) {
|
||||
env = "MO";
|
||||
} else if (upperUseAgent.contains("TABLET") || upperUseAgent.contains("IPAD")) {
|
||||
env = "MO";
|
||||
} else {
|
||||
env = "PC";
|
||||
}
|
||||
|
||||
//ip 분리
|
||||
if (!StringUtil.isEmpty(clientIp) && clientIp.contains(",")) {
|
||||
clientIp = clientIp.split(",")[0];
|
||||
}
|
||||
|
||||
if (request.getCookies() != null) {
|
||||
for (Cookie cookie : request.getCookies()) {
|
||||
if (cookie.getName().equals("authSopmalCd")) {
|
||||
authSopmalCd = cookie.getValue();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//sessionId 정보
|
||||
String jSessionId = "";
|
||||
if (request.getCookies() != null) {
|
||||
for (Cookie cookie : request.getCookies()) {
|
||||
if (cookie.getName().equals("JSESSIONID")) {
|
||||
jSessionId = cookie.getValue();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
log.debug("clientIp :: {}", clientIp);
|
||||
|
||||
dataMap.put("sesionId", sessionId);
|
||||
dataMap.put("reqstMth", methodName);
|
||||
dataMap.put("agentId",agentId);
|
||||
dataMap.put("ip",clientIp);
|
||||
dataMap.put("conectEnvrnDv", env);
|
||||
dataMap.put("reqstData", postParam);
|
||||
dataMap.put("sopmalCd", authSopmalCd);
|
||||
dataMap.put("conectUrl",url);
|
||||
dataMap.put("jSessionId", jSessionId);
|
||||
dataMap.put("successYn", successFlag);
|
||||
dataMap.put("errorCode",failMsg);
|
||||
dataMap.put("responseData", responseData);
|
||||
|
||||
mapper.insertMngrApiAccessLog(dataMap);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.wb.domainserver.domain.mngr.api.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class ApiSrchVO extends AbstractVO {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String sopmalCd;
|
||||
|
||||
private String timeStamp;
|
||||
|
||||
private String data;
|
||||
|
||||
private String hash;
|
||||
}
|
||||
@@ -0,0 +1,483 @@
|
||||
package com.wb.domainserver.domain.mngr.bbs.bbsmngr.controller;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.wb.domainserver.common.msg.GconeMessageSource;
|
||||
import com.wb.domainserver.domain.mngr.bbs.bbsmngr.vo.BbsmngrVO;
|
||||
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.communicate.ValidateResultConverter;
|
||||
import com.wb.domainserver.util.string.StringUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
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.CookieValue;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* BbsmngrController Class (front)
|
||||
*
|
||||
* @author 최범식
|
||||
* @since 2023-12-12
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2023-12-12 최범식 최초 생성
|
||||
* 2024-04-25 추지훈 수정
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
|
||||
@Slf4j
|
||||
@Controller
|
||||
@RequestMapping("/mngr/bbs/bbsmngr")
|
||||
public class BbsmngrController {
|
||||
|
||||
/** WebClient 호출을 위한 wrapper */
|
||||
@Autowired
|
||||
private WnbtWebClientResponseHandler responseHandler;
|
||||
|
||||
@Autowired
|
||||
private SendToResrc sendToResrc;
|
||||
|
||||
/** 공통 메시지 처리를 위한 메시지 객체 */
|
||||
@Autowired
|
||||
private GconeMessageSource gconeMessageSource;
|
||||
|
||||
@Value("${mngrfo.common.board.nc.ntcntalkSndngFormInnb01}")
|
||||
private String ntcntalkSndngFormInnb1;
|
||||
|
||||
@Value("${mngrfo.common.board.nc.ntcntalkSndngFormInnb02}")
|
||||
private String ntcntalkSndngFormInnb2;
|
||||
|
||||
/**
|
||||
* 게시판 화면
|
||||
* @param BbsmngrVO 게시판 등록 파라미터 VO
|
||||
* @return String JSP 경로
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectBbsListInqireForm")
|
||||
public String selectBbsListInqireForm(BbsmngrVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOBbsListInqireFrom", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
return "mngr/bbs/bbsmngr/BbsListRForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 게시판 목록 조회
|
||||
* @param BbsmngrVO 게시판 등록 파라미터 VO
|
||||
* @return String JSP 경로
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectBbsListInqire")
|
||||
public String selectBbsListInqire(BbsmngrVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOBbsListInqire", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bbs/bbsmngr/BbsListR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 안내 허용 도메인 파일 팝업
|
||||
* @param BbsmngrVO 게시판 등록 파라미터 VO
|
||||
* @param model 모델객체
|
||||
* @return String JSP 경로
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectGuidancePermDomnFilPopup", method = RequestMethod.GET)
|
||||
public ResponseEntity<WnbtResponse> selectGuidancePermDomnFilPopup(BbsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOSlangDftSetupPopupForm", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
/**
|
||||
* 안내 허용 도메인 파일 수정
|
||||
* @param BbsmngrVO 게시판 등록 파라미터 VO
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/updateGuidancePermDomnFil" , method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateGuidancePermDomnFil(BbsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/updateBOSlangSetupRegist", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
/**
|
||||
* 비속어 기본 설정 팝업
|
||||
* @param BbsmngrVO 게시판 등록 파라미터 VO
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectSlangDftSetupPopupForm", method = RequestMethod.GET)
|
||||
public ResponseEntity<WnbtResponse> selectSlangDftSetupPopupForm(BbsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOSlangDftSetupPopupForm", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
/**
|
||||
* 비속어 설정 저장
|
||||
* @param BbsmngrVO 게시판 등록 파라미터 VO
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/updateSlangSetupRegist" , method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateSlangSetupRegist(BbsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/updateBOSlangSetupRegist", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
/**
|
||||
* 게시판 등록화면
|
||||
* @param BbsmngrVO 게시판 등록 파라미터 VO
|
||||
* @return String JSP 경로
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectBbsRegistForm")
|
||||
public String selectBbsRegistForm(BbsmngrVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setNtcntalkSndngFormInnbArr(new String[] {ntcntalkSndngFormInnb1, ntcntalkSndngFormInnb2});
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
Map<String,Object> resultMap = responseHandler.handleResponseAsMap(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOBbsRegistForm",vo)
|
||||
);
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
try {
|
||||
resultMap.put("updBbsList", objectMapper.writeValueAsString(resultMap.get("updBbsList")));
|
||||
|
||||
} catch (WnbtRestException wre){
|
||||
throw new WnbtRestException(wre.getMessage());
|
||||
} catch(Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
model.addAttribute("resultMap", resultMap);
|
||||
|
||||
return "mngr/bbs/bbsmngr/BbsRegistC";
|
||||
}
|
||||
|
||||
/**
|
||||
* 게시판 등록
|
||||
* @param BbsmngrVO 게시판 등록 파라미터 VO
|
||||
* @param bindingResult 바인딩 및 정합성 점검결과 객체
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/insertBbsRegist", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> insertBbsRegist(@Validated BbsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd, BindingResult bindingResult){
|
||||
|
||||
if(bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
List<Map<String, String>> errorList = new ArrayList<>();
|
||||
if (vo.getPgeVtcCnt() <= 0) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("pgeVtcCnt", gconeMessageSource.getMessage("errors.required", new Object[]{"페이지세로건수는 최소 1 입니다."})));
|
||||
}
|
||||
//메시지 문자 내용 없을 시
|
||||
if ("01".equals(vo.getBbscttSndngMthCd())) {
|
||||
List<String> nullChk = new ArrayList<>();
|
||||
if (vo.getSmsCnArr() != null) {
|
||||
for (int i = 0; i < vo.getSmsCnArr().length; i++) {
|
||||
if (StringUtil.isEmpty(vo.getSmsCnArr()[i])) {
|
||||
nullChk.add("Y");
|
||||
}
|
||||
}
|
||||
}
|
||||
if (nullChk != null) {
|
||||
if (nullChk.size() == 2) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("smsCnArr", gconeMessageSource.getMessage("errors.required", new Object[]{"문자 양식"})));
|
||||
}
|
||||
}
|
||||
}
|
||||
//파일 첨부 사용 시 파일 확장자 없을 때
|
||||
if ("Y".equals(vo.getFilAtchUseAt())) {
|
||||
if (StringUtil.isEmpty(vo.getFilPermFilExtsn())) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("smsCnArr", gconeMessageSource.getMessage("errors.required", new Object[]{"파일 첨부 허용 파일 확장자"})));
|
||||
} else {//띄어쓰기, 앞 뒤 공백 제거
|
||||
vo.setFilPermFilExtsn(vo.getFilPermFilExtsn().replace(" ", "").trim());
|
||||
}
|
||||
}
|
||||
if (errorList != null && errorList.size() > 0) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList));
|
||||
}
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/insertBOBbsRegist", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
/**
|
||||
* 게시판 아이디 중복확인
|
||||
* @param BbsmngrVO 게시판 등록 파라미터 VO
|
||||
* @param bindingResult 바인딩 및 정합성 점검결과 객체
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectBbsIdDplctCnfirm", method = RequestMethod.GET)
|
||||
public ResponseEntity<WnbtResponse> selectBbsIdDplctCnfirm(BbsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
List<Map<String, String>> errorList = new ArrayList<>();
|
||||
final String REGEX_ID = "^[A-Za-z[0-9]-_$]{6,30}$";
|
||||
Pattern boardId = Pattern.compile(REGEX_ID);
|
||||
if (!boardId.matcher(vo.getBbsId()).matches()) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("boradId", gconeMessageSource.getMessage("errors.boardId", new Object[] {"게시판 아이디"})));
|
||||
}
|
||||
if(errorList != null && !errorList.isEmpty()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList));
|
||||
}
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOBbsIdDplctCnfirm", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
/**
|
||||
* 게시판 수정 폼
|
||||
* @param BbsmngrVO 게시판 등록 파라미터 VO
|
||||
* @param model 모델객체
|
||||
* @return String JSP 경로
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectBbsDtlUpdtForm")
|
||||
public String selectBbsDtlUpdtForm(BbsmngrVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setNtcntalkSndngFormInnbArr(new String[] {ntcntalkSndngFormInnb1, ntcntalkSndngFormInnb2});
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
Map<String,Object> resultMap = responseHandler.handleResponseAsMap(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOBbsDtlUpdtForm",vo)
|
||||
);
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
try {
|
||||
resultMap.put("updBbsList", objectMapper.writeValueAsString(resultMap.get("updBbsList")));
|
||||
|
||||
} catch (WnbtRestException wre){
|
||||
throw new WnbtRestException(wre.getMessage());
|
||||
} catch(Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
model.addAttribute("resultMap", resultMap);
|
||||
|
||||
return "mngr/bbs/bbsmngr/BbsDtlUpdtU";
|
||||
}
|
||||
/**
|
||||
* 게시판 수정
|
||||
* @param BbsmngrVO 게시판 등록 파라미터 VO
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/updateBbsUpdt")
|
||||
public ResponseEntity<WnbtResponse> updateBbsUpdt(@Validated BbsmngrVO vo, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
if(bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
List<Map<String, String>> errorList = new ArrayList<>();
|
||||
if("0".equals(vo.getGnrlRvwMlgValidMtCnt())){
|
||||
throw new WnbtRestException("일반후기 마일리지 유효 월 수는 0 이상 이여야 합니다");
|
||||
}
|
||||
if("0".equals(vo.getPhotoRvwMlgValidMtCnt())){
|
||||
throw new WnbtRestException("포토후기 마일리지 유효 월 수는 0 이상 이여야 합니다");
|
||||
}
|
||||
if(vo.getAditPymntMlgAccmlmnyAmt() != null && "0".equals(vo.getAditPymntMlgValidMtCnt())){
|
||||
throw new WnbtRestException("추가지급 마일리지 유효 월 수는 0 이상 이여야 합니다");
|
||||
}
|
||||
|
||||
//메시지 문자 내용 없을 시
|
||||
if ("01".equals(vo.getBbscttSndngMthCd())){
|
||||
List<String> nullChk = new ArrayList<>();
|
||||
if(vo.getSmsCnArr() != null){
|
||||
for (int i = 0; i < vo.getSmsCnArr().length; i++) {
|
||||
if (StringUtil.isEmpty(vo.getSmsCnArr()[i])) {
|
||||
nullChk.add("Y");
|
||||
}
|
||||
}
|
||||
}
|
||||
if(nullChk != null){
|
||||
if (nullChk.size() == 2) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("smsCnArr", gconeMessageSource.getMessage("errors.required", new Object[]{"문자 양식"})));
|
||||
}
|
||||
}
|
||||
}
|
||||
//파일 첨부 사용 시 파일 확장자 없을 때
|
||||
if ("Y".equals(vo.getFilAtchUseAt())){
|
||||
if(StringUtil.isEmpty(vo.getFilPermFilExtsn())){
|
||||
errorList.add(ValidateResultConverter.setErrorMap("smsCnArr", gconeMessageSource.getMessage("errors.required", new Object[]{"파일 첨부 허용 파일 확장자"})));
|
||||
}else{//띄어쓰기, 앞 뒤 공백 제거
|
||||
vo.setFilPermFilExtsn(vo.getFilPermFilExtsn().replace(" ","").trim());
|
||||
}
|
||||
}
|
||||
if(errorList != null && errorList.size() > 0) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList));
|
||||
}
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/updateBOBbsUpdt", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
/**
|
||||
* 게시판 복사 폼
|
||||
* @param BbsmngrVO 게시판 등록 파라미터 VO
|
||||
* @param model 모델객체
|
||||
* @return String JSP 경로
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectBbsCopyForm")
|
||||
public String selectBbsCopyForm(BbsmngrVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setNtcntalkSndngFormInnbArr(new String[] {ntcntalkSndngFormInnb1, ntcntalkSndngFormInnb2});
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
Map<String,Object> resultMap = responseHandler.handleResponseAsMap(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOBbsDtlUpdtForm",vo)
|
||||
);
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
try {
|
||||
resultMap.put("updBbsList", objectMapper.writeValueAsString(resultMap.get("updBbsList")));
|
||||
|
||||
} catch (WnbtRestException wre){
|
||||
throw new WnbtRestException(wre.getMessage());
|
||||
} catch(Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
model.addAttribute("resultMap", resultMap);
|
||||
|
||||
return "mngr/bbs/bbsmngr/BbsCopyC";
|
||||
}
|
||||
/**
|
||||
* 게시판 삭제
|
||||
* @param BbsmngrVO 게시판 등록 파라미터 VO
|
||||
* @return String JSP 경로
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/deleteBbsDel")
|
||||
public ResponseEntity<WnbtResponse> deleteBbsDel(BbsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/updateBOBbsDel", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
/**
|
||||
* 게시글 대시보드 조회폼
|
||||
* @param BbsmngrVO 게시판 등록 파라미터 VO
|
||||
* @param model 모델객체
|
||||
* @return String JSP 경로
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectBbscttDshboardInqireForm")
|
||||
public String selectBbscttDshboardInqireForm(BbsmngrVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
Map<String,Object> resultMap = responseHandler.handleResponseAsMap(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOBbscttDshboardInqireForm",vo)
|
||||
);
|
||||
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
|
||||
try {
|
||||
resultMap.put("updBbsList", objectMapper.writeValueAsString(resultMap.get("updBbsList")));
|
||||
|
||||
} catch (WnbtRestException wre){
|
||||
throw new WnbtRestException(wre.getMessage());
|
||||
} catch(Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
model.addAttribute("resultMap", resultMap);
|
||||
|
||||
return "mngr/bbs/bbsmngr/BbscttDshboardForm";
|
||||
}
|
||||
/**
|
||||
* 게시글 대시보드 조회
|
||||
* @param BbsmngrVO 게시판 등록 파라미터 VO
|
||||
* @param model 모델객체
|
||||
* @return String JSP 경로
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectBbscttDshboardInqire")
|
||||
public String selectBbscttDshboardInqire(BbsmngrVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOBbscttDshboardInqire", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bbs/bbsmngr/BbscttDshboardR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 주요 게시판 보기 설정 팝업
|
||||
* @param BbsmngrVO
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectMainBbsExpsrSetupPopupForm")
|
||||
public ResponseEntity<WnbtResponse> selectMainBbsExpsrSetupPopupForm(BbsmngrVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/selectBOMainBbsExpsrSetupPopupForm", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
/**
|
||||
* 주요 게시판 보기 설정 수정
|
||||
* @param BbsmngrVO 게시판 등록 파라미터 VO
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/updateMainBbsExpsrSetupUpdt" , method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateMainBbsExpsrSetupUpdt(BbsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/bbs/updateBOMainBbsExpsrSetupUpdt", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,329 @@
|
||||
package com.wb.domainserver.domain.mngr.bbs.bbsmngr.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class BbsmngrVO extends AbstractVO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 게시판 게시판 번호 */
|
||||
private String rnum;
|
||||
/** 게시판 게시판 ID */
|
||||
@NotEmpty(message = "게시판 ID")
|
||||
private String bbsId;
|
||||
/** 게시판 쇼핑몰 코드 */
|
||||
private String sopmalCd;
|
||||
/** 게시판 설정정보 고유번호 */
|
||||
private String setupInfoInnb;
|
||||
/** 게시판 게시판명 */
|
||||
@NotEmpty(message = "게시판명")
|
||||
private String bbsNm;
|
||||
/** 게시판 게시판 유형 */
|
||||
private String bbsTyCd;
|
||||
/** 게시판 게시판 유형명 */
|
||||
private String bbsTyNm;
|
||||
/** 게시판 스킨 (리스트형, 갤러리형, 아코디언형) */
|
||||
private String sknTyCd;
|
||||
/** 게시판 읽기 사용여부 */
|
||||
private String bbscttRedngUseAt;
|
||||
/** 게시판 읽기 전체 | 회원 */
|
||||
private String bbscttRedngAuthorDvCd;
|
||||
/** 게시판 쓰기 사용여부 */
|
||||
private String bbscttRegistUseAt;
|
||||
/** 게시판 쓰기 전체 | 회원 */
|
||||
private String bbscttRegistAuthorDvCd;
|
||||
/** 게시판 답글 사용여부 */
|
||||
private String answRegistUseAt;
|
||||
/** 게시판 답글 전체 | 회원 */
|
||||
private String answRegistAuthorDvCd;
|
||||
/** 게시판 댓글 사용여부 */
|
||||
private String cmRegistUseAt;
|
||||
/** 게시판 댓글 전체 | 회원 */
|
||||
private String cmRegistAuthorDvCd;
|
||||
/** 게시판 게시글평가사용여부 */
|
||||
private String bbscttEvlUseAt;
|
||||
/** 게시판 추천/비추천, 추천 */
|
||||
private String bbscttEvlRecomendStep;
|
||||
/** 게시판 댓글평가사용여부 */
|
||||
private String cmEvlUseAt;
|
||||
/** 게시판 추천/비추천, 추천 */
|
||||
private String cmEvlRecomendStep;
|
||||
/** 게시판 기본내용사용여부 */
|
||||
private String dftCnUseAt;
|
||||
/** 게시판 기본내용 */
|
||||
private String dftCn;
|
||||
/** 게시판 모바일기본내용사용여부 */
|
||||
private String mblDftCnUseAt;
|
||||
/** 게시판 모바일기본내용 */
|
||||
private String mblDftCn;
|
||||
/** 게시판 비밀글사용여부 */
|
||||
private String secretBbscttUseAt;
|
||||
/** 게시판 자동등록방지사용여부 */
|
||||
private String atmcRegistPrvnUseAt;
|
||||
/** 게시판 파일첨부사용여부 */
|
||||
private String filAtchUseAt;
|
||||
/** 게시판 댓글설정사용여부 */
|
||||
private String cmSetupUseAt;
|
||||
/** 게시판 추천상품노출여부 */
|
||||
private String recomendGoodsExpsrAt;
|
||||
/** 게시판 비속어 개별 | 통합 */
|
||||
private String slangFlterUseAt;
|
||||
/** 게시판 페이지세로건수 */
|
||||
private Integer pgeVtcCnt;
|
||||
/** 게시판 페이지가로건수 */
|
||||
private Integer pgeWthCnt;
|
||||
/** 게시판 아이디(등급),아이디, 이름(등급),이름,이름(아이디,등급),이름(아이디) */
|
||||
private String wrterIndictTyCd;
|
||||
/** 게시판 관리자명 */
|
||||
private String mngrNm;
|
||||
/** 게시판 게시글발송방식코드 */
|
||||
private String bbscttSndngMthCd;
|
||||
/** 게시판 리뷰노출여부 */
|
||||
private String bbsExpsrAt;
|
||||
/** 게시판 상품상세페이지 노출건수 */
|
||||
private String goodsDtlPgeExpsrCnt;
|
||||
/** 게시판 신규게시물기준일수 */
|
||||
private String newNttStdrDeCnt;
|
||||
/** 게시판 인기게시물기준조회건수 */
|
||||
private String popularNttStdrInqireCnt;
|
||||
/** 리스트표시여부_번호 */
|
||||
private String innbYn;
|
||||
/** 리스트표시여부_제목 */
|
||||
private String sjYn;
|
||||
/** 리스트표시여부_내용 */
|
||||
private String cnYn;
|
||||
/** 리스트표시여부_작성자 */
|
||||
private String regusrNmYn;
|
||||
/** 리스트표시여부_등록일 */
|
||||
private String registDtYn;
|
||||
/** 리스트표시여부_공지기간 */
|
||||
private String ntcDeYn;
|
||||
/** 리스트표시여부_조회수 */
|
||||
private String inqireCntYn;
|
||||
|
||||
/** 게시판 마일리지 */
|
||||
/** 게시판 작성글자수 */
|
||||
private String writngChrCnt;
|
||||
/** 게시판 일반후기마일리지적립금액 */
|
||||
private String gnrlRvwMlgAccmlmnyAmt;
|
||||
/** 게시판 일반후기마일리지유효월수 */
|
||||
private String gnrlRvwMlgValidMtCnt;
|
||||
/** 게시판 포토후기마일리지적립금액 */
|
||||
private String photoRvwMlgAccmlmnyAmt;
|
||||
/** 게시판 포토후기마일리지유효월수 */
|
||||
private String photoRvwMlgValidMtCnt;
|
||||
/** 게시판 추가마일리지지급시작일자 */
|
||||
private String aditMlgPymntBgnDe;
|
||||
/** 게시판 추가마일리지지급종료일자 */
|
||||
private String aditMlgPymntEndDe;
|
||||
/** 게시판 추가지급마일리지적립금액 */
|
||||
private String aditPymntMlgAccmlmnyAmt;
|
||||
/** 게시판 추가지급마일리지유효월수 */
|
||||
private String aditPymntMlgValidMtCnt;
|
||||
/** 게시판 마일리지 자동 지급 여부 */
|
||||
private String goodsRvwMlgPymntAt;
|
||||
|
||||
/** 게시판 주요게시판여부 */
|
||||
private String mainBbsAt;
|
||||
/** 게시판 주요게시판노출순서 */
|
||||
private String mainBbsExpsrOrdr;
|
||||
|
||||
/** 게시판 전체 | 회원 */
|
||||
private String[] redngAuthorDvCdArr;
|
||||
private String[] registAuthorDvCdArr;
|
||||
private String[] answRegistAuthorDvCdArr;
|
||||
private String[] cmRegistAuthorDvCdArrArr;
|
||||
private String[] bbscttRedngAuthorDvCd_c;
|
||||
private String[] bbscttRegistAuthorDvCd_c;
|
||||
private String[] answRegistAuthorDvCd_c;
|
||||
private String[] cmRegistAuthorDvCd_c;
|
||||
|
||||
/** 게시판 기능 권한 [] 값 */
|
||||
private String bbscttRedngAuthorDvCdNm;
|
||||
private String bbscttRegistAuthorDvCdNm;
|
||||
private String answRegistAuthorDvCdNm;
|
||||
private String cmRegistAuthorDvCdNm;
|
||||
|
||||
/** 게시판읽기 권한 회원 _ 전체여부 */
|
||||
private String bbscttRedngAuthorDvCd_c_all;
|
||||
/** 게시판쓰기 권한 회원 _ 전체여부 */
|
||||
private String bbscttRegistAuthorDvCd_c_all;
|
||||
/** 답변쓰기 권한 회원 _ 전체여부 */
|
||||
private String answRegistAuthorDvCd_c_all;
|
||||
/** 댓글쓰기 권한 회원 _ 전체여부 */
|
||||
private String cmRegistAuthorDvCd_c_all;
|
||||
|
||||
|
||||
public void setBbscttRedngAuthorDvCd_c(String[] bbscttRedngAuthorDvCd_c) {
|
||||
this.redngAuthorDvCdArr = bbscttRedngAuthorDvCd_c;
|
||||
}
|
||||
public void setBbscttRegistAuthorDvCd_c(String[] bbscttRegistAuthorDvCd_c) {
|
||||
this.registAuthorDvCdArr = bbscttRegistAuthorDvCd_c;
|
||||
}
|
||||
public void setAnswRegistAuthorDvCd_c(String[] answRegistAuthorDvCd_c) {
|
||||
this.answRegistAuthorDvCdArr = answRegistAuthorDvCd_c;
|
||||
}
|
||||
public void setCmRegistAuthorDvCd_c(String[] cmRegistAuthorDvCd_c) {
|
||||
this.cmRegistAuthorDvCdArrArr = cmRegistAuthorDvCd_c;
|
||||
}
|
||||
|
||||
/** 게시판 검색어 */
|
||||
private String srchWord;
|
||||
/** 게시판 타입 검색어 */
|
||||
private String[] srchBbsTyCdArr;
|
||||
private String srchBbsTyCd;
|
||||
/** 게시판 스킨 검색어 */
|
||||
private String[] srchSknTyCdArr;
|
||||
private String srchSknTyCd;
|
||||
private String pageDv;
|
||||
|
||||
/** boardform */
|
||||
/** 문항 고유번호 */
|
||||
private String qesitmInnb;
|
||||
/** 문항 고유번호 "분류" */
|
||||
private String inputDvInnb;
|
||||
/** 문항 고유번호 "별점관리" */
|
||||
private String scoreInnb;
|
||||
/** 점수 표시 */
|
||||
private String qesitmInnb_s;
|
||||
/** 분류명 */
|
||||
private String oldDvQesitmInnbs;
|
||||
/** 입력항목 */
|
||||
private String oldIpQesitmInnbs;
|
||||
/** 분류명 */
|
||||
private String[] qesitmInnb_d;
|
||||
/** 입력항목 */
|
||||
private String[] qesitmInnb_i;
|
||||
|
||||
/** 문항명 */
|
||||
private String qesitmNm;
|
||||
/** 입력항목 */
|
||||
private String[] qesitmNm_i;
|
||||
/** 분류명 */
|
||||
private String[] qesitmNm_d;
|
||||
|
||||
private String starDelList;
|
||||
|
||||
/** 문항설명 */
|
||||
private String qesitmDc;
|
||||
private String[] qesitmDc_i;
|
||||
|
||||
/** 추가입력, 추가평가, 분류관리, 별점 */
|
||||
private String aditItmDvCd;
|
||||
/** 입력항목 */
|
||||
private String[] aditItmDv_i;
|
||||
|
||||
/** 문항필수여부 */
|
||||
private String qesitmEssntlAt;
|
||||
private String[] qesitmEssntlAt_i;
|
||||
|
||||
/** 문항사용여부 */
|
||||
private String qesitmUseAt;
|
||||
private String[] qesitmUseAt_i;
|
||||
|
||||
/** 라디오,셀렉트,체크,텍스트,이미지, 점수 */
|
||||
private String itmTyCd;
|
||||
private String itmTyCdNm;
|
||||
/** 입력항목|공지|이벤트 */
|
||||
private String[] itmTy_i;
|
||||
|
||||
/** 문항순서 */
|
||||
private String qesitmOrdr;
|
||||
/** 이미지, 점수 (항목구분 : 별점평가 인 경우만 입력) */
|
||||
private String scoreIndictMthCd;
|
||||
|
||||
/** boardform_itm */
|
||||
/** 항목 고유번호 */
|
||||
private String itmInnb;
|
||||
private String[] oldItmInnbs;
|
||||
private String olddvItmInnbs;
|
||||
private String[] itmInnb_i;
|
||||
/** 항목 내용 */
|
||||
private String itmCn;
|
||||
private String[] itmCn_i;
|
||||
/** 항목 순서 */
|
||||
private String itmOrdr;
|
||||
|
||||
|
||||
/** board_rpus_answ */
|
||||
/** 게시판 자주쓰는답변 고유번호 */
|
||||
private String rpuseAnswInnb;
|
||||
private String oldRpusInnbs;
|
||||
/** 게시판 내용 */
|
||||
private String cn;
|
||||
private List<String> cnArr;
|
||||
/** 게시판 정렬순서 */
|
||||
private String sortOrdr;
|
||||
|
||||
/** board_auth */
|
||||
/** 기능권한 고유번호 */
|
||||
private String fnctAuthorInnb;
|
||||
/** 회원등급 고유번호 */
|
||||
private String mbrGradInnb;
|
||||
/** 회원등급그룹 고유번호 */
|
||||
private String mbrGradGroupInnb;
|
||||
/** 기능구분코드 */
|
||||
private String fnctDvCd;
|
||||
|
||||
|
||||
/** board_design_item */
|
||||
/** 게시판 표시항목 고유번호 */
|
||||
private String indictItmInnb;
|
||||
private String[] rpuseAnswInnbArr;
|
||||
/** 게시판 항목명 */
|
||||
private String itmNm;
|
||||
private String[] itmNmArr;
|
||||
|
||||
/** board_setup_info */
|
||||
/** 게시판 마스킹비속어 */
|
||||
private String mskgSlang;
|
||||
/** 게시판 허용도메인 */
|
||||
private String permDomn;
|
||||
/** 게시판 허용파일확장자 */
|
||||
private String filPermFilExtsn;
|
||||
/** 게시판 허용이미지확장자 */
|
||||
private String permImgExtsn;
|
||||
|
||||
/** board_sms */
|
||||
/** SMS 게시글발송구분코드 */
|
||||
private String bbscttSndngDvCd;
|
||||
private String[] sndngDvCdArr;
|
||||
/** SMS 알림톡 발송양식 고유번호 */
|
||||
private String ntcntalkSndngFormInnb;
|
||||
private String[] ntcntalkSndngFormInnbArr;
|
||||
/** SMS 내용 */
|
||||
private String smsCn;
|
||||
private String[] smsCnArr;
|
||||
/** SMS 알림발송고유번호 */
|
||||
private String ntcnSndngInnb;
|
||||
private String[] ntcnSndngInnbArr;
|
||||
|
||||
/** 게시판 기능권한 */
|
||||
private List<Map<String, Object>> authorList;
|
||||
/** 게시판 추가 문항 + 항목 */
|
||||
private Map<String, Object> addItems;
|
||||
/** 게시판 분류 항목 */
|
||||
private Map<String, Object> divItems;
|
||||
/** 게시판 자주쓰는 질문 */
|
||||
private List<Map<String, Object>> rpusAnsList;
|
||||
/** 게시판 디자인 + 운영 사이트 표시항목 */
|
||||
private Map<String, Object> design;
|
||||
/** 게시판 메시지 발송 */
|
||||
private Map<String, Object> smsSndng;
|
||||
/** 주요 게시판 > 비노출 */
|
||||
private String[] nonExpArr;
|
||||
/** 주요 게시판 > 노출 */
|
||||
private String[] expArr;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,113 @@
|
||||
package com.wb.domainserver.domain.mngr.bbs.cm.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;
|
||||
/**
|
||||
* AGNET_ID
|
||||
*/
|
||||
private String agentId;
|
||||
/**
|
||||
* 사용여부
|
||||
*/
|
||||
private String useAt;
|
||||
/**
|
||||
* 삭제작업자
|
||||
*/
|
||||
private Integer delusr;
|
||||
/**
|
||||
* 삭제일시
|
||||
*/
|
||||
private Date delDt;
|
||||
/**
|
||||
* 작성자 구분 코드
|
||||
*/
|
||||
private String regusrDvCd;
|
||||
/**
|
||||
* 쇼핑몰코드
|
||||
*/
|
||||
private String sopmalCd;
|
||||
/**
|
||||
* 신규댓글
|
||||
*/
|
||||
private String newCm;
|
||||
/**
|
||||
* 댓글삭제리스트
|
||||
*/
|
||||
private String[] delCmInnbArr;
|
||||
/*
|
||||
* 요청 값
|
||||
*/
|
||||
/*요청 페이지 구분(고객센터=>csc , 서브페이지=>subPage, 이용안내 => useGudiance, crm => crm)*/
|
||||
private String reqUrl;
|
||||
|
||||
/* 서버 구분 sopmal or mngr*/
|
||||
private String serverDv;
|
||||
|
||||
/*상세 구분*/
|
||||
private String dtlAt;
|
||||
|
||||
/*사용자 등록,수정시 목록이동 or 등록,수정폼 유지*/
|
||||
private String listAt;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,147 @@
|
||||
package com.wb.domainserver.domain.mngr.bbs.cnslt.controller;
|
||||
|
||||
import com.wb.domainserver.common.msg.GconeMessageSource;
|
||||
import com.wb.domainserver.domain.mngr.bbs.cnslt.vo.CnsltVO;
|
||||
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.*;
|
||||
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.CookieValue;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Controller
|
||||
@RequestMapping("/mngr/bbs/cnslt")
|
||||
@Slf4j
|
||||
public class CnsltController {
|
||||
|
||||
|
||||
/** WebClient 호출을 위한 wrapper */
|
||||
@Autowired
|
||||
private WnbtWebClientResponseHandler responseHandler;
|
||||
|
||||
@Autowired
|
||||
private SendToResrc sendToResrc;
|
||||
|
||||
@Autowired
|
||||
private GconeMessageSource gconeMessageSource;
|
||||
|
||||
|
||||
/**
|
||||
* 고객상담 통합게시판 목록 이동
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectCstmrCnsltUnityBbscttListInqireForm")
|
||||
public String selectCstmrCnsltUnityBbscttListInqireForm(CnsltVO cnsltVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
cnsltVO.setSopmalCd(authSopmalCd);
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cnslt/selectBOCstmrCnsltUnityBbscttListInqireForm", cnsltVO),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bbs/cnslt/CstmrCnsltUnityBbscttListRForm";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 고객사담 통합게시판 목록 조회
|
||||
* @param cnsltVO
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectCstmrCnsltUnityBbscttListInqire")
|
||||
public String selectCstmrCnsltUnityBbscttListInqire(CnsltVO cnsltVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
cnsltVO.setSopmalCd(authSopmalCd);
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cnslt/selectBOCstmrCnsltUnityBbscttListInqire", cnsltVO),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bbs/cnslt/CstmrCnsltUnityBbscttListR";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 고객상담 상세 내역 팝업
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectCstmrCnsltDtlUpdtInqirePopup")
|
||||
public String selectCstmrCnsltDtlUpdtInqirePopup(CnsltVO cnsltVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
cnsltVO.setSopmalCd(authSopmalCd);
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cnslt/selectBOCnsltDtlUpdtInqirePopup", cnsltVO),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bbs/cnslt/CstmrCnsltDtlUpdtPopupU";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 상담 수정
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateCstmrCnsltUpdt")
|
||||
public ResponseEntity<WnbtResponse> updateCstmrCnsltUpdt(@Validated CnsltVO cnsltVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
// 정합성 검사
|
||||
if(bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
} else {
|
||||
List<Map<String, String>> errorList = new ArrayList<>();
|
||||
|
||||
if (cnsltVO.getCnsltCn() == null || cnsltVO.getCnsltCn().isEmpty()) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("cnsltCn",
|
||||
gconeMessageSource.getMessage("errors.required", new Object[] { "상담 내용" })));
|
||||
}
|
||||
|
||||
if (errorList != null && !errorList.isEmpty()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList));
|
||||
}
|
||||
}
|
||||
|
||||
if (cnsltVO.getOrdrNb() != null && cnsltVO.getOrdrNb() == "") {
|
||||
cnsltVO.setOrdrNb(null);
|
||||
}
|
||||
|
||||
if (cnsltVO.getDlivyInnb() != null && cnsltVO.getDlivyInnb() == "") {
|
||||
cnsltVO.setDlivyInnb(null);
|
||||
}
|
||||
|
||||
if (cnsltVO.getGoodsInqryBbscttNb() != null && cnsltVO.getGoodsInqryBbscttNb() == "") {
|
||||
cnsltVO.setGoodsInqryBbscttNb(null);
|
||||
}
|
||||
|
||||
if (cnsltVO.getGoodsRvwBbscttNb() != null && cnsltVO.getGoodsRvwBbscttNb() == "") {
|
||||
cnsltVO.setGoodsRvwBbscttNb(null);
|
||||
}
|
||||
cnsltVO.setSopmalCd(authSopmalCd);
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cnslt/updateBOCnsltUpdt", cnsltVO),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,132 @@
|
||||
package com.wb.domainserver.domain.mngr.bbs.cnslt.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
*
|
||||
* 관리자 - 상담 VO
|
||||
* @author 추지훈
|
||||
* @since 2024-01-26
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2024-01-26 추지훈. 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class CnsltVO extends AbstractVO{
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
||||
/**
|
||||
* 상담 컬럼
|
||||
*/
|
||||
|
||||
/** 상담내역고유번호 */
|
||||
private Integer cnsltDtlsInnb;
|
||||
/** 쇼핑몰 코드 */
|
||||
private String sopmalCd;
|
||||
/** 회원고유번호 */
|
||||
private Integer mbrInnb;
|
||||
/** 회원 아이디 */
|
||||
private String mbrid;
|
||||
/** 회원명 */
|
||||
private String mbrNm;
|
||||
/** 회원 핸드폰번호 */
|
||||
private String mbtlnb;
|
||||
/** 회원명 이메일*/
|
||||
private String email;
|
||||
/** 회원구분코드 */
|
||||
private String mbrDvCd;
|
||||
/** 관리자 고유번호 */
|
||||
private String mngrInnb;
|
||||
/** 관리자이름 */
|
||||
private String mngrNm;
|
||||
/** 상담분류 */
|
||||
private String cnsltCl;
|
||||
/** 관련주문번호 */
|
||||
private String ordrNb;
|
||||
/** 관련주문번호 */
|
||||
private String ordrInnb;
|
||||
/** 출고코드 */
|
||||
private String dlivyInnb;
|
||||
/** 반품코드 */
|
||||
private String rtngudCdNb;
|
||||
/** 환불코드 */
|
||||
private String refndCdNb;
|
||||
/** 관련상품문의 */
|
||||
private String goodsInqryBbscttNb;
|
||||
/** 관련상담번호 */
|
||||
private String goodsRvwBbscttNb;
|
||||
/** 처리상태 */
|
||||
private String procsSttusCd;
|
||||
/** 처리일시 */
|
||||
private String procsDt;
|
||||
/** 상담내용 */
|
||||
private String cnsltCn;
|
||||
/** 전화구분코드 */
|
||||
private String telnbDvCd;
|
||||
/** 대분류 */
|
||||
private String lrgeCl;
|
||||
/** 중분류 */
|
||||
private String middlCl;
|
||||
/** 소분류 */
|
||||
private String smllCl;
|
||||
/** 녹취 key */
|
||||
private String recrdKy;
|
||||
/** 전화번호 */
|
||||
private String telnb;
|
||||
|
||||
|
||||
/**
|
||||
* 검색
|
||||
*/
|
||||
|
||||
/** 검색_검색어 구분 */
|
||||
private String srchKeywordDv;
|
||||
/** 검색_검색어 */
|
||||
private String srchKeyword;
|
||||
/** 검색_등록일 구분 */
|
||||
private String srchDtDv;
|
||||
/** 검색_시작일 */
|
||||
private String srchStartDate;
|
||||
/** 검색_종료일 */
|
||||
private String srchEndDate;
|
||||
/** 검색_상담자 */
|
||||
private String srchMngrNm;
|
||||
/** 검색_처리 여부 */
|
||||
private String[] srchProcsSttusCd;
|
||||
/** 검색_관련번호 구분 */
|
||||
private String srchRelateDv;
|
||||
/** 검색_관련번호 */
|
||||
private String srchRelateNm;
|
||||
/** 검색_상담내용 */
|
||||
private String srchCnsltCn;
|
||||
|
||||
|
||||
/** 녹취 키 */
|
||||
private String customer_record_key;
|
||||
/** menu 인덱스*/
|
||||
private String menuIdx;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,740 @@
|
||||
package com.wb.domainserver.domain.mngr.bbs.gnrlsctt.controller;
|
||||
|
||||
import com.wb.domainserver.common.msg.GconeMessageSource;
|
||||
import com.wb.domainserver.domain.mngr.bbs.cm.vo.CmVO;
|
||||
import com.wb.domainserver.domain.mngr.bbs.gnrlsctt.service.GnrlbbscttService;
|
||||
import com.wb.domainserver.domain.mngr.bbs.gnrlsctt.vo.GnrlscttVO;
|
||||
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.*;
|
||||
import com.wb.domainserver.util.file.service.FileStorageService;
|
||||
import com.wb.domainserver.util.string.StringUtil;
|
||||
import com.wb.domainserver.util.util.Util;
|
||||
import jakarta.servlet.http.Cookie;
|
||||
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.CookieValue;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 일반게시글 관리 Controller
|
||||
*
|
||||
* @author 김혜지
|
||||
* @version 1.0
|
||||
* @see <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2024-01-05 김혜지 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
* @since 2024-01-05
|
||||
*/
|
||||
@Slf4j
|
||||
@Controller
|
||||
@RequestMapping("/mngr/bbs/gnrlsctt")
|
||||
public class GnrlscttController {
|
||||
/**
|
||||
* WebClient 호출을 위한 wrapper
|
||||
*/
|
||||
@Autowired
|
||||
private WnbtWebClientResponseHandler responseHandler;
|
||||
@Autowired
|
||||
private SendToResrc sendToResrc;
|
||||
@Autowired
|
||||
private GconeMessageSource gconeMessageSource;
|
||||
@Autowired
|
||||
private FileStorageService filestore;
|
||||
@Autowired
|
||||
private GnrlbbscttService service;
|
||||
|
||||
/**
|
||||
* 게시글 목록 조회(검색 section)
|
||||
*
|
||||
* @param vo 파라미터 vo
|
||||
* @param model
|
||||
* @return GnrlBbscttListRForm.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBbscttListInqireForm")
|
||||
public String selectBbscttListInqireForm(GnrlscttVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
vo.setRvwBbscttDv("bbsctt");
|
||||
vo.setServerDv("mngr");
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
//게시글 노출 항목 설정값과 게시판 목록 조회
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttListInqireForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bbs/gnrlsctt/GnrlBbscttListRForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 일반게시글 목록 조회 (리스트 section)
|
||||
* @param vo 파라미터 vo
|
||||
* @param model
|
||||
* @return GnrlBbscttListR.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBbscttListInqire")
|
||||
public String selectBbscttListInqire(GnrlscttVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
//쇼핑몰코드 set
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttListInqire", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
model.addAttribute("vo", vo);
|
||||
String bbsTyCd = vo.getBbsTyCd();
|
||||
String returnUrl = "";
|
||||
switch (bbsTyCd) {
|
||||
case "01" :
|
||||
returnUrl = "mngr/bbs/gnrlsctt/GnrlBbscttListR";
|
||||
break;
|
||||
case "02" :
|
||||
returnUrl = "mngr/bbs/gnrlsctt/NoticeListR";
|
||||
break;
|
||||
case "03" :
|
||||
returnUrl = "mngr/bbs/gnrlsctt/EvtBbscttListR";
|
||||
break;
|
||||
case "04" :
|
||||
returnUrl = "mngr/bbs/gnrlsctt/FaqListR";
|
||||
break;
|
||||
case "05" :
|
||||
returnUrl = "mngr/bbs/gnrlsctt/GoodsQnaBbscttListR";
|
||||
break;
|
||||
case "08" :
|
||||
returnUrl = "mngr/bbs/gnrlsctt/GnrlBbscttListR";
|
||||
break;
|
||||
case "09" :
|
||||
returnUrl = "mngr/bbs/gnrlsctt/MgzListR";
|
||||
break;
|
||||
case "10" :
|
||||
returnUrl = "mngr/bbs/gnrlsctt/useGuidanceListR";
|
||||
break;
|
||||
case "11" :
|
||||
returnUrl = "mngr/bbs/gnrlsctt/EvtResultListR";
|
||||
break;
|
||||
}
|
||||
return returnUrl;
|
||||
}
|
||||
/**
|
||||
* 일반게시글 상세 조회 팝업
|
||||
* @param vo 파라미터 vo
|
||||
* @param model
|
||||
* @return GnrlBbscttDtlPopupR.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectBbscttDtlInqirePopup")
|
||||
public String selectBbscttDtlInqirePopup(HttpServletRequest request, ModelMap model, GnrlscttVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
/*agentId,ip set*/
|
||||
Map<String,String> req = new HashMap<>();
|
||||
req = Util.getRequestInfo(request);
|
||||
String agentId =req.get("userAgent");
|
||||
vo.setAgentId(agentId);
|
||||
String ip = req.get("XForwardedFor");
|
||||
vo.setIp(ip);
|
||||
|
||||
//쇼핑몰 set
|
||||
vo.setServerDv("mngr");
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttDtlInqirePopup", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
model.addAttribute("ip", ip);
|
||||
model.addAttribute("dtlPop",vo.getDtlPop());
|
||||
return "mngr/bbs/gnrlsctt/GnrlBbscttDtlPopupR";
|
||||
}
|
||||
/**
|
||||
* 일반게시글 상세 댓글 조회
|
||||
* @param vo 파라미터 vo
|
||||
* @param model
|
||||
* @return GnrlBbscttDtlPopupR.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectCmList")
|
||||
public String selectCmList(HttpServletRequest request, CmVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
vo.setServerDv("mngr");
|
||||
|
||||
//ip주소 get
|
||||
Map<String, String> req = new HashMap<>();
|
||||
req = Util.getRequestInfo(request);
|
||||
String ip = req.get("XForwardedFor");
|
||||
vo.setIp(ip);
|
||||
|
||||
//쇼핑몰 set
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cm/selectBOCmList", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
model.addAttribute("cmVO", vo);
|
||||
model.addAttribute("ip", ip);
|
||||
return "mngr/bbs/gnrlsctt/CmListR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 마일리지 회수 금액 조회
|
||||
*
|
||||
* @param bbsctt 파라미터 vo
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectMlgRtrvlAmt", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> selectMlgRtrvlAmt(GnrlscttVO bbsctt, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
//쇼핑몰코드 set
|
||||
bbsctt.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOMlgRtrvlAmt", bbsctt),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 게시글 논리 삭제
|
||||
* @param bbsctt 파라미터 vo
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/updateBbscttDel" , method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateBbscttDel(GnrlscttVO bbsctt, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
//쇼핑몰코드 set
|
||||
bbsctt.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/updateBOBbscttDel", bbsctt),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
/**
|
||||
* 일반게시글 등록 팝업
|
||||
* @param vo 파라미터 vo
|
||||
* @param model
|
||||
* @return GnrlBbscttRegistPopupC.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectBbscttRegistPopupForm")
|
||||
public String selectBbscttRegistPopupForm(HttpServletRequest request, GnrlscttVO bbsctt, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
//쇼핑몰코드 set
|
||||
bbsctt.setServerDv("mngr");
|
||||
bbsctt.setSopmalCd(authSopmalCd);
|
||||
|
||||
//ip주소 get
|
||||
Map<String, String> req = new HashMap<>();
|
||||
req = Util.getRequestInfo(request);
|
||||
String ip = req.get("XForwardedFor");
|
||||
bbsctt.setIp(ip);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttRegistPopupForm", bbsctt),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
model.addAttribute("ip", ip);
|
||||
return "mngr/bbs/gnrlsctt/GnrlBbscttRegistPopupC";
|
||||
}
|
||||
|
||||
/**
|
||||
* 일반게시글 등록
|
||||
* @param bbsctt 파라미터 vo
|
||||
* @param BindingResult
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/insertBbscttRegist" , method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> insertBbscttRegist( HttpServletRequest request,@Validated GnrlscttVO bbsctt, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
List<Map<String, String>> errorList = new ArrayList<>();
|
||||
//validation체크
|
||||
if(bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}else if(true) {
|
||||
//노출 여부가 'Y'이고 노출 기간 제한 '기본'일 시 날짜 지정 여부 체크
|
||||
if ("Y".equals(bbsctt.getExpsrAt()) && "Y".equals(bbsctt.getNtcePdSetupAt())) {
|
||||
if (StringUtil.isEmpty(bbsctt.getNtceBgnDe())) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("ntceBgnDe", gconeMessageSource.getMessage("errors.required", new Object[]{"노출 시작일"})));
|
||||
}
|
||||
if (StringUtil.isEmpty(bbsctt.getNtceEndDe())) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("ntceEndDe", gconeMessageSource.getMessage("errors.required", new Object[]{"노출 종료일"})));
|
||||
}
|
||||
}
|
||||
//공지글 등록 여부가 'Y'이고 공지 기간 제한 '기본'일 시 날짜 지정 여부 체크
|
||||
if ("Y".equals(bbsctt.getNtcAt()) && "Y".equals(bbsctt.getNtcPdSetupAt())) {
|
||||
if (StringUtil.isEmpty(bbsctt.getNtcBgnDe())) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("ntcBgnDe", gconeMessageSource.getMessage("errors.required", new Object[]{"공지 시작일"})));
|
||||
}
|
||||
if (StringUtil.isEmpty(bbsctt.getNtcEndDe())) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("ntcEndDe", gconeMessageSource.getMessage("errors.required", new Object[]{"공지 종료일"})));
|
||||
}
|
||||
}
|
||||
//비밀글 여부가 'Y'이고 비밀번호 없을 시
|
||||
if("Y".equals(bbsctt.getSecretBbscttAt())) {
|
||||
if(StringUtil.isEmpty(bbsctt.getPassword())){
|
||||
errorList.add(ValidateResultConverter.setErrorMap("password", gconeMessageSource.getMessage("errors.required", new Object[]{"비밀번호"})));
|
||||
}
|
||||
}
|
||||
//순서 여부가 'Y'이고 순서 값 없을 시
|
||||
if("Y".equals(bbsctt.getSortOrdrAt())) {
|
||||
if(bbsctt.getSortOrdr()== null){
|
||||
errorList.add(ValidateResultConverter.setErrorMap("sortOrdr", gconeMessageSource.getMessage("errors.required", new Object[]{"순서"})));
|
||||
}
|
||||
}
|
||||
//게시판 스킨타입이 갤러리형이고 대표이미지 없을 시
|
||||
if ("02".equals(bbsctt.getSknTyCd()) && "N".equals(bbsctt.getRepresntFilAt())) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("represntFilAt", gconeMessageSource.getMessage("errors.required", new Object[]{"대표이미지"})));
|
||||
}
|
||||
//필수 입력 여부설정이 Y 이고 입력 여부가 N일 시 validation 체크
|
||||
if(bbsctt.getQesitmEssntlAtArr() != null) {
|
||||
for (int idx = 0; idx < bbsctt.getQesitmEssntlAtArr().length; idx++) {
|
||||
if ("Y".equals(bbsctt.getQesitmEssntlAtArr()[idx]) && "N".equals(bbsctt.getQesitmAtArr()[idx])) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("answCnArr", gconeMessageSource.getMessage("errors.required", new Object[]{bbsctt.getQesitmNmArr()[idx]})));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(errorList != null
|
||||
&& errorList.size() > 0) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList));
|
||||
}
|
||||
|
||||
//쇼핑몰코드 set
|
||||
bbsctt.setServerDv("mngr");
|
||||
bbsctt.setSopmalCd(authSopmalCd);
|
||||
|
||||
/*agentId,ip set*/
|
||||
Map<String, String> req = new HashMap<>();
|
||||
req = Util.getRequestInfo(request);
|
||||
String ip = req.get("XForwardedFor");
|
||||
bbsctt.setIp(ip);
|
||||
|
||||
String agentId = "";
|
||||
|
||||
// 쿠키를 가져옴
|
||||
Cookie[] cookies = request.getCookies();
|
||||
|
||||
//agentId 쿠키 있을 경우 가져옴
|
||||
if (cookies != null) {
|
||||
for (Cookie cookie : cookies) {
|
||||
if (cookie.getName().equals("agent_id")) {
|
||||
agentId = cookie.getValue();
|
||||
bbsctt.setAgentId(agentId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//파일 경로 설정 (등록)
|
||||
List<HashMap<String, Object>> file = new ArrayList<HashMap<String, Object>>();
|
||||
request.setAttribute("shopCd", bbsctt.getSopmalCd());
|
||||
request.setAttribute("subPathId", bbsctt.getBbsId());
|
||||
request.setAttribute("pathGubun", "BDIG");
|
||||
if ("Y".equals(bbsctt.getRepresntFilAt())) { //대표이미지 업로드 할 경우
|
||||
List<HashMap<String, Object>> represntUlpladFileList = new ArrayList<HashMap<String, Object>>();
|
||||
represntUlpladFileList = filestore.fileUpload(request); //BDIG로 경로 구분 get
|
||||
|
||||
//대표 이미지 파일 등록
|
||||
HashMap<String, Object> representUlpladFileMap = new HashMap<String, Object>();
|
||||
representUlpladFileMap = represntUlpladFileList.get(0); //첫번재 파일 정보만 get(대표이미지 첫번째)
|
||||
bbsctt.setRepresntFileInfo(representUlpladFileMap); //대표이미지 파일 정보 set
|
||||
represntUlpladFileList.remove(0); //대표이미지 정보 삭제
|
||||
|
||||
//파일 첨부 등록
|
||||
//일반 파일 첨부일 경우
|
||||
if(represntUlpladFileList.size() > 0){
|
||||
List<HashMap<String, Object>> ulpladFileMap = new ArrayList<HashMap<String, Object>>();
|
||||
request.setAttribute("pathGubun", "BDFL");//게시판 일반첨부파일 구분
|
||||
request.setAttribute("validExp", bbsctt.getFilPermFilExtsn());//게시판 일반첨부파일 구분
|
||||
ulpladFileMap = filestore.fileUpload(request); //경로구분이 바뀐 주소로 set
|
||||
bbsctt.setFileInfo(ulpladFileMap); //파일 set
|
||||
}
|
||||
} else {
|
||||
//파일 첨부 등록
|
||||
List<HashMap<String, Object>> ulpladFileMap = new ArrayList<HashMap<String, Object>>();
|
||||
request.setAttribute("pathGubun", "BDFL");//게시판 일반첨부파일 구분
|
||||
request.setAttribute("validExp", bbsctt.getFilPermFilExtsn());//게시판 일반첨부파일 구분
|
||||
ulpladFileMap = filestore.fileUpload(request);
|
||||
bbsctt.setFileInfo(ulpladFileMap);
|
||||
}
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/insertBOBbscttRegist", bbsctt),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
}
|
||||
/******************************************************
|
||||
* 게시글 수정 팝업
|
||||
******************************************************/
|
||||
/**
|
||||
* 일반게시글 수정 팝업
|
||||
* @param bbsctt 파라미터 vo
|
||||
* @param model
|
||||
* @return GnrlBbscttUpdtPopupU.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectBbscttUpdtPopupForm")
|
||||
public String selectBbscttUpdtPopupForm(GnrlscttVO bbsctt, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
//쇼핑몰코드 set
|
||||
bbsctt.setServerDv("mngr");
|
||||
bbsctt.setSopmalCd(authSopmalCd);
|
||||
|
||||
//게시글 상세 조회 및 게시판 설정 조회
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttUpdtPopupForm", bbsctt),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
model.addAttribute("dtlPop", bbsctt.getDtlPop());
|
||||
return "mngr/bbs/gnrlsctt/GnrlBbscttUpdtPopupU";
|
||||
}
|
||||
/**
|
||||
* 일반게시글 수정
|
||||
* @param bbsctt 파라미터 vo
|
||||
* @param bindingResult
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/updateBbscttUpdt" , method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateBbscttUpdt( HttpServletRequest request,@Validated GnrlscttVO bbsctt, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
List<Map<String, String>> errorList = new ArrayList<>();
|
||||
//validation체크
|
||||
if(bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}else if(true) {
|
||||
//노출 여부가 'Y'이고 노출 기간 제한 '기본'일 시 날짜 지정 여부 체크
|
||||
if ("Y".equals(bbsctt.getExpsrAt()) && "Y".equals(bbsctt.getNtcePdSetupAt())) {
|
||||
if (StringUtil.isEmpty(bbsctt.getNtceBgnDe())) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("ntceBgnDe", gconeMessageSource.getMessage("errors.required", new Object[]{"노출 시작일"})));
|
||||
}
|
||||
if (StringUtil.isEmpty(bbsctt.getNtceEndDe())) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("ntceEndDe", gconeMessageSource.getMessage("errors.required", new Object[]{"노출 종료일"})));
|
||||
}
|
||||
}
|
||||
//공지글 등록 여부가 'Y'이고 공지 기간 제한 '기본'일 시 날짜 지정 여부 체크
|
||||
if ("Y".equals(bbsctt.getNtcAt()) && "Y".equals(bbsctt.getNtcPdSetupAt())) {
|
||||
if (StringUtil.isEmpty(bbsctt.getNtcBgnDe())) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("ntcBgnDe", gconeMessageSource.getMessage("errors.required", new Object[]{"공지 시작일"})));
|
||||
}
|
||||
if (StringUtil.isEmpty(bbsctt.getNtcEndDe())) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("ntcEndDe", gconeMessageSource.getMessage("errors.required", new Object[]{"공지 종료일"})));
|
||||
}
|
||||
}
|
||||
//게시판 스킨타입이 갤러리형이고 대표이미지 없을 시
|
||||
if("02".equals(bbsctt.getSknTyCd())&& "N".equals(bbsctt.getRepresntFilAt())){
|
||||
errorList.add(ValidateResultConverter.setErrorMap("represntFilAt", gconeMessageSource.getMessage("errors.required", new Object[]{"대표이미지"})));
|
||||
}
|
||||
//순서 여부가 'Y'이고 순서 값 없을 시
|
||||
if("Y".equals(bbsctt.getSortOrdrAt())) {
|
||||
if(bbsctt.getSortOrdr()== null){
|
||||
errorList.add(ValidateResultConverter.setErrorMap("sortOrdr", gconeMessageSource.getMessage("errors.required", new Object[]{"순서"})));
|
||||
}
|
||||
}
|
||||
//필수 입력 여부설정이 Y 이고 입력 여부가 N일 시 validation 체크
|
||||
if(bbsctt.getQesitmEssntlAtArr() != null) {
|
||||
for (int idx = 0; idx < bbsctt.getQesitmEssntlAtArr().length; idx++) {
|
||||
if ("Y".equals(bbsctt.getQesitmEssntlAtArr()[idx]) && "N".equals(bbsctt.getQesitmAtArr()[idx])) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("answCnArr", gconeMessageSource.getMessage("errors.required", new Object[]{bbsctt.getQesitmNmArr()[idx]})));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(errorList != null
|
||||
&& errorList.size() > 0) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList));
|
||||
}
|
||||
|
||||
//쇼핑몰코드 set
|
||||
bbsctt.setServerDv("mngr");
|
||||
bbsctt.setSopmalCd(authSopmalCd);
|
||||
|
||||
//파일 경로 설정 (수정)
|
||||
List<HashMap<String, Object>> file = new ArrayList<HashMap<String, Object>>();
|
||||
request.setAttribute("shopCd", bbsctt.getSopmalCd()); //쇼핑몰 코드
|
||||
request.setAttribute("subPathId", bbsctt.getBbsId()); //게시판 아이디
|
||||
request.setAttribute("pathGubun", "BDIG"); //이미지 경로 set
|
||||
if ("Y".equals(bbsctt.getRepresntFilAt())) { //대표이미지 업로드 할 경우
|
||||
List<HashMap<String, Object>> represntUlpladFileList = new ArrayList<HashMap<String, Object>>();
|
||||
if ("Y".equals(bbsctt.getRepresntFilChangeAt())) {//대표이미지 파일을 변경할 경우
|
||||
represntUlpladFileList = filestore.fileUpload(request); //BDIG로 경로 구분 get
|
||||
//대표 이미지 파일 등록
|
||||
HashMap<String, Object> representUlpladFileMap = new HashMap<String, Object>();
|
||||
representUlpladFileMap = represntUlpladFileList.get(0); //첫번재 파일 정보만 get(대표이미지 첫번째)
|
||||
bbsctt.setRepresntFileInfo(representUlpladFileMap); //대표이미지 파일 정보 set
|
||||
represntUlpladFileList.remove(0);
|
||||
//파일 첨부 등록
|
||||
if (represntUlpladFileList.size() > 0) {
|
||||
List<HashMap<String, Object>> ulpladFileMap = new ArrayList<HashMap<String, Object>>();
|
||||
//일반 파일 첨부일 경우
|
||||
if ("N".equals(bbsctt.getDropzoneAt())) {
|
||||
request.setAttribute("pathGubun", "BDFL");//게시판 일반첨부파일 구분
|
||||
request.setAttribute("validExp", bbsctt.getFilPermFilExtsn());//게시판 일반첨부파일 구분
|
||||
}
|
||||
ulpladFileMap = filestore.fileUpload(request); //경로구분이 바뀐 주소로 set
|
||||
if ("Y".equals(bbsctt.getRepresntFilChangeAt())) {//대표이미지 파일을 변경할 경우
|
||||
ulpladFileMap.remove(0);
|
||||
}
|
||||
bbsctt.setFileInfo(ulpladFileMap); //파일 set
|
||||
}
|
||||
}else{
|
||||
List<HashMap<String, Object>> ulpladFileMap = new ArrayList<HashMap<String, Object>>();
|
||||
//일반 파일 첨부일 경우
|
||||
if ("N".equals(bbsctt.getDropzoneAt())) {
|
||||
request.setAttribute("pathGubun", "BDFL");//게시판 일반첨부파일 구분
|
||||
request.setAttribute("validExp", bbsctt.getFilPermFilExtsn());//게시판 일반첨부파일 구분
|
||||
}
|
||||
ulpladFileMap = filestore.fileUpload(request); //경로구분이 바뀐 주소로 set
|
||||
bbsctt.setFileInfo(ulpladFileMap); //파일 set
|
||||
}
|
||||
} else {
|
||||
List<HashMap<String, Object>> ulpladFileMap = new ArrayList<HashMap<String, Object>>();
|
||||
//파일 첨부 등록
|
||||
if ("N".equals(bbsctt.getDropzoneAt())) {
|
||||
request.setAttribute("pathGubun", "BDFL");//게시판 일반첨부파일 구분
|
||||
request.setAttribute("validExp", bbsctt.getFilPermFilExtsn());//게시판 일반첨부파일 구분
|
||||
}
|
||||
ulpladFileMap = filestore.fileUpload(request);
|
||||
bbsctt.setFileInfo(ulpladFileMap);
|
||||
}
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/updateBOBbscttUpdt", bbsctt),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 댓글 등록
|
||||
* @param cm 파라미터 vo
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/insertBbscttCmRegist")
|
||||
public ResponseEntity<WnbtResponse> insertBbscttCmRegist(HttpServletRequest request ,@Validated CmVO cm, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
if(bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
|
||||
//쇼핑몰코드 set
|
||||
cm.setServerDv("mngr");
|
||||
cm.setSopmalCd(authSopmalCd);
|
||||
|
||||
//ip주소 get
|
||||
Map<String,String> req = Util.getRequestInfo(request);
|
||||
String ip = req.get("XForwardedFor");
|
||||
cm.setIp(ip);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cm/insertBOCmRegist", cm),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 댓글 수정
|
||||
* @param cm 파라미터 vo
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/updateBbscttCmUpdt" , method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateBbscttCmUpdt(@Validated CmVO cm, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
if(bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
|
||||
//쇼핑몰코드 set
|
||||
cm.setServerDv("mngr");
|
||||
cm.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cm/updateBOCmUpdt", cm),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 댓글 논리 삭제
|
||||
*
|
||||
* @param cm 파라미터 vo
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/deleteBbscttCmDel", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> deleteBbscttCmDel(CmVO cm, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
if (bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
|
||||
//쇼핑몰코드 set
|
||||
cm.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/cm/deleteBOCmDel", cm),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* FAQ 노출여부 수정
|
||||
*
|
||||
* @param bbsctt 파라미터 vo
|
||||
* @param bindingResult
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateBbscttExpsrAt", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateBbscttExpsrAt(GnrlscttVO bbsctt, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
if (bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
//쇼핑몰코드 set
|
||||
bbsctt.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/updateBOBbscttExpsrAt", bbsctt),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 일반게시글 답변 등록 팝업
|
||||
*
|
||||
* @param bbsctt 파라미터 vo
|
||||
* @param model
|
||||
* @return GnrlBbscttUpdtPopupU.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBbscttAnswRegistPopupForm")
|
||||
public String selectBbscttAnswRegistPopupForm(GnrlscttVO bbsctt, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
bbsctt.setServerDv("mngr");
|
||||
//쇼핑몰코드 set
|
||||
bbsctt.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO,"/gcone/bbs/gnrlbbsctt/selectBOBbscttAnswRegistPopupForm", bbsctt),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
model.addAttribute("dtlPop", bbsctt.getDtlPop());
|
||||
return "mngr/bbs/gnrlsctt/GnrlBbscttAnswRegistPopupC";
|
||||
}
|
||||
|
||||
/**
|
||||
* 일반게시글 답변 등록
|
||||
* @param bbsctt 파라미터 vo
|
||||
* @param bindingResult
|
||||
* @return ResponseEntity<WnbtResponse>
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/insertBbscttAnswRegist")
|
||||
public ResponseEntity<WnbtResponse> insertBbscttAnswRegist(HttpServletRequest request, @Validated GnrlscttVO bbsctt, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
if (bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
|
||||
bbsctt.setServerDv("mngr");
|
||||
//쇼핑몰코드 set
|
||||
bbsctt.setSopmalCd(authSopmalCd);
|
||||
|
||||
/*agentId,ip set*/
|
||||
Map<String, String> req = new HashMap<>();
|
||||
req = Util.getRequestInfo(request);
|
||||
String ip = req.get("XForwardedFor");
|
||||
bbsctt.setIp(ip);
|
||||
|
||||
String agentId = "";
|
||||
|
||||
// 쿠키를 가져옴
|
||||
Cookie[] cookies = request.getCookies();
|
||||
|
||||
//agentId 쿠키 있을 경우 가져옴
|
||||
if (cookies != null) {
|
||||
for (Cookie cookie : cookies) {
|
||||
if (cookie.getName().equals("agent_id")) {
|
||||
agentId = cookie.getValue();
|
||||
bbsctt.setAgentId(agentId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/insertBOBbscttRegist", bbsctt),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 일반게시글 답변 수정 팝업
|
||||
*
|
||||
* @param bbsctt 파라미터 vo
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBbscttAnswUpdtPopupForm")
|
||||
public String selectBbscttAnswUpdtPopupForm(GnrlscttVO bbsctt, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
//쇼핑몰코드 set
|
||||
bbsctt.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO,"/gcone/bbs/gnrlbbsctt/selectBOBbscttAnswUpdtPopupForm", bbsctt),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
model.addAttribute("dtlPop", bbsctt.getDtlPop());
|
||||
return "mngr/bbs/gnrlsctt/GnrlBbscttAnswUpdtPopupU";
|
||||
}
|
||||
|
||||
/**
|
||||
* 일반게시글 답변 수정
|
||||
*
|
||||
* @param bbsctt 파라미터 vo
|
||||
* @param bindingResult
|
||||
* @return ResponseEntity<WnbtResponse>
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateBbscttAnswUpdt", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateBbscttAnswUpdt(@Validated GnrlscttVO bbsctt, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
if (bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
//쇼핑몰코드 set
|
||||
bbsctt.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/updateBOBbscttUpdt", bbsctt),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package com.wb.domainserver.domain.mngr.bbs.gnrlsctt.mapper;
|
||||
|
||||
import com.wb.domainserver.domain.mngr.bbs.gnrlsctt.vo.GnrlscttVO;
|
||||
import com.wb.domainserver.util.dataaccess.DataMap;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
/**
|
||||
* 일반게시글 관리 Mapper
|
||||
*
|
||||
* @author 김혜지
|
||||
* @since 2024-01-05
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2024-01-05 김혜지 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Mapper
|
||||
@Repository
|
||||
public interface GnrlbbscttMapper {
|
||||
/*******************
|
||||
* 게시글 상세 조회
|
||||
*******************/
|
||||
/** 게시글 상세조회 */
|
||||
public DataMap selectBOBbscttDtlInqirePopup(GnrlscttVO bbsctt);
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
package com.wb.domainserver.domain.mngr.bbs.gnrlsctt.service;
|
||||
|
||||
import com.wb.domainserver.domain.mngr.bbs.gnrlsctt.mapper.GnrlbbscttMapper;
|
||||
import com.wb.domainserver.domain.mngr.bbs.gnrlsctt.vo.GnrlscttVO;
|
||||
import com.wb.domainserver.util.dataaccess.DataMap;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 게시글 관리 Service
|
||||
*
|
||||
* @author 김혜지
|
||||
* @since 2024-01-05
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2024-01-05 김혜지 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class GnrlbbscttService {
|
||||
|
||||
@Autowired
|
||||
private GnrlbbscttMapper mapper;
|
||||
/*************************************************************************************
|
||||
* 상세조회 service시작
|
||||
*****************************************************************************************/
|
||||
/**
|
||||
* 게시글 상세조회
|
||||
*
|
||||
* @param bbsctt 파라미터VO
|
||||
* @return BOGnrlbbscttVO 상세조회 결과
|
||||
*/
|
||||
public Map<String, Object> selectBOBbscttDtlInqirePopup(GnrlscttVO bbsctt) {
|
||||
Map<String, Object> map = new HashMap<String, Object>();
|
||||
//게시글 상세 조회
|
||||
|
||||
DataMap bbscttInfo = new DataMap();
|
||||
bbscttInfo = mapper.selectBOBbscttDtlInqirePopup(bbsctt);
|
||||
|
||||
map.put("dataMap", bbscttInfo);
|
||||
return map;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,331 @@
|
||||
package com.wb.domainserver.domain.mngr.bbs.gnrlsctt.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;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class GnrlscttVO extends AbstractVO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
//게시판 검색 조건 쇼핑몰 코드
|
||||
private String sopmalCd;
|
||||
/**
|
||||
* 게시글 정보
|
||||
*/
|
||||
/*회원고유번호*/
|
||||
private Integer mbrInnb;
|
||||
/*회원고유번호*/
|
||||
private String MbrDvCd;
|
||||
/** 게시글고유번호 */
|
||||
private String bbscttInnb;
|
||||
/** 부모게시글고유번호 */
|
||||
private String parntsBbscttInnb;
|
||||
/** 게시판ID */
|
||||
private String bbsId;
|
||||
/** DEPTH */
|
||||
private Integer depth;
|
||||
/** 등록자구분코드 */
|
||||
private String regusrDvCd;
|
||||
/** 등록자ID */
|
||||
private String regusrId;
|
||||
/** 등록자명 */
|
||||
private String regusrNm;
|
||||
/** 비밀번호 */
|
||||
private String password;
|
||||
@NotBlank(message = "내용")
|
||||
@Length(max = 16777215, message = "내용")
|
||||
/** 내용 */
|
||||
private String cn;
|
||||
/** 제목 */
|
||||
@NotBlank(message = "제목")
|
||||
@Length(min = 0, max = 100, message = "제목")
|
||||
private String sj;
|
||||
/** 조회건수 */
|
||||
private Integer inqireCnt;
|
||||
/** 댓글사용여부 */
|
||||
private String cmUseAt;
|
||||
/** 추천건수 */
|
||||
private Integer recomendCnt;
|
||||
/** 비추천건수 */
|
||||
private Integer nonrecomendCnt;
|
||||
/** 정렬순서 */
|
||||
private Integer sortOrdr;
|
||||
/** 정렬순서여부 */
|
||||
private String sortOrdrAt;
|
||||
/** 대표이미지원본파일명 */
|
||||
private String reprsntImgOrginlFilNm;
|
||||
/** 대표이미지시스템파일명 */
|
||||
private String reprsntImgSysFilNm;
|
||||
/** 비밀글여부 */
|
||||
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;
|
||||
/** 베스트여부 */
|
||||
private String bstAt;
|
||||
/** 포토리뷰여부 */
|
||||
private String photoRvwAt;
|
||||
/** NPay 게시글 일련번호 */
|
||||
private String npayBbscttSnb;
|
||||
/** NPay 답변 전송여부*/
|
||||
private String npayAnswTrnsmisAt;
|
||||
/** NPay 답변번호*/
|
||||
private String npayAnswNb;
|
||||
/** NPay 상품주문번호*/
|
||||
private String npayGoodsOrdrnb;
|
||||
/** NPay 리뷰유형코드*/
|
||||
private String npayRvwTyCd;
|
||||
/** IP */
|
||||
private String ip;
|
||||
/** agentId */
|
||||
private String agentId;
|
||||
/** 사용여부 */
|
||||
private String useAt;
|
||||
/** 삭제작업자 */
|
||||
private Integer delusr;
|
||||
/** 삭제일시 */
|
||||
private Date delDt;
|
||||
|
||||
|
||||
/**
|
||||
* 검색조건
|
||||
*/
|
||||
/** 검색구분 */
|
||||
private String srchDv;
|
||||
/** 검색어 */
|
||||
private String srchKeyword;
|
||||
/** 검색 시작일 */
|
||||
private String srchStartDt;
|
||||
/** 검색 종료일 */
|
||||
private String srchEndDt;
|
||||
/** 게시판 이름 코드 */
|
||||
private String bbsTyCd;
|
||||
/** 답변 상태 */
|
||||
private String answSttus;
|
||||
/** 분류명 */
|
||||
private String srchitmInnb;
|
||||
/** 기간 */
|
||||
private String datePeriod;
|
||||
/** 순번 */
|
||||
private Integer rnum;
|
||||
/** 항목내용 */
|
||||
private String itmCn;
|
||||
/** 대시보드여부 */
|
||||
private String dashAt;
|
||||
|
||||
/**
|
||||
* 게시글추가문항답변
|
||||
*/
|
||||
|
||||
/** 문항답변고유번호 */
|
||||
private String qesitmAnswInnb;
|
||||
/** 문항고유번호 */
|
||||
private String qesitmInnb;
|
||||
/** 문항필수여부 */
|
||||
private String qesitmEssntlAt;
|
||||
/** 문항사용여부 */
|
||||
private String qesitmUseAt;
|
||||
/** 문항순서 */
|
||||
private String qesitmOrdr;
|
||||
/** 항목고유번호 */
|
||||
private String itmInnb;
|
||||
/** 답변내용 */
|
||||
private String answCn;
|
||||
/** 평가점수 */
|
||||
private String evlScore;
|
||||
/** 문항필수여부(배열) */
|
||||
private String[] qesitmEssntlAtArr;
|
||||
/** 문항고유번호(배열) */
|
||||
private String[] qesitmInnbArr;
|
||||
/** 문항 명(배열) */
|
||||
private String[] qesitmNmArr;
|
||||
/** 항목고유번호(배열) */
|
||||
private String[] itmInnbArr;
|
||||
/** 답변내용(배열) */
|
||||
private String[] answCnArr;
|
||||
/** 답변 여부(배열) */
|
||||
private String[] qesitmAtArr;
|
||||
|
||||
/** 선택삭제 게시판리스트 */ // 필요없을듯
|
||||
//private String[] delBbsIdArr;
|
||||
/** 선택삭제 게시글리스트 */
|
||||
private String[] delBbscttInnbArr;
|
||||
|
||||
/**
|
||||
* 첨부파일 정보
|
||||
*/
|
||||
|
||||
|
||||
/* 파일 고유번호 */
|
||||
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 HashMap<String, Object> represntFileInfo;
|
||||
/*파일 존재여부*/
|
||||
private String filExtAt;
|
||||
/*현존 파일 정보*/
|
||||
private String extFiles;
|
||||
/*기존 파일 정보*/
|
||||
private String filesInfo;
|
||||
/*기존 파일 변화 여부*/
|
||||
private String extFilChangeAt;
|
||||
/*대표이미지 첨부 구분*/
|
||||
private String represntFilAt;
|
||||
/*파일 수정여부*/
|
||||
private String represntFilChangeAt;
|
||||
/*파일 첨부 허용 확장자*/
|
||||
private String filPermFilExtsn;
|
||||
/*드롭존 존재 여부*/
|
||||
private String dropzoneAt;
|
||||
/*파일 구분*/
|
||||
private String filDvCd;
|
||||
/** 댓글 리스트 */
|
||||
private String[] cmList;
|
||||
private String boardAnswInnb;
|
||||
private String oldFileName;
|
||||
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[] goodsInnbArr;
|
||||
/*주문상품옵션고유번호*/
|
||||
private String ordrGoodsOptnInnb;
|
||||
/*주문상품옵션고유번호 배열*/
|
||||
private String[] ordrGoodsOptnInnbArr;
|
||||
/*추천상품고유번호*/
|
||||
private String recomendGoodsInnb;
|
||||
/** 상세조회와 페이지 구분처리 */
|
||||
private String dtlPop;
|
||||
|
||||
/**
|
||||
* 게시판 설정
|
||||
*/
|
||||
/** 설정고유번호 */
|
||||
private String setupInfoInnb;
|
||||
/** 비속어필터사용여부 */
|
||||
private String slangFlterUseAt;
|
||||
/** 마스킹비속어 */
|
||||
private String mskgSlang;
|
||||
/*스킨타입코드*/
|
||||
private String sknTyCd;
|
||||
/*추천상품노출여부*/
|
||||
private String recomendGoodsExpsrAt;
|
||||
/* 갤러리형 목록 조회 행 개수*/
|
||||
private String pgeVtcCnt;
|
||||
/* 갤러리형 목록 조회 열 개수*/
|
||||
private String pgeWthCnt;
|
||||
/*이전글다음글 조회 여부*/
|
||||
private String prevNext;
|
||||
/*게시글발송방식코드*/
|
||||
private String bbscttSndngMthCd;
|
||||
|
||||
/*sms 관련*/
|
||||
private String bbscttSndngDvCd;
|
||||
/*
|
||||
* 메시지 발송
|
||||
*/
|
||||
/*답변 휴대폰번호*/
|
||||
private String answMbtlnb;
|
||||
/*답변수신여부*/
|
||||
private String answSmsRecptn;
|
||||
/*답변 타겟 작성자 아이디*/
|
||||
private String answRegusrId;
|
||||
/*답변 타겟 작성자 이름*/
|
||||
private String answRegusrNm;
|
||||
/*답변 타겟 작성자 고유번호*/
|
||||
private Integer answRegusr;
|
||||
|
||||
/**
|
||||
* 권한
|
||||
*/
|
||||
//관리자 인지 사용자인지
|
||||
private String AuthDv;
|
||||
//사용자 고유번호
|
||||
private Integer AuthInnb;
|
||||
|
||||
/*
|
||||
* 요청 값
|
||||
*/
|
||||
/*요청 페이지 구분(고객센터=>csc , 서브페이지=>subPage, 이용안내 => useGudiance, crm => crm)*/
|
||||
private String reqUrl;
|
||||
|
||||
/* 서버 구분 sopmal or mngr*/
|
||||
private String serverDv;
|
||||
|
||||
/*상세 구분*/
|
||||
private String dtlAt;
|
||||
|
||||
/*사용자 등록,수정시 목록이동 or 등록,수정폼 유지*/
|
||||
private String listAt;
|
||||
|
||||
/*리뷰,게시글 구분*/
|
||||
private String rvwBbscttDv;
|
||||
|
||||
/*공지여부 'Y' 개수*/
|
||||
private Integer nonNtcCnt;
|
||||
|
||||
/*공지여부 'N' 개수*/
|
||||
private Integer ntcCnt;
|
||||
|
||||
/*총 건수*/
|
||||
private Integer totCnt;
|
||||
|
||||
/*비밀번호 변경 여부*/
|
||||
private String passwordChngAt;
|
||||
|
||||
/*스크립트 내용*/
|
||||
private String cnScript;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,424 @@
|
||||
package com.wb.domainserver.domain.mngr.bbs.rvw.controller;
|
||||
|
||||
import com.wb.domainserver.common.msg.GconeMessageSource;
|
||||
import com.wb.domainserver.domain.mngr.bbs.rvw.vo.RvwVO;
|
||||
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.*;
|
||||
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.util.CollectionUtils;
|
||||
import org.springframework.validation.BindingResult;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.CookieValue;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
@Controller
|
||||
@Slf4j
|
||||
@RequestMapping("/mngr/bbs/rvw")
|
||||
public class RvwController {
|
||||
/**
|
||||
* WebClient 호출을 위한 wrapper
|
||||
*/
|
||||
@Autowired
|
||||
private WnbtWebClientResponseHandler responseHandler;
|
||||
@Autowired
|
||||
private SendToResrc sendToResrc;
|
||||
@Autowired
|
||||
private GconeMessageSource gconeMessageSource;
|
||||
@Autowired
|
||||
private FileStorageService filestore;
|
||||
|
||||
/**
|
||||
* 게시글 목록 조회 팝업 (검색 section)
|
||||
*
|
||||
* @param vo 파라미터 vo
|
||||
* @return GnrlBbscttListRForm.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value = "/selectRvwListInqireForm")
|
||||
public String selectRvwListInqireForm(RvwVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
vo.setRvwBbscttDv("rvw");
|
||||
//게시글 노출 항목 설정값과 게시판 목록 조회
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttListInqireForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
return "mngr/bbs/rvw/RvwListRForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 리뷰 목록 조회 (리스트 section)
|
||||
*
|
||||
* @param vo 파라미터 vo
|
||||
* @return GnrlBbscttListR.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value = "/selectRvwListInqire")
|
||||
public String selectRvwListInqire(RvwVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
//게시글 노출 항목 설정값과 게시판 목록 조회
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttListInqire", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
return "mngr/bbs/rvw/RvwListR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 베스트 후기 수정(리스트 section)
|
||||
*
|
||||
* @param rvwVO 파라미터 vo
|
||||
* @return GnrlBbscttListR.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value = "/updateRvwBstAt", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateRvwBstAt(RvwVO rvwVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
rvwVO.setSopmalCd(authSopmalCd);
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/updateBORvwBstAt", rvwVO),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 리뷰 메인노츨 수정
|
||||
*
|
||||
* @param rvwVO 파라미터 vo
|
||||
* @return GnrlBbscttListR.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value = "/updateRvwMainExpsrAt", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateRvwMainExpsrAt(RvwVO rvwVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
rvwVO.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/updateBORvwMainExpsrAt", rvwVO),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 리뷰 상세 조회 팝업
|
||||
*
|
||||
* @param vo 파라미터 vo
|
||||
* @return GnrlBbscttDtlPopupR.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value = "/selectRvwDtlInqirePopup")
|
||||
public String selectRvwDtlInqirePopup(RvwVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
vo.setRvwBbscttDv("rvw");
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttDtlInqirePopup", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
model.addAttribute("dtlPop", vo.getDtlPop());
|
||||
return "mngr/bbs/rvw/RvwDtlPopupR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 게시글 논리 삭제
|
||||
*
|
||||
* @param bbsctt 파라미터 vo
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value = "/updateRvwDel", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateRvwDel(@RequestBody RvwVO bbsctt, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
bbsctt.setSopmalCd(authSopmalCd);
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/updateBOBbscttDel", bbsctt),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 리뷰 등록 팝업
|
||||
*
|
||||
* @param bbsctt 파라미터 vo
|
||||
* @return GnrlBbscttRegistPopupC.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value = "/selectRvwRegistPopupForm")
|
||||
public String selectRvwRegistPopupForm(HttpServletRequest request, RvwVO rvwVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
//ip주소 get
|
||||
Map<String, String> req = new HashMap<>();
|
||||
req = Util.getRequestInfo(request);
|
||||
String ip = req.get("XForwardedFor");
|
||||
rvwVO.setIp(ip);
|
||||
rvwVO.setSopmalCd(authSopmalCd);
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttRegistPopupForm", rvwVO),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
model.addAttribute("ip", ip);
|
||||
return "mngr/bbs/rvw/RvwRegistPopupC";
|
||||
}
|
||||
|
||||
/**
|
||||
* 리뷰 등록
|
||||
*
|
||||
* @param bbsctt 파라미터 vo
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value = "/insertRvwRegist", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> insertRvwRegist(HttpServletRequest request, @Validated RvwVO rvwVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
List<Map<String, String>> errorList = new ArrayList<>();
|
||||
//validation체크
|
||||
if (bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
} else if (true) {
|
||||
//순서 여부가 'Y'이고 순서 값 없을 시
|
||||
if ("Y".equals(rvwVO.getSortOrdrAt())) {
|
||||
if (rvwVO.getSortOrdr() == null) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("sortOrdr", gconeMessageSource.getMessage("errors.required", new Object[]{"순서"})));
|
||||
}
|
||||
}
|
||||
//필수 입력 여부설정이 Y 이고 입력 여부가 N일 시 validation 체크(추가입력항목,입력항목)
|
||||
if (rvwVO.getQesitmEssntlAtArr() != null) {
|
||||
for (int idx = 0; idx < rvwVO.getQesitmEssntlAtArr().length; idx++) {
|
||||
if ("Y".equals(rvwVO.getQesitmEssntlAtArr()[idx]) && "N".equals(rvwVO.getQesitmAtArr()[idx])) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("answCnArr", gconeMessageSource.getMessage("errors.required", new Object[]{rvwVO.getQesitmNmArr()[idx]})));
|
||||
}
|
||||
}
|
||||
}
|
||||
//필수 입력 여부설정이 Y 이고 입력 여부가 N일 시 validation 체크(리뷰)
|
||||
if (rvwVO.getRvwQesitmEssntlAtArr() != null) {
|
||||
for (int idx = 0; idx < rvwVO.getRvwQesitmEssntlAtArr().length; idx++) {
|
||||
if ("Y".equals(rvwVO.getRvwQesitmEssntlAtArr()[idx]) && "N".equals(rvwVO.getRvwQesitmAtArr()[idx])) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("evlScoreArr", gconeMessageSource.getMessage("errors.required", new Object[]{rvwVO.getRvwQesitmNmArr()[idx]})));
|
||||
}
|
||||
}
|
||||
}
|
||||
if (rvwVO.getGoodsInnbArr() == null) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("goodsInnbArr", gconeMessageSource.getMessage("errors.required", new Object[]{"상품 정보"})));
|
||||
}
|
||||
}
|
||||
if (errorList != null
|
||||
&& errorList.size() > 0) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList));
|
||||
}
|
||||
|
||||
|
||||
//ip주소 get
|
||||
Map<String, String> req = new HashMap<>();
|
||||
req = Util.getRequestInfo(request);
|
||||
String ip = req.get("XForwardedFor");
|
||||
rvwVO.setIp(ip);
|
||||
rvwVO.setSopmalCd(authSopmalCd);
|
||||
|
||||
//파일 경로 설정
|
||||
request.setAttribute("shopCd", rvwVO.getSopmalCd());
|
||||
request.setAttribute("pathGubun", "BDIG");//게시판 이미지 구분
|
||||
request.setAttribute("subPathId", rvwVO.getBbsId()); //게시판일 경우에만 셋팅
|
||||
request.setAttribute("validExp", rvwVO.getAcceptFileExtensions()); //게시판 중 BDFL 일경우만 셋팅
|
||||
|
||||
//파일 업로드
|
||||
if ("Y".equals(rvwVO.getFilAtch())) {
|
||||
List<HashMap<String, Object>> ulpladFileMap = new ArrayList<HashMap<String, Object>>();
|
||||
ulpladFileMap = filestore.fileUpload(request);
|
||||
rvwVO.setFileInfo(ulpladFileMap);
|
||||
rvwVO.setFilDvCd("01");
|
||||
if (!CollectionUtils.isEmpty(rvwVO.getFileInfo())) {
|
||||
rvwVO.setPhotoRvwAt("Y");
|
||||
}
|
||||
}
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/insertBOBbscttRegist", rvwVO),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/******************************************************
|
||||
* 게시글 수정 팝업
|
||||
******************************************************/
|
||||
/**
|
||||
* 리뷰 수정 팝업
|
||||
*
|
||||
* @param bbsctt 파라미터 vo
|
||||
* @param model
|
||||
* @return GnrlBbscttUpdtPopupU.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value = "/selectRvwUpdtPopupForm")
|
||||
public String selectRvwUpdtPopupForm(RvwVO bbsctt, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
bbsctt.setRvwBbscttDv("rvw");
|
||||
bbsctt.setSopmalCd(authSopmalCd);
|
||||
//게시글 상세 조회 및 게시판 설정 조회
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOBbscttUpdtPopupForm", bbsctt),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
model.addAttribute("dtlPop", bbsctt.getDtlPop());
|
||||
return "mngr/bbs/rvw/RvwUpdtPopupU";
|
||||
}
|
||||
|
||||
/**
|
||||
* 리뷰 수정
|
||||
*
|
||||
* @param bbsctt 파라미터 vo
|
||||
* @param bindingResult
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateRvwUpdt", method = RequestMethod.POST)
|
||||
@SuppressWarnings("unchecked")
|
||||
public ResponseEntity<WnbtResponse> updateRvwUpdt(HttpServletRequest request, @Validated RvwVO rvwVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
List<Map<String, String>> errorList = new ArrayList<>();
|
||||
//validation체크
|
||||
if (bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
} else if (true) {
|
||||
//순서 여부가 'Y'이고 순서 값 없을 시
|
||||
if ("Y".equals(rvwVO.getSortOrdrAt())) {
|
||||
if (rvwVO.getSortOrdr() == null) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("sortOrdr", gconeMessageSource.getMessage("errors.required", new Object[]{"순서"})));
|
||||
}
|
||||
}
|
||||
//필수 입력 여부설정이 Y 이고 입력 여부가 N일 시 validation 체크(추가입력항목,입력항목)
|
||||
if (rvwVO.getQesitmEssntlAtArr() != null) {
|
||||
for (int idx = 0; idx < rvwVO.getQesitmEssntlAtArr().length; idx++) {
|
||||
if ("Y".equals(rvwVO.getQesitmEssntlAtArr()[idx]) && "N".equals(rvwVO.getQesitmAtArr()[idx])) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("answCnArr", gconeMessageSource.getMessage("errors.required", new Object[]{rvwVO.getQesitmNmArr()[idx]})));
|
||||
}
|
||||
}
|
||||
}
|
||||
//필수 입력 여부설정이 Y 이고 입력 여부가 N일 시 validation 체크(리뷰)
|
||||
if (rvwVO.getRvwQesitmEssntlAtArr() != null) {
|
||||
for (int idx = 0; idx < rvwVO.getRvwQesitmEssntlAtArr().length; idx++) {
|
||||
if ("Y".equals(rvwVO.getRvwQesitmEssntlAtArr()[idx]) && "N".equals(rvwVO.getRvwQesitmAtArr()[idx])) {
|
||||
errorList.add(ValidateResultConverter.setErrorMap("evlScoreArr", gconeMessageSource.getMessage("errors.required", new Object[]{rvwVO.getRvwQesitmNmArr()[idx]})));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (errorList != null && errorList.size() > 0) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convertCustomValidate(errorList));
|
||||
}
|
||||
|
||||
//ip주소 get
|
||||
Map<String, String> req = new HashMap<>();
|
||||
req = Util.getRequestInfo(request);
|
||||
String ip = req.get("XForwardedFor");
|
||||
rvwVO.setIp(ip);
|
||||
|
||||
//쇼핑몰설정 set
|
||||
rvwVO.setSopmalCd(authSopmalCd);
|
||||
|
||||
//파일 경로 설정
|
||||
request.setAttribute("shopCd", rvwVO.getSopmalCd());
|
||||
request.setAttribute("pathGubun", "BDIG");//게시판 일반첨부파일 구분
|
||||
request.setAttribute("subPathId", rvwVO.getBbsId()); //게시판일 경우에만 셋팅
|
||||
request.setAttribute("validExp", rvwVO.getAcceptFileExtensions()); //게시판 중 BDFL 일경우만 셋팅
|
||||
|
||||
//파일 업로드
|
||||
if ("Y".equals(rvwVO.getFilAtch())) {
|
||||
List<HashMap<String, Object>> ulpladFileMap = new ArrayList<HashMap<String, Object>>();
|
||||
ulpladFileMap = filestore.fileUpload(request);
|
||||
rvwVO.setFileInfo(ulpladFileMap);
|
||||
rvwVO.setFilDvCd("01");
|
||||
}
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/updateBOBbscttUpdt", rvwVO),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 추가입력항목 조회
|
||||
*
|
||||
* @param bbsctt
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectItmCnListAjax")
|
||||
public ResponseEntity<WnbtResponse> selectItmCnListAjax(RvwVO bbsctt, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
bbsctt.setSopmalCd(authSopmalCd);
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bbs/gnrlbbsctt/selectBOItmCnListAjax", bbsctt),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectRvwLgqyRegistPopupForm")
|
||||
public String selectRvwLgqyRegistPopupForm(RvwVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
return "/mngr/bbs/rvw/RvwLgqyRegistPopupC";
|
||||
}
|
||||
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/insertRvwLgqyRegist", method = RequestMethod.POST)
|
||||
public String insertRvwLgqyRegist(RvwVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
return "/";
|
||||
}
|
||||
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectRvwLgqyRegistListInqire")
|
||||
public String selectRvwLgqyRegistListInqire(RvwVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return "/mngr/bbs/rvw/RvwLgqyRegistListR";
|
||||
}
|
||||
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/insertRvwLgqyRegistBng", method = RequestMethod.POST)
|
||||
public String insertRvwLgqyRegistBng(RvwVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return "/";
|
||||
}
|
||||
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/deleteRvwLgqyRegistDel", method = RequestMethod.POST)
|
||||
public String deleteRvwLgqyRegistDel(RvwVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return "/0";
|
||||
}
|
||||
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectRvwLgqyRegistDtlUpdtPopupForm")
|
||||
public String selectRvwLgqyRegistDtlUpdtPopupForm(RvwVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return "/mngr/bbs/rvw/RvwLgqyRegistDtlUpdtPopupU";
|
||||
}
|
||||
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateRvwLgqyRegistUpdt", method = RequestMethod.POST)
|
||||
public String updateRvwLgqyRegistUpdt(RvwVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return "/";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.wb.domainserver.domain.mngr.bbs.rvw.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;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.wb.domainserver.domain.mngr.bbs.rvw.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;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package com.wb.domainserver.domain.mngr.bbs.rvw.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;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.wb.domainserver.domain.mngr.bbs.rvw.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;
|
||||
|
||||
/*회수 금액*/
|
||||
private String rtrvlMlgAmt;
|
||||
}
|
||||
@@ -0,0 +1,329 @@
|
||||
package com.wb.domainserver.domain.mngr.bbs.rvw.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;
|
||||
/**
|
||||
* 게시글 정보
|
||||
*/
|
||||
|
||||
/** 게시글고유번호 */
|
||||
private String bbscttInnb;
|
||||
/** 부모게시글고유번호 */
|
||||
private String parntsBbscttInnb;
|
||||
/** 게시판ID */
|
||||
private String bbsId;
|
||||
/** DEPTH */
|
||||
private Integer depth;
|
||||
/** 등록자구분코드 */
|
||||
private String regusrDvCd;
|
||||
/** 등록자ID */
|
||||
private String regusrId;
|
||||
/** 등록자ID 직접등록여부 */
|
||||
private String regusrIdAt;
|
||||
/** 등록자명 */
|
||||
private String regusrNm;
|
||||
/** 비밀번호 */
|
||||
@Length(min = 0, max = 20, message = "비밀번호")
|
||||
private String password;
|
||||
/** 제목 */
|
||||
@NotBlank(message = "제목")
|
||||
@Length(min = 0, max = 100, message = "제목")
|
||||
private String sj;
|
||||
@NotBlank(message = "내용")
|
||||
@Length(max = 16777215, message = "내용")
|
||||
/** 내용 */
|
||||
private String cn;
|
||||
/** 조회건수 */
|
||||
private Integer inqireCnt;
|
||||
/** 댓글사용여부 */
|
||||
private String cmUseAt;
|
||||
/** 추천건수 */
|
||||
private Integer recomendCnt;
|
||||
/** 비추천건수 */
|
||||
private Integer nonrecomendCnt;
|
||||
/** 정렬순서 */
|
||||
private Integer sortOrdr;
|
||||
/** 정렬순서여부 */
|
||||
private String sortOrdrAt;
|
||||
/** 대표이미지원본파일명 */
|
||||
private String reprsntImgOrginlFilNm;
|
||||
/** 대표이미지시스템파일명 */
|
||||
private String reprsntImgSysFilNm;
|
||||
/** 비밀글여부 */
|
||||
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;
|
||||
/** 베스트여부 */
|
||||
private String bstAt;
|
||||
/** 포토리뷰여부 */
|
||||
private String photoRvwAt;
|
||||
/** NPay 게시글 일련번호 */
|
||||
private String npayBbscttSnb;
|
||||
/** NPay 답변 전송여부*/
|
||||
private String npayAnswTrnsmisAt;
|
||||
/** NPay 답변번호*/
|
||||
private String npayAnswNb;
|
||||
/** NPay 상품주문번호*/
|
||||
private String npayGoodsOrdrnb;
|
||||
/** NPay 리뷰유형코드*/
|
||||
private String npayRvwTyCd;
|
||||
/** IP */
|
||||
private String ip;
|
||||
/** agentId */
|
||||
private String agentId;
|
||||
/** 사용여부 */
|
||||
private String useAt;
|
||||
/** 삭제작업자 */
|
||||
private Integer delusr;
|
||||
|
||||
|
||||
/**
|
||||
* 검색조건
|
||||
*/
|
||||
/** 검색구분 */
|
||||
private String srchDv;
|
||||
/** 검색어 */
|
||||
private String srchKeyword;
|
||||
/** 검색 시작일 */
|
||||
private String srchStartDt;
|
||||
/** 검색 종료일 */
|
||||
private String srchEndDt;
|
||||
/** 게시판 이름 코드 */
|
||||
private String bbsTyCd;
|
||||
/** 답변 상태 */
|
||||
private String answSttus;
|
||||
/** 분류명 */
|
||||
private String srchitmInnb;
|
||||
/** 기간 */
|
||||
private String datePeriod;
|
||||
/** 순번 */
|
||||
private Integer rnum;
|
||||
/** 항목내용 */
|
||||
private String itmCn;
|
||||
/** 대시보드 구분 */
|
||||
private String dashAt;
|
||||
/*주문번호검색*/
|
||||
private String srchOrdrInnb;
|
||||
/*네이버페이후기검색*/
|
||||
private String npayAt;
|
||||
/**
|
||||
* 게시글추가문항답변
|
||||
*/
|
||||
|
||||
/** 문항답변고유번호 */
|
||||
private String qesitmAnswInnb;
|
||||
/** 문항고유번호 */
|
||||
private String qesitmInnb;
|
||||
/** 문항필수여부 */
|
||||
private String qesitmEssntlAt;
|
||||
/** 문항사용여부 */
|
||||
private String qesitmUseAt;
|
||||
/** 문항순서 */
|
||||
private String qesitmOrdr;
|
||||
/** 항목고유번호 */
|
||||
private String itmInnb;
|
||||
/** 답변내용 */
|
||||
private String answCn;
|
||||
/** 평가점수 */
|
||||
private String evlScore;
|
||||
/** 문항필수여부(배열) */
|
||||
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[] delBbsIdArr;
|
||||
/** 선택삭제 게시글리스트 */
|
||||
private String[] delBbscttInnbArr;
|
||||
|
||||
/**
|
||||
* 첨부파일 정보
|
||||
*/
|
||||
|
||||
|
||||
/* 파일 고유번호 */
|
||||
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 filAtch;
|
||||
/*파일 확장자*/
|
||||
private String AcceptFileExtensions;
|
||||
/*파일 구분*/
|
||||
private String filDvCd;
|
||||
/** 댓글 리스트 */
|
||||
private String[] cmList;
|
||||
private String boardAnswInnb;
|
||||
private String oldFileName;
|
||||
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[] goodsInnbArr;
|
||||
/*주문상품옵션고유번호*/
|
||||
private String ordrGoodsOptnInnb;
|
||||
/*주문상품옵션고유번호 배열*/
|
||||
private String[] ordrGoodsOptnInnbArr;
|
||||
/*추천상품고유번호*/
|
||||
private String recomendGoodsInnb;
|
||||
/** 상세조회와 페이지 구분처리 */
|
||||
private String dtlPop;
|
||||
/** 재구매여부 */
|
||||
private List<String> reOrderAtArr;
|
||||
|
||||
/**
|
||||
* 게시판 설정
|
||||
*/
|
||||
/** 설정고유번호 */
|
||||
private String setupInfoInnb;
|
||||
/** 비속어필터사용여부 */
|
||||
private String slangFlterUseAt;
|
||||
/** 마스킹비속어 */
|
||||
private String mskgSlang;
|
||||
/*스킨타입코드*/
|
||||
private String sknTyCd;
|
||||
/*추천상품노출여부*/
|
||||
private String recomendGoodsExpsrAt;
|
||||
/* 갤러리형 목록 조회 행 개수*/
|
||||
private String pgeVtcCnt;
|
||||
/* 갤러리형 목록 조회 열 개수*/
|
||||
private String pgeWthCnt;
|
||||
/*이전글다음글 조회 여부*/
|
||||
private String prevNext;
|
||||
|
||||
/**
|
||||
* 리뷰
|
||||
*/
|
||||
// 추가항목 정보(FM_BOARD_ADDITM)
|
||||
private List<BbsFormVO> bbsFormVoList;
|
||||
/**
|
||||
* 권한
|
||||
*/
|
||||
//권한 구분 (REDNG : 읽기권한, REGIST: 쓰기권한, CM: 댓글등록권한)
|
||||
private String AuthDv;
|
||||
|
||||
/*
|
||||
* 요청 값
|
||||
*/
|
||||
/*요청 페이지 구분(고객센터=>csc , 서브페이지=>subPage, 이용안내 => useGudiance, crm => crm)*/
|
||||
private String reqUrl;
|
||||
|
||||
/* 서버 구분 sopmal or mngr*/
|
||||
private String serverDv;
|
||||
|
||||
/*상세 구분*/
|
||||
private String dtlAt;
|
||||
|
||||
/*사용자 등록,수정시 목록이동 or 등록,수정폼 유지*/
|
||||
private String listAt;
|
||||
|
||||
/*리뷰,게시글 구분*/
|
||||
private String rvwBbscttDv;
|
||||
|
||||
|
||||
/*페이징 관련*/
|
||||
/*공지여부 'Y' 개수(공지사항,매거진,일반)*/
|
||||
private Integer ntcCnt;
|
||||
/*베스트여부 'Y'개수 (리뷰)*/
|
||||
private Integer bstCnt;
|
||||
/*총 건수*/
|
||||
private Integer totCnt;
|
||||
|
||||
/*삭제 관련*/
|
||||
/*회수 마일리지 관련 정보*/
|
||||
private List<DelInfoVO> delInfoArr;
|
||||
/*마일리지 수동 회수 여부*/
|
||||
private String mlgPassivRtrvlAt;
|
||||
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,993 @@
|
||||
package com.wb.domainserver.domain.mngr.bnft.controller;
|
||||
|
||||
import com.wb.domainserver.common.msg.GconeMessageSource;
|
||||
import com.wb.domainserver.domain.mngr.bnft.vo.BnftSttusVO;
|
||||
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 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.CookieValue;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
|
||||
/**
|
||||
*
|
||||
* 혜택별 통계관리 FO Controller
|
||||
*
|
||||
* @author 이훈영
|
||||
* @since 2024-10-07
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2024-10-07 이훈영 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Controller
|
||||
@RequestMapping("/mngr/bnft/sttus")
|
||||
@Slf4j
|
||||
public class BnftStatsController {
|
||||
|
||||
/** WebClient 호출을 위한 wrapper */
|
||||
@Autowired
|
||||
private WnbtWebClientResponseHandler responseHandler;
|
||||
|
||||
@Autowired
|
||||
private SendToResrc sendToResrc;
|
||||
|
||||
@Autowired
|
||||
private GconeMessageSource gconeMessageSource;
|
||||
|
||||
/**
|
||||
* 혜택 출석 기간별내역 화면 이동
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftAtendPdSttusForm")
|
||||
public String selectBnftPdSttusForm(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setBnfDvCd("010");
|
||||
// Session -> Cookie 방식 변경
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
// 현재 년, 월
|
||||
LocalDate currDate = LocalDate.now();
|
||||
String srchYear = currDate.format(DateTimeFormatter.ofPattern("yyyy"));
|
||||
String srchMonth = currDate.format(DateTimeFormatter.ofPattern("MM"));
|
||||
|
||||
vo.setSrchYear(srchYear);
|
||||
vo.setSrchMonth(srchMonth);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOselectBOBnftPdSttusForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bnft/sttus/AtendPdSttusForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 출석 기간별내역 월별내역 조회
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftAtendPdMonSttusInqire")
|
||||
public ResponseEntity<WnbtResponse> selectBnftAtendPdMonSttusInqire(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftPdMonSttusInqire", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 혜택 출석 회원별내역 화면 이동
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftAtendMbrSttusForm")
|
||||
public String selectBnftMemberSttusForm(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setBnfDvCd("010");
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftMbrSttusForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bnft/sttus/AtendMbrSttusForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 출석 회원별내역 목록 조회
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftAtendMbrSttusInqire")
|
||||
public String selectBnftMemberSttusInqire(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftMbrSttusInqire", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bnft/sttus/AtendMbrSttusList";
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 만보기 기간별내역 화면 이동
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftStepcntPdSttusForm")
|
||||
public String selectBnftStepcntPdSttusForm(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setBnfDvCd("020");
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
// 현재 년, 월
|
||||
LocalDateTime currDtTme = LocalDateTime.now();
|
||||
String srchYear = currDtTme.format(DateTimeFormatter.ofPattern("yyyy"));
|
||||
String srchMonth = currDtTme.format(DateTimeFormatter.ofPattern("MM"));
|
||||
String srchCurrDt = currDtTme.format(DateTimeFormatter.ofPattern("yyyy년 MM월 dd일 HH:mm:ss"));
|
||||
|
||||
vo.setSrchYear(srchYear);
|
||||
vo.setSrchMonth(srchMonth);
|
||||
vo.setSrchCurrDt(srchCurrDt);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOselectBOBnftPdSttusForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bnft/sttus/StepcntPdSttusForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 만보기 기간별내역 월별내역 조회
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftStepcntPdMonSttusInqire")
|
||||
public ResponseEntity<WnbtResponse> selectBnftStepcntPdMonSttusInqire(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftPdMonSttusInqire", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 만보기 회원별내역 화면 이동
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftStepcntMbrSttusForm")
|
||||
public String selectBnftStepcntMbrSttusForm(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setBnfDvCd("020");
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftMbrSttusForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bnft/sttus/StepcntMbrSttusForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 만보기 회원별내역 목록 조회
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftStepcntMbrSttusInqire")
|
||||
public String selectBnftStepcntMbrSttusInqire(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftMbrSttusInqire", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bnft/sttus/StepcntMbrSttusList";
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 행운복권 당첨자내역 화면 이동
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftLucklottSttusForm")
|
||||
public String selectBnftLucklottSttusForm(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setBnfDvCd("030");
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
// 현재 년, 월
|
||||
LocalDateTime currDtTme = LocalDateTime.now();
|
||||
String srchCurrDt = currDtTme.format(DateTimeFormatter.ofPattern("yyyy년 MM월 dd일 HH:mm:ss"));
|
||||
vo.setSrchCurrDt(srchCurrDt);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftPrzwinSttusForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bnft/sttus/LucklottSttusForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 행운복권 당첨자내역 목록 조회
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftLucklottSttusInqire")
|
||||
public String selectBnftLucklottSttusInqire(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setBnfDvCd("030");
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftPrzwinSttusInqire", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bnft/sttus/LucklottSttusList";
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 룰렛게임 당첨자내역 화면 이동
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftRougameSttusForm")
|
||||
public String selectBnftRougameSttusForm(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setBnfDvCd("040");
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
// 현재 년, 월
|
||||
LocalDateTime currDtTme = LocalDateTime.now();
|
||||
String srchCurrDt = currDtTme.format(DateTimeFormatter.ofPattern("yyyy년 MM월 dd일 HH:mm:ss"));
|
||||
vo.setSrchCurrDt(srchCurrDt);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftPrzwinSttusForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bnft/sttus/RougameSttusForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 룰렛게임 당첨자내역 목록 조회
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftRougameSttusInqire")
|
||||
public String selectBnftRougameSttusInqire(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
log.debug("BnftSttusVO is {}", vo);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftPrzwinSttusInqire", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bnft/sttus/RougameSttusList";
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 캡슐만들기 참여현황 화면 이동
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftCpslmknSttusForm")
|
||||
public String selectBnftCpslmknSttusForm(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
vo.setBnfDvCd("050");
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftCpslmknSttusForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bnft/sttus/CpslmknSttusForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 캡슐만들기 참여내역 목록 조회
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftCpslmknSttusInqire")
|
||||
public String selectBnftCpslmknSttusInqire(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
log.debug("BnftSttusVO is {}", vo);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftCpslmknSttusInqire", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bnft/sttus/CpslmknSttusList";
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 캡슐만들기 참여현황 상세 화면 이동
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftCpslmknSttusDtlsForm")
|
||||
public String selectBnftCpslmknSttusDtlsForm(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftCpslmknSttusDtlsInqire", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bnft/sttus/CpslmknSttusDtlsForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 이벤트보기 참여현황 화면 이동
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftEvntviewSttusForm")
|
||||
public String selectBnftEvntviewSttusForm(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
vo.setBnfDvCd("060");
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftEvntviewSttusForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bnft/sttus/EvntviewSttusForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 이벤트보기 참여내역 목록 조회
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftEvntviewSttusInqire")
|
||||
public String selectBnftEvntviewSttusInqire(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftEvntviewSttusInqire", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bnft/sttus/EvntviewSttusList";
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 라이브쇼핑 참여현황 화면 이동
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftLvshopSttusForm")
|
||||
public String selectBnftLvshopSttusForm(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
vo.setBnfDvCd("070");
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftLvshopSttusForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bnft/sttus/LvshopSttusForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 라이브쇼핑 참여현황 목록 조회
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftLvshopSttusInqire")
|
||||
public String selectBnftLvshopSttusInqire(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftLvshopSttusInqire", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bnft/sttus/LvshopSttusList";
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 할인소식공유 참여현황 화면 이동
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftDiscsharSttusForm")
|
||||
public String selectBnftDiscsharSttusForm(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
//responseHandler.handleResponse(
|
||||
// sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftDiscsharSttusInqire", vo),
|
||||
// model,
|
||||
// "resultMap"
|
||||
//);
|
||||
|
||||
return "mngr/bnft/sttus/DiscsharSttusForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 베스트리뷰 참여현황 화면 이동
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftConrevSttusForm")
|
||||
public String selectBnftConrevSttusForm(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
vo.setBnfDvCd("090");
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftConrevSttusForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bnft/sttus/ConrevSttusForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 베스트리뷰 참여현황 목록 조회
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftConrevSttusInqire")
|
||||
public String selectBnftConrevSttusInqire(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftConrevSttusInqire", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bnft/sttus/ConrevSttusList";
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 섭취챌린지 참여현황 화면 이동
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftIntakchlSttusForm")
|
||||
public String selectBnftIntakchlSttusForm(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setBnfDvCd("100");
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftIntakchlSttusForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bnft/sttus/IntakchlSttusForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 섭취챌린지 참여현황 목록 조회
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftIntakchlSttusInqire")
|
||||
public String selectBnftIntakchlSttusInqire(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftIntakchlSttusInqire", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bnft/sttus/IntakchlSttusList";
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 섭취챌린지 참여현황 상세 화면 이동
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftIntakchlSttusDtlsForm")
|
||||
public String selectBnftIntakchlSttusDtlsForm(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
log.debug("@@@@ BnftSttusVO is {}", vo);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftIntakchlSttusDtlsInqire", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bnft/sttus/IntakchlSttusDtlsForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 관심분야 설정현황 화면 이동
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftHlthsetSttusForm")
|
||||
public String selectBnftHlthsetSttusForm(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
vo.setBnfDvCd("120");
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftHlthsetSttusForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bnft/sttus/HlthsetSttusForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 관심분야 월별내역 화면 이동
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftHlthsetMonSttusForm")
|
||||
public String selectBnftHlthsetMonSttusForm(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
vo.setBnfDvCd("120");
|
||||
|
||||
// 현재 년
|
||||
LocalDate currDate = LocalDate.now();
|
||||
String srchYear = currDate.format(DateTimeFormatter.ofPattern("yyyy"));
|
||||
|
||||
vo.setSrchYear(srchYear);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftHlthsetMonSttusForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bnft/sttus/HlthsetMonSttusForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 관심분야 월별내역 조회
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftHlthsetMonSttusInqire")
|
||||
public ResponseEntity<WnbtResponse> selectBnftHlthsetMonSttusInqire(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftHlthsetMonSttusInqire", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 OX퀴즈 참여현황 화면 이동
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftOxquizSttusForm")
|
||||
public String selectBnftOxquizSttusForm(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
vo.setBnfDvCd("130");
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftOxquizSttusForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bnft/sttus/OxquizSttusForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 OX퀴즈 참여현황 목록 조회
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftOxquizSttusInqire")
|
||||
public String selectBnftOxquizSttusInqire(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftOxquizSttusInqire", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bnft/sttus/OxquizSttusList";
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 OX퀴즈 참여현황 상세 화면 이동
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftOxquizSttusDtlsForm")
|
||||
public String selectBnftOxquizSttusDtlsForm(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftOxquizSttusDtlsInqire", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bnft/sttus/OxquizSttusDtlsForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 모바일스탬프 기간별내역 화면 이동
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftPurstmpPdSttusForm")
|
||||
public String selectBnftPurstmpPdSttusForm(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftPurstmpPdSttusForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bnft/sttus/PurstmpPdSttusForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 모바일스탬프 월별내역 조회
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftPurstmpPdSttusInqire")
|
||||
public ResponseEntity<WnbtResponse> selectBnftPurstmpPdSttusSttusInqire(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftPurstmpPdSttusInqire", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 모바일스탬프 기간별내역 상세 화면 이동
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftPurstmpPdSttusDtlsForm")
|
||||
public String selectBnftPurstmpPdSttusDtlsForm(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftPurstmpPdSttusDtlsForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bnft/sttus/PurstmpPdSttusDtlsForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 모바일스탬프 일별내역 조회
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftPurstmpPdSttusDtlsInqire")
|
||||
public ResponseEntity<WnbtResponse> selectBnftPurstmpPdSttusDtlsInqire(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftPurstmpPdSttusDtlsInqire", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 모바일스탬프 매장별현황 화면 이동
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftPurstmpStrSttusForm")
|
||||
public String selectBnftPurstmpStrSttusForm(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftPurstmpStrSttusForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bnft/sttus/PurstmpStrSttusForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 모바일스탬프 매장별내역 조회
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftPurstmpStrSttusInqire")
|
||||
public ResponseEntity<WnbtResponse> selectBnftPurstmpStrSttusInqire(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftPurstmpStrSttusInqire", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 QR코드이벤트 참여현황 화면 이동
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftQrevntSttusForm")
|
||||
public String selectBnftQrevntSttusForm(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
vo.setBnfDvCd("150");
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftQrevntSttusForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bnft/sttus/QrevntSttusForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 QR코드이벤트 참여현황 목록 조회
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftQrevntSttusInqire")
|
||||
public String selectBnftQrevntSttusInqire(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftQrevntSttusInqire", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bnft/sttus/QrevntSttusList";
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 QR코드이벤트 참여현황 상세 화면 이동
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftQrevntSttusDtlsForm")
|
||||
public String selectBnftQrevntSttusDtlsForm(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftQrevntSttusDtlsForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/bnft/sttus/QrevntSttusDtlsForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 혜택 QR코드이벤트 상세 내역 조회
|
||||
*
|
||||
* @param BnftSttusVO
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBnftQrevntSttusDtlsInqire")
|
||||
public ResponseEntity<WnbtResponse> selectBnftQrevntSttusDtlsInqire(BnftSttusVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/bnft/sttus/selectBOBnftQrevntSttusDtlsInqire", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
package com.wb.domainserver.domain.mngr.bnft.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* 혜택 메뉴 VO
|
||||
* @author 이훈영
|
||||
* @since 2024-09-08
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2024-09-08 이훈영 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class BnftBannerVO extends AbstractVO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 혜택 배너 고유번호 */
|
||||
private Long bnfBannerInnb;
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
/** 배너 제목 */
|
||||
private String bannerSj;
|
||||
/** 링크 */
|
||||
private String linkUrl;
|
||||
/** 이미지파일경로 */
|
||||
private String imgFilCours;
|
||||
/** 이미지파일명 */
|
||||
private String imgFilNm;
|
||||
/** 정렬순서 */
|
||||
private Integer sortOrdr;
|
||||
/** 사용여부 */
|
||||
private String useAt;
|
||||
/** 삭제여부 */
|
||||
private String delAt;
|
||||
/** 항목Index */
|
||||
private Integer divIdx;
|
||||
|
||||
/** 이미지 파일 업로드 */
|
||||
private List<HashMap<String, Object>> fileInfo;
|
||||
|
||||
/** 배너항목 배열선언 */
|
||||
private Long[] arrBnfBannerInnb;
|
||||
private String[] arrBannerSj;
|
||||
private String[] arrLinkUrl;
|
||||
private String[] arrImgFilCours;
|
||||
private String[] arrImgFilNm;
|
||||
private Integer[] arrSortOrdr;
|
||||
private String[] arrUseAt;
|
||||
private String[] arrDelAt;
|
||||
private Integer[] arrDivIdx;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
package com.wb.domainserver.domain.mngr.bnft.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
*
|
||||
* 혜택 초록잎설정 VO
|
||||
* @author 이훈영
|
||||
* @since 2024-09-02
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2024-09-02 이훈영 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class BnftCpslVO extends AbstractVO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 혜택 구분코드 */
|
||||
private String bnfDvCd;
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
/** 화면표시여부 */
|
||||
private String indictAt;
|
||||
/** 스페셜 여부 */
|
||||
private String specialAt;
|
||||
/** 지급 개수 */
|
||||
private Integer pymntCnt;
|
||||
/** 스페셜 개수 */
|
||||
private Integer specialCnt;
|
||||
|
||||
/** 배열선언 */
|
||||
private String[] arrBnfDvCd;
|
||||
private String[] arrIndictAt;
|
||||
private String[] arrSpecialAt;
|
||||
private Integer[] arrPymntCnt;
|
||||
private Integer[] arrSpecialCnt;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
package com.wb.domainserver.domain.mngr.bnft.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
*
|
||||
* 혜택 안내문 정보 VO
|
||||
* @author 이훈영
|
||||
* @since 2024-09-03
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2024-09-03 이훈영 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class BnftGdccVO extends AbstractVO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 혜택 안내문 고유번호 */
|
||||
private Long bnfGdccInnb;
|
||||
/** 혜택 구분코드 */
|
||||
private String bnfDvCd;
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
|
||||
/** 안내문1 */
|
||||
private String wordsCn1;
|
||||
/** 안내문2 */
|
||||
private String wordsCn2;
|
||||
/** 안내문3 */
|
||||
private String wordsCn3;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
package com.wb.domainserver.domain.mngr.bnft.vo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
*
|
||||
* 혜택 관심분야 VO
|
||||
* @author 이훈영
|
||||
* @since 2024-06-18
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2024-07-18 이훈영 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class BnftIntrstVO {
|
||||
|
||||
/** 혜택 설정 고유번호 */
|
||||
private Long bnfInnb;
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
|
||||
/** 혜택 관심분야 고유번호 */
|
||||
private Long bnfIntrstInnb;
|
||||
/** 관심분야명 */
|
||||
private String intrstNm;
|
||||
/** 관심분야 선택전 이미지파일경로 */
|
||||
private String bfeImgFilCours;
|
||||
/** 관심분야 선택전 이미지파일명 */
|
||||
private String bfeImgFilNm;
|
||||
/** 관심분야 선택후 이미지파일경로 */
|
||||
private String aftImgFilCours;
|
||||
/** 관심분야 선택후 이미지파일명 */
|
||||
private String aftImgFilNm;
|
||||
/** 관심분야 정렬순서 */
|
||||
private Integer sortOrdr;
|
||||
/** 관심분야 사용여부 */
|
||||
private String useAt;
|
||||
/** 관심분야 삭제여부 */
|
||||
private String delAt;
|
||||
/** 관심분야 항목Index */
|
||||
private Integer divIdx;
|
||||
|
||||
/** 관심분야항목 배열선언 */
|
||||
private Long[] arrBnfIntrstInnb;
|
||||
private String[] arrIntrstNm;
|
||||
private String[] arrBfeImgFilCours;
|
||||
private String[] arrBfeImgFilNm;
|
||||
private Integer[] arrSortOrdr;
|
||||
private String[] arrUseAt;
|
||||
private String[] arrDelAt;
|
||||
private Integer[] arrDivIdx;
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
package com.wb.domainserver.domain.mngr.bnft.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
*
|
||||
* 혜택 초록잎설정 VO
|
||||
* @author 이훈영
|
||||
* @since 2024-09-02
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2024-09-02 이훈영 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class BnftMenuVO extends AbstractVO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 혜택 구분코드 */
|
||||
private String bnfDvCd;
|
||||
/** 혜택 구분명 */
|
||||
private String bnfDvNm;
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
/** 화면표시여부 */
|
||||
private String indictAt;
|
||||
/** 메뉴 제목 1 */
|
||||
private String menuSj1;
|
||||
/** 메뉴 제목 2 */
|
||||
private String menuSj2;
|
||||
/** 정렬순서 */
|
||||
private Integer sortOrdr;
|
||||
|
||||
/** 배열선언 */
|
||||
private String[] arrBnfDvCd;
|
||||
private String[] arrIndictAt;
|
||||
private String[] arrMenuSj1;
|
||||
private String[] arrMenuSj2;
|
||||
private Integer[] arrSortOrdr;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,87 @@
|
||||
package com.wb.domainserver.domain.mngr.bnft.vo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
*
|
||||
* 혜택 참여/보상 VO
|
||||
* @author 이훈영
|
||||
* @since 2024-06-18
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2024-07-18 이훈영 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class BnftPrtRcvVO {
|
||||
|
||||
/** 혜택 설정 고유번호 */
|
||||
private Long bnfInnb;
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
/** 혜택 구분 코드 */
|
||||
private String bnfDvCd;
|
||||
/** 혜택 구분 코드명 */
|
||||
private String bnfDvCdNm;
|
||||
|
||||
/// 혜택 참여 정보
|
||||
/** 혜택 참여 고유번호 */
|
||||
private Long bnfPrtInnb;
|
||||
/** 혜택 참여일시 */
|
||||
private String bnfPrtDt;
|
||||
/** 회원고유번호 */
|
||||
private Long mbrInnb;
|
||||
/** 회원구분코드 */
|
||||
private String mbrDvCd;
|
||||
/** 회원구분코드명 */
|
||||
private String mbrDvCdNm;
|
||||
/** 회원ID */
|
||||
private Long mbrId;
|
||||
/** 회원명 */
|
||||
private Long mbrNm;
|
||||
/** 회원 휴대폰번호 */
|
||||
private Long mbrCellNo;
|
||||
|
||||
/// 혜택 보상수령 내역
|
||||
/** 혜택 보상수령 고유번호 */
|
||||
private Long bnfRcvInnb;
|
||||
/** 보상 항목 구분 코드 */
|
||||
private String bnfRwdCateDvCd;
|
||||
/** 보상 항목 구분 코드명 */
|
||||
private String bnfRwdCateDvCdNm;
|
||||
/** 보상 상품 구분 코드 */
|
||||
private String bnfRwdGodsDvCd;
|
||||
/** 보상 상품 구분 코드명 */
|
||||
private String bnfRwdGodsDvCdNm;
|
||||
/** 보상 마일리지 금액 */
|
||||
private Double mlgRwdAmt;
|
||||
/** 보상 쿠폰고유번호 */
|
||||
private Long couponInnb;
|
||||
/** 보상 쿠폰명 */
|
||||
private Long couponName;
|
||||
|
||||
/** 혜택 구매확정 수신 로그 고유번호 */
|
||||
private Long bnfPurchsRcvLogInnb;
|
||||
|
||||
// 참여기회 충전내역
|
||||
/** 혜택 참여기회 충전 고유번호 */
|
||||
private Long bnfChgInnb;
|
||||
/** 구매식별 고유번호 */
|
||||
private Long purchsInnb;
|
||||
/** 구매금액 */
|
||||
private Double purchsAmt;
|
||||
/** 충전수 */
|
||||
private int chgCnt;
|
||||
|
||||
/** 충전필요금액 */
|
||||
private Double amtForChg;
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
package com.wb.domainserver.domain.mngr.bnft.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
*
|
||||
* 혜택 알림관리 이벤트별알림 VO
|
||||
* @author 이훈영
|
||||
* @since 2024-09-19
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2024-09-19 이훈영 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class BnftPushEvtVO extends AbstractVO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 혜택 알림 이벤트별 설정 고유번호 */
|
||||
private Long bnfPushEvtSetupInnb;
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
/** 알림 조건 구분 코드 */
|
||||
private String bnfPushCndDvCd;
|
||||
/** 알림 조건 구분 명 */
|
||||
private String bnfPushCndDvNm;
|
||||
/** 알림 제목 */
|
||||
private String pushSj;
|
||||
/** 알림 내용 */
|
||||
private String pushCn;
|
||||
/** 알림 시간 */
|
||||
private String pushTme;
|
||||
/** 알림 주기 구분 */
|
||||
private String pushCycleDv;
|
||||
/** 알림 제한 횟수 */
|
||||
private Integer pushLmttCnt;
|
||||
/** 사용여부 */
|
||||
private String useAt;
|
||||
|
||||
/** 항목 배열선언 */
|
||||
private Long[] arrBnfPushEvtSetupInnb;
|
||||
private String[] arrBnfPushCndDvCd;
|
||||
private String[] arrBnfPushCndDvNm;
|
||||
private String[] arrPushSj;
|
||||
private String[] arrPushCn;
|
||||
private String[] arrPushTme;
|
||||
private String[] arrPushCycleDv;
|
||||
private Integer[] arrPushLmttCnt;
|
||||
private String[] arrUseAt;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,172 @@
|
||||
package com.wb.domainserver.domain.mngr.bnft.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* 혜택 알림메세지 VO
|
||||
* @author 이훈영
|
||||
* @since 2024-09-23
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2024-09-23 이훈영 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class BnftPushVO extends AbstractVO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
|
||||
// 알림 내용 항목
|
||||
/** 혜택 알림 정보 고유번호 */
|
||||
private Long bnfPushInfoInnb;
|
||||
/** 알림 대상 구분 코드 */
|
||||
private String bnfPushTrgetDvCd;
|
||||
/** 알림 대상 구분 명 */
|
||||
private String bnfPushTrgetDvNm;
|
||||
/** 알림 대상 구분 */
|
||||
private String trgetDv;
|
||||
/** 알림 대상 전체수 */
|
||||
private Integer trgetAllCnt;
|
||||
/** 알림 제목 */
|
||||
private String pushSj;
|
||||
/** 알림 내용 */
|
||||
private String pushCn;
|
||||
/** 알림 내용 - 개행처리 */
|
||||
private String pushCnRpl;
|
||||
/** 알림 발송 일시 */
|
||||
private String pushSendDt;
|
||||
/** 알림 발송 일자 */
|
||||
private String pushSendDe;
|
||||
/** 알림 발송 시간 */
|
||||
private String pushSendTme;
|
||||
/** 이미지파일경로 */
|
||||
private String imgFilCours;
|
||||
/** 이미지파일명 */
|
||||
private String imgFilNm;
|
||||
/** 예약 여부 */
|
||||
private String resveAt;
|
||||
/** 예약 상태 */
|
||||
private String resveSttus;
|
||||
/** 삭제 여부 */
|
||||
private String delAt;
|
||||
|
||||
/** 알림 유형 */
|
||||
private String pushType;
|
||||
/** callback 데이터 */
|
||||
private String pushData;
|
||||
/** callback 데이터 - url */
|
||||
private String dataUrl;
|
||||
/** callback 데이터 - key */
|
||||
private String dataKey;
|
||||
/** callback 데이터 - ext */
|
||||
private String dataExt;
|
||||
|
||||
// 알림 발송 항목
|
||||
/** 혜택 알림 발송내역 고유번호 */
|
||||
private Long bnfPushSndngDtlsInnb;
|
||||
/** 혜택 알림 이벤트별 설정 고유번호 */
|
||||
private Long bnfPushEvtSetupInnb;
|
||||
/** 발송 여부 */
|
||||
private String sndngAt;
|
||||
/** 발송 상태 */
|
||||
private String sndngSttus;
|
||||
/** 발송 대상수 */
|
||||
private Integer sndngTrgetCnt;
|
||||
/** 발송 성공수 */
|
||||
private Integer sndngSuccesCnt;
|
||||
/** 발송 실패수 */
|
||||
private Integer sndngFailrCnt;
|
||||
/** 에러코드 */
|
||||
private Integer errorCode;
|
||||
|
||||
// 알림 설정
|
||||
/** 테스트 대상 회원ID 문자열 */
|
||||
private String trgetMbrIds;
|
||||
/** 발송제한 시작 시간1 */
|
||||
private String lmttBgnTme1;
|
||||
/** 발송제한 종료 시간1 */
|
||||
private String lmttEndTme1;
|
||||
/** 발송제한 시작 시간2 */
|
||||
private String lmttBgnTme2;
|
||||
/** 발송제한 종료 시간2 */
|
||||
private String lmttEndTme2;
|
||||
|
||||
// 대상 회원 항목
|
||||
/** 회원 디바이스 고유번호 */
|
||||
private Long mbrDeviceInnb;
|
||||
/** 회원 디바이스 고유번호 배열 */
|
||||
private Long[] arrMbrDeviceInnb;
|
||||
/** 회원고유번호 */
|
||||
private Long mbrInnb;
|
||||
/** 회원구분코드 */
|
||||
private String mbrDvCd;
|
||||
/** 회원ID */
|
||||
private String mbrId;
|
||||
/** 회원명 */
|
||||
private String mbrNm;
|
||||
/** FCM 토큰 */
|
||||
private String fcmToken;
|
||||
/** FCM 토큰 배열 */
|
||||
private String[] arrFcmToken;
|
||||
/** 알림 동의 여부 */
|
||||
private String pushAgreAt;
|
||||
/** 디바이스 고유ID */
|
||||
private String deviceId;
|
||||
/** 운영체제 이름 */
|
||||
private String deviceOsNm;
|
||||
/** 운영체제 버전 */
|
||||
private String deviceOsVer;
|
||||
/** 앱 버전 */
|
||||
private String deviceAppVer;
|
||||
|
||||
// 혜택별 동의 항목
|
||||
/** 혜택 동의 고유번호 */
|
||||
private Long bnfAgreInnb;
|
||||
/** 혜택 구분코드 */
|
||||
private String bnfDvCd;
|
||||
/** 혜택 동의 구분코드 */
|
||||
private String bnfAgreDvCd;
|
||||
/** 혜택 설정 고유번호 */
|
||||
private Long bnfInnb;
|
||||
/** 동의여부 */
|
||||
private String agreAt;
|
||||
|
||||
/** 이미지 파일 업로드 */
|
||||
private List<HashMap<String, Object>> fileInfo;
|
||||
/** CDN URL */
|
||||
private String imgCdnurl;
|
||||
|
||||
// 검색 조건
|
||||
/** 검색구분 */
|
||||
private String srchDv;
|
||||
/** 검색_검색어 */
|
||||
private String srchKeyword;
|
||||
/** 검색_날짜_구분 */
|
||||
private String srchPdDv;
|
||||
/** 검색_상태_구분 */
|
||||
private String srchSttDv;
|
||||
/** 검색_사용여부_구분 */
|
||||
private String srchUseAt;
|
||||
/** 검색_시작일 */
|
||||
private String srchStartDt;
|
||||
/** 검색_종료일 */
|
||||
private String srchEndDt;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
package com.wb.domainserver.domain.mngr.bnft.vo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
*
|
||||
* 혜택 퀴즈 VO
|
||||
* @author 이훈영
|
||||
* @since 2024-06-18
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2024-07-18 이훈영 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class BnftQuizVO {
|
||||
|
||||
/** 혜택 설정 고유번호 */
|
||||
private Long bnfInnb;
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
|
||||
/** 혜택 퀴즈 고유번호 */
|
||||
private Long bnfQuizInnb;
|
||||
/** 퀴즈 내용 */
|
||||
private String quizCn;
|
||||
/** 퀴즈 정답 */
|
||||
private String quizCnsr;
|
||||
/** 힌트보기 링크 */
|
||||
private String hintUrl;
|
||||
/** 퀴즈 삭제여부 */
|
||||
private String delAt;
|
||||
|
||||
/** 퀴즈항목 배열선언 */
|
||||
private Long[] arrBnfQuizInnb;
|
||||
private String[] arrQuizCn;
|
||||
private String[] arrQuizCnsr;
|
||||
private String[] arrHintUrl;
|
||||
private String[] arrDelAt;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
package com.wb.domainserver.domain.mngr.bnft.vo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
*
|
||||
* 혜택 보상 VO
|
||||
* @author 이훈영
|
||||
* @since 2024-06-18
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2024-06-18 이훈영 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class BnftRewardVO {
|
||||
|
||||
/** 혜택 설정 고유번호 */
|
||||
private Long bnfInnb;
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
|
||||
/** 보상 항목 구분 코드 */
|
||||
private String bnfRwdCateDvCd;
|
||||
/** 보상 항목 구분 코드명 */
|
||||
private String bnfRwdCateDvCdNm;
|
||||
/** 보상 상품 구분 코드 */
|
||||
private String bnfRwdGodsDvCd;
|
||||
/** 보상 상품 구분 코드명 */
|
||||
private String bnfRwdGodsDvCdNm;
|
||||
/** 보상 마일리지 금액 */
|
||||
private Double mlgRwdAmt;
|
||||
/** 보상 쿠폰고유번호 */
|
||||
private Long couponInnb;
|
||||
/** 보상 쿠폰명 */
|
||||
private Long couponName;
|
||||
/** 보상 표시명 */
|
||||
private String itmNm;
|
||||
/** 보상 당첨수량 */
|
||||
private Integer przwinQy;
|
||||
/** 보상 당첨확률 */
|
||||
private Float przwinPrc;
|
||||
/** 보상 조건횟수 */
|
||||
private Integer rwdCndCnt;
|
||||
|
||||
/** 보상항목 배열선언 */
|
||||
private String[] arrBnfRwdCateDvCd;
|
||||
private String[] arrBnfRwdGodsDvCd;
|
||||
private Double[] arrMlgRwdAmt;
|
||||
private Long[] arrCouponInnb;
|
||||
private String[] arrItmNm;
|
||||
private Integer[] arrPrzwinQy;
|
||||
private Float[] arrPrzwinPrc;
|
||||
private Integer[] arrRwdCndCnt;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,96 @@
|
||||
package com.wb.domainserver.domain.mngr.bnft.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
*
|
||||
* 혜택 현황내역 VO
|
||||
* @author 이훈영
|
||||
* @since 2024-10-11
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2024-10-11 이훈영 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class BnftSttusVO extends AbstractVO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
/** 혜택구분코드 */
|
||||
private String bnfDvCd;
|
||||
/** 혜택고유번호 */
|
||||
private String bnfInnb;
|
||||
|
||||
// 회원별 내역
|
||||
/** 회원 고유번호 */
|
||||
private String mbrInnb;
|
||||
/** 회원구분코드 */
|
||||
private String mbrDvCd;
|
||||
/** 회원ID */
|
||||
private String mbrId;
|
||||
/** 회원명 */
|
||||
private String mbrNm;
|
||||
/** 최종참여일시 */
|
||||
private String lastPrtDt;
|
||||
/** 참여횟수 */
|
||||
private Integer prtCnt;
|
||||
/** 보상횟수1 */
|
||||
private Integer rwdCnt1;
|
||||
/** 보상횟수2 */
|
||||
private Integer rwdCnt2;
|
||||
/** 참여보상 마일리지 합계 */
|
||||
private Double sumMlgAmt;
|
||||
|
||||
|
||||
// 검색 조건
|
||||
/** 검색구분 */
|
||||
private String srchDv;
|
||||
/** 검색_검색어 */
|
||||
private String srchKeyword;
|
||||
/** 검색_부분 */
|
||||
private String srchPart;
|
||||
/** 검색_숫자 */
|
||||
private Integer srchNum;
|
||||
/** 검색_숫자범위 */
|
||||
private String srchNumRng;
|
||||
/** 검색_년 */
|
||||
private String srchYear;
|
||||
/** 검색_월 */
|
||||
private String srchMonth;
|
||||
/** 검색_시작년 */
|
||||
private String srchSttYear;
|
||||
/** 검색_시작월 */
|
||||
private String srchSttMonth;
|
||||
/** 검색_종료년 */
|
||||
private String srchEndYear;
|
||||
/** 검색_종료월 */
|
||||
private String srchEndMonth;
|
||||
/** 검색_시작일 */
|
||||
private String srchStartDt;
|
||||
/** 검색_종료일 */
|
||||
private String srchEndDt;
|
||||
/** 검색_일시 */
|
||||
private String srchCurrDt;
|
||||
/** 검색_보상구분코드 */
|
||||
private String[] srchRwdCateDv;
|
||||
/** 검색_상태_구분 */
|
||||
private String srchSttDv;
|
||||
/** 검색_매장 */
|
||||
private String srchStrInnb;
|
||||
/** 검색_정렬 */
|
||||
private String srchOrder;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,159 @@
|
||||
package com.wb.domainserver.domain.mngr.bnft.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* 혜택 VO
|
||||
* @author 이훈영
|
||||
* @since 2024-06-18
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2024-06-18 이훈영 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class BnftVO extends AbstractVO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/// 혜택 기본 정보
|
||||
/** 혜택 설정 고유번호 */
|
||||
private Long bnfInnb;
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
/** 혜택 구분 코드 */
|
||||
private String bnfDvCd;
|
||||
/** 혜택 구분 코드명 */
|
||||
private String bnfDvCdNm;
|
||||
/** 혜택 제목 */
|
||||
private String bnfSj;
|
||||
/** 사용여부 */
|
||||
//private String useAt;
|
||||
/** 진행기간 시작일시 */
|
||||
private String bnfBgnDt;
|
||||
/** 진행기간 종료일시 */
|
||||
private String bnfEndDt;
|
||||
/** 진행기간 시작일자 */
|
||||
private String bnfBgnDe;
|
||||
/** 진행기간 종료일자 */
|
||||
private String bnfEndDe;
|
||||
/** 진행기간 시작시간 */
|
||||
private String bnfBgnTme;
|
||||
/** 진행기간 종료시간 */
|
||||
private String bnfEndTme;
|
||||
/** 충전필요금액 */
|
||||
private Double amtForChg;
|
||||
/** 화면 대표 이미지 */
|
||||
private String scrReprsntImg;
|
||||
/** 화면 대표 이미지명 */
|
||||
private String scrReprsntImgNm;
|
||||
/** 화면 대표 링크 URL */
|
||||
private String scrReprsntLinkUrl;
|
||||
/** 화면 보상 이미지 */
|
||||
private String scrRwdImg;
|
||||
/** 화면 보상 이미지명 */
|
||||
private String scrRwdImgNm;
|
||||
/** 화면 보상 링크 URL */
|
||||
private String scrRwdLinkUrl;
|
||||
/** 혜택 안내 */
|
||||
private String bnfWordsCn;
|
||||
|
||||
///혜택 내용설정 정보
|
||||
/** 내용 제목 */
|
||||
private String cnSj;
|
||||
/** 내용 설명 */
|
||||
private String cnDc;
|
||||
/** 링크 */
|
||||
private String linkUrl;
|
||||
/** 이미지파일경로 */
|
||||
private String imgFilCours;
|
||||
/** 이미지파일명 */
|
||||
private String imgFilNm;
|
||||
/** 시작일시 */
|
||||
private String cnBgnDt;
|
||||
/** 종료일시 */
|
||||
private String cnEndDt;
|
||||
/** 시작일자 */
|
||||
private String cnBgnDe;
|
||||
/** 종료일자 */
|
||||
private String cnEndDe;
|
||||
/** 시작시간 */
|
||||
private String cnBgnTme;
|
||||
/** 종료시간 */
|
||||
private String cnEndTme;
|
||||
/** 유효일시 */
|
||||
private String validDt;
|
||||
/** 시간(초) */
|
||||
private int tmeSecnd;
|
||||
/** 안내내용 */
|
||||
private String wordsCn;
|
||||
/** 회원명 */
|
||||
private String mbrNm;
|
||||
/** 할인구분코드 */
|
||||
private String dscntUnitDvCd;
|
||||
/** 할인구분코드명 */
|
||||
private String dscntUnitDvCdNm;
|
||||
/** 할인금액 */
|
||||
private Float dscntAmt;
|
||||
/** 할인율 */
|
||||
private Double dscntRt;
|
||||
|
||||
|
||||
/** 혜택 설정 고유번호 */
|
||||
private Long befBnfInnb;
|
||||
|
||||
|
||||
/** 이미지 파일 업로드 */
|
||||
private List<HashMap<String, Object>> fileInfo;
|
||||
private List<HashMap<String, Object>> fileInfo2;
|
||||
|
||||
/// 혜택 동의 내역 -- 필요??
|
||||
/** 혜택 동의 고유번호 */
|
||||
private Long bnfAgreInnb;
|
||||
/** 혜택 동의 구분코드 */
|
||||
private String bnfAgreDvCd;
|
||||
/** 혜택 동의 구분코드명 */
|
||||
private String bnfAgreDvCdNm;
|
||||
/** 동의여부 */
|
||||
private String agreAt;
|
||||
|
||||
// 검색 조건
|
||||
/** 검색구분 */
|
||||
private String srchDv;
|
||||
/** 검색_검색어 */
|
||||
private String srchKeyword;
|
||||
/** 검색_날짜_구분 */
|
||||
private String srchPdDv;
|
||||
/** 검색_상태_구분 */
|
||||
private String srchSttDv;
|
||||
/** 검색_사용여부_구분 */
|
||||
private String srchUseAt;
|
||||
/** 검색_시작일 */
|
||||
private String srchStartDt;
|
||||
/** 검색_종료일 */
|
||||
private String srchEndDt;
|
||||
|
||||
/// 혜택 보상 VO
|
||||
private BnftRewardVO rwdVO;
|
||||
|
||||
/// 혜택 관심분야 VO
|
||||
private BnftIntrstVO intrstVO;
|
||||
|
||||
/// 혜택 퀴즈 VO
|
||||
private BnftQuizVO quizVO;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,255 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.banner.controller;
|
||||
|
||||
import com.wb.domainserver.common.msg.GconeMessageSource;
|
||||
import com.wb.domainserver.domain.mngr.goods.banner.vo.BannerVO;
|
||||
import com.wb.domainserver.exception.WnbtRestException;
|
||||
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.communicate.ValidateResultConverter;
|
||||
import com.wb.domainserver.util.file.FileMngUtil;
|
||||
import com.wb.domainserver.util.file.service.FileStorageService;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
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.CookieValue;
|
||||
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;
|
||||
import java.util.List;
|
||||
|
||||
@Slf4j
|
||||
@Controller
|
||||
@RequestMapping("/mngr/goods/banner")
|
||||
public class BannerController {
|
||||
|
||||
@Autowired
|
||||
private SendToResrc sendToResrc;
|
||||
@Autowired
|
||||
private GconeMessageSource gconeMessageSource;
|
||||
@Autowired
|
||||
private FileMngUtil fileMngUtil;
|
||||
@Value("${mngrfo.common.fileupload.uploaddirs.goods}")
|
||||
private String uploadFilePath;
|
||||
@Value("${mngrfo.common.fileupload.extensions.images}")
|
||||
private String whiteListFileUploadExtensions;
|
||||
|
||||
@Autowired
|
||||
private FileStorageService filestore;
|
||||
|
||||
@Autowired
|
||||
private WnbtWebClientResponseHandler responseHandler;
|
||||
|
||||
/**
|
||||
* 배너목록조회
|
||||
* @param vo
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectBannerListR")
|
||||
public String selectBannerListR(BannerVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/selectBOBannerList", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/goods/banner/BannerListR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 배너등록페이지이동
|
||||
* @param vo
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectBannerRegistForm")
|
||||
public String selectBannerRegistForm(BannerVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/selectBOBannerRegistForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/goods/banner/BannerC";
|
||||
}
|
||||
|
||||
/**
|
||||
* 배너 등록
|
||||
* @param vo
|
||||
* @param model
|
||||
* @param bindingResult
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/insertBanner" , method = RequestMethod.POST)
|
||||
public ResponseEntity<?> insertBanner(@Validated BannerVO vo, BindingResult bindingResult,
|
||||
HttpServletRequest request,
|
||||
@CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
if(bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
request.setAttribute("shopCd", vo.getSopmalCd());
|
||||
request.setAttribute("pathGubun", "ETCM");
|
||||
request.setAttribute("subPathId", "");
|
||||
request.setAttribute("validExp", "");
|
||||
List<HashMap<String, Object>> ulpladFileMap;
|
||||
try {
|
||||
ulpladFileMap = filestore.fileUpload(request);
|
||||
vo.setFileInfo(ulpladFileMap);
|
||||
} catch (WnbtRestException wre){
|
||||
throw new WnbtRestException("파일 업로드에 실패했습니다."+ wre.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/insertBOBanner", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 배너수정페이지 및 상세조회
|
||||
* @param vo
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectBannerDtlForm" , method = RequestMethod.POST)
|
||||
public String selectBannerDtlForm(BannerVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/selectBOBannerDtlForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
|
||||
return "mngr/goods/banner/BannerDtlU";
|
||||
}
|
||||
|
||||
/**
|
||||
* 배너 수정
|
||||
* @param vo
|
||||
* @param model
|
||||
* @param bindingResult
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/updateBannerDtl")
|
||||
public ResponseEntity<?> updateBannerDtl(@Validated BannerVO vo, BindingResult bindingResult, HttpServletRequest request, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
if(bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
request.setAttribute("shopCd", vo.getSopmalCd());
|
||||
request.setAttribute("pathGubun", "ETCM");
|
||||
request.setAttribute("subPathId", "");
|
||||
request.setAttribute("validExp", "");
|
||||
List<HashMap<String, Object>> ulpladFileMap;
|
||||
try {
|
||||
ulpladFileMap = filestore.fileUpload(request);
|
||||
vo.setFileInfo(ulpladFileMap);
|
||||
} catch (WnbtRestException wre){
|
||||
throw new WnbtRestException("파일 업로드에 실패했습니다."+wre.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/updateBOBannerDtl", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 배너삭제
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/deleteBanner" , method = RequestMethod.POST)
|
||||
public ResponseEntity<?> deleteBanner(BannerVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/deleteBOBanner", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 배너 순서 지정 팝업
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectBannerOrdrPopup" , method = RequestMethod.POST)
|
||||
public String selectBannerOrdrPopup(BannerVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/selectBOBannerOrdrPopup", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
|
||||
return "mngr/goods/banner/BannerOrdrPopupR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 배너 순서 수정
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/updateBannerOrdr" , method = RequestMethod.POST)
|
||||
public ResponseEntity<?> updateBannerOrdr( @RequestBody List<BannerVO> vo,
|
||||
@CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
for(BannerVO bannerVO : vo){
|
||||
bannerVO.setSopmalCd(authSopmalCd);
|
||||
}
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/banner/updateBOBannerOrdr", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.banner.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class BannerVO extends AbstractVO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** table name : fm_goods_banner */
|
||||
/** 배너 key */
|
||||
private Integer bannerInnb;
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
/** 배너 명 */
|
||||
@NotBlank(message = "배너명")
|
||||
private String bannerNm;
|
||||
/** 노출위치구분 */
|
||||
private String expsrlcDv;
|
||||
/** 노출구분 */
|
||||
private String expsrlcDvCd;
|
||||
/** 배너 경로 */
|
||||
private String bannerUrl;
|
||||
/** 노출시작일시 */
|
||||
private String expsrBgnDt;
|
||||
/** 노출종료일시 */
|
||||
private String expsrEndDt;
|
||||
/** 원본파일명 */
|
||||
private String orginlFilNm;
|
||||
/** 시스템파일명 */
|
||||
private String sysFilNm;
|
||||
/** 파일용량 */
|
||||
private String filMg;
|
||||
/** 파일타입 */
|
||||
private String filTy;
|
||||
/** 파일경로 */
|
||||
private String filCours;
|
||||
/** 파일정보 */
|
||||
private List<HashMap<String, Object>> fileInfo;
|
||||
|
||||
|
||||
/** 추가 항목 */
|
||||
/** 상품리스트 */
|
||||
private String[] goodsIds;
|
||||
/** 상품 갯수 */
|
||||
private String goodsCnt;
|
||||
/** 파일 사용 상태값 */
|
||||
private String fileUse;
|
||||
/** 노출 예약 시작 날짜 */
|
||||
private String expsrBgnYmd;
|
||||
/** 노출 예약 종료 날짜 */
|
||||
private String expsrEndYmd;
|
||||
/** 노출 예약 시작 시각 */
|
||||
private String expsrBgnTime;
|
||||
/** 노출 예약 종료 시각 */
|
||||
private String expsrEndTime;
|
||||
|
||||
|
||||
// 이벤트 적용 상품
|
||||
/** 상품 적용 구분 코드 */
|
||||
private String goodsApplcDvCd;
|
||||
/** 선택한 카테고리 */
|
||||
private String[] reprsntCtgryId;
|
||||
/** 선택한 상품 */
|
||||
private String[] relatedGoodsId;
|
||||
/** 상품 고유번호 */
|
||||
private String goodsInnb;
|
||||
|
||||
|
||||
/** 이벤트 적용상품 고유번호 */
|
||||
private Integer evtApplcGoodsInnb;
|
||||
/** 상품적용구분 */
|
||||
private String goodsApplcDv;
|
||||
/** 판매상품 고유번호 */
|
||||
private Integer sleGoodsInnb;
|
||||
/** 혜택 적용 판매상품 고유번호 리스트 */
|
||||
private List<Integer> sleGoodsInnbList;
|
||||
/** 혜택 제외 판매상품 고유번호 리스트 */
|
||||
private List<Integer> ExclSleGoodsInnbList;
|
||||
/** 카테고리 ID */
|
||||
private String ctgryId;
|
||||
/** 혜택 적용 카테고리 ID 리스트 */
|
||||
private List<Integer> ctgryIdList;
|
||||
/** 혜택 제외 카테고리 ID 리스트 */
|
||||
private List<Integer> ExclCtgryIdList;
|
||||
/** 상위 카테고리 */
|
||||
private String upperCtgryId;
|
||||
/*배너순서*/
|
||||
private String bannerOrdr;
|
||||
}
|
||||
@@ -0,0 +1,165 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.cmnuse.controller;
|
||||
|
||||
import com.wb.domainserver.common.msg.GconeMessageSource;
|
||||
import com.wb.domainserver.domain.mngr.goods.cmnuse.vo.CmnuseVO;
|
||||
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 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.CookieValue;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
|
||||
/**
|
||||
* Cmnuse Controller Class (front)
|
||||
*
|
||||
* @author
|
||||
* @since 2024-02-10
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2023-12-10 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
|
||||
@Controller
|
||||
@Slf4j
|
||||
@RequestMapping("/mngr/goods/cmnuse")
|
||||
public class CmnuseController {
|
||||
|
||||
/** WebClient 호출을 위한 wrapper */
|
||||
@Autowired
|
||||
private SendToResrc sendToResrc;
|
||||
|
||||
/** 공통 메시지 처리를 위한 메시지 객체 */
|
||||
@Autowired
|
||||
private GconeMessageSource gconeMessageSource;
|
||||
|
||||
@Autowired
|
||||
private WnbtWebClientResponseHandler responseHandler;
|
||||
|
||||
|
||||
/**
|
||||
* 공용 정보 목록 조회
|
||||
* @param CmnuseVO
|
||||
* @param model 모델객체
|
||||
* @return String JSP 경로
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectCmnuseInfoList")
|
||||
public String selectCmnuseInfoList(CmnuseVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/cmnuse/selectBOCmnuseInfoList", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/goods/cmnuse/CmnuseInfoListR";
|
||||
}
|
||||
/**
|
||||
* 공용 정보 등록
|
||||
* @param CmnuseVO
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/insertCmnuseInfo" , method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> insertCmnuseInfo(CmnuseVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/cmnuse/insertBOCmnuseInfo", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
}
|
||||
/**
|
||||
* 공용 정보 등록 화면 조회
|
||||
* @param CmnuseVO
|
||||
* @param model 모델객체
|
||||
* @return String JSP 경로
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectCmnuseInfoForm")
|
||||
public String selectCmnuseInfoForm(CmnuseVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return "mngr/goods/cmnuse/CmnuseInfoFormR";
|
||||
}
|
||||
/**
|
||||
* 공용 정보 수정
|
||||
* @param CmnuseVO
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/updateCmnuseInfoDtl", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateCmnuseInfoDtl(CmnuseVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/cmnuse/updateBOCmnuseInfoDtl", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
}
|
||||
/**
|
||||
* 공용 정보 수정 화면 조회
|
||||
* @param CmnuseVO
|
||||
* @param model 모델객체
|
||||
* @return String JSP 경로
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectCmnuseInfoDtlForm")
|
||||
public String selectCmnuseInfoDtlForm(CmnuseVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/cmnuse/selectBOCmnuseInfoDtlForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
|
||||
return "mngr/goods/cmnuse/CmnuseInfoDtlFormR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 공용 정보 삭제
|
||||
* @param CmnuseVO
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/deleteCmnuseInfo", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> deleteCmnuseInfo(CmnuseVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/cmnuse/deleteBOCmnuseInfo", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.cmnuse.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class CmnuseVO extends AbstractVO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 공용정보 고유번호 */
|
||||
private String cmnuseInfoInnb;
|
||||
/** 버전번호 */
|
||||
private String verNb;
|
||||
/** 사업자 고유번호 */
|
||||
private String bsnmInnb;
|
||||
/** 공용정보 타이틀 */
|
||||
private String cmnuseInfoSj;
|
||||
/** 정보내용 */
|
||||
private String infoCn;
|
||||
/** 사용여부 */
|
||||
private String useAt;
|
||||
|
||||
/** 쇼핑몰 코드 */
|
||||
private String sopmalCd;
|
||||
}
|
||||
@@ -0,0 +1,180 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.goodsinfo.controller;
|
||||
|
||||
import com.wb.domainserver.common.msg.GconeMessageSource;
|
||||
import com.wb.domainserver.domain.mngr.goods.goodsinfo.vo.GoodsInfoVO;
|
||||
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.communicate.ValidateResultConverter;
|
||||
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.CookieValue;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
|
||||
/**
|
||||
* GoodsInfoController Controller Class (front)
|
||||
*
|
||||
* @author
|
||||
* @since 2023-12-12
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2023-12-12 최범식 최초 생성
|
||||
* 2024-02-14 이운산 상품정보수정선택 수정
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
|
||||
@Slf4j
|
||||
@Controller
|
||||
@RequestMapping("/mngr/goods/goodsinfo")
|
||||
public class GoodsInfoController {
|
||||
|
||||
/** WebClient 호출을 위한 wrapper */
|
||||
@Autowired
|
||||
private SendToResrc sendToResrc;
|
||||
|
||||
/** 공통 메시지 처리를 위한 메시지 객체 */
|
||||
@Autowired
|
||||
private GconeMessageSource gconeMessageSource;
|
||||
|
||||
@Autowired
|
||||
private WnbtWebClientResponseHandler responseHandler;
|
||||
|
||||
/**
|
||||
* 상품 정보 목록 조회
|
||||
* @param GoodsInfoVO
|
||||
* @return GoodsInfoListR.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectGoodsInfoList")
|
||||
public String selectBbsListInqire(GoodsInfoVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goodsinfo/selectBOGoodsInfoList", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/goods/goodsinfo/GoodsInfoListR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 정보 등록화면
|
||||
* @param GoodsInfoVO
|
||||
* @return GoodsInfoFormR.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectGoodsInfoForm")
|
||||
public String selectGoodsInfoForm(GoodsInfoVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
model.addAttribute("goodsExpsrInfoInnb", vo.getGoodsExpsrInfoInnb());
|
||||
|
||||
return "mngr/goods/goodsinfo/GoodsInfoFormR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 정보 등록
|
||||
* @param GoodsInfoVO
|
||||
* @param bindingResult 바인딩 및 정합성 점검결과 객체
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/insertGoodsInfo", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> insertGoodsInfo(@Validated GoodsInfoVO vo, BindingResult bindingResult,
|
||||
@CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
if(bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goodsinfo/insertBOGoodsInfo", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 정보 수정화면
|
||||
* @param GoodsInfoVO
|
||||
* @param model 모델객체
|
||||
* @return GoodsInfoDtlFormR.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectGoodsInfoDtlForm")
|
||||
public String selectGoodsInfoDtlForm(GoodsInfoVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goodsinfo/selectBOGoodsInfoDtlForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/goods/goodsinfo/GoodsInfoDtlFormR";
|
||||
}
|
||||
/**
|
||||
* 상품 정보 수정
|
||||
* @param GoodsInfoVO
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/updateGoodsInfoDtl")
|
||||
public ResponseEntity<WnbtResponse> updateGoodsInfoDtl(@Validated GoodsInfoVO vo, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
if(bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goodsinfo/updateBOGoodsInfoDtl", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 정보 삭제
|
||||
* @param GoodsInfoVO
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/deleteGoodsInfo")
|
||||
public ResponseEntity<WnbtResponse> deleteGoodsInfo(GoodsInfoVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goodsinfo/updateBOGoodsInfoDel", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.goodsinfo.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class GoodsInfoVO extends AbstractVO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 상품노출정보 고유번호 */
|
||||
private String goodsExpsrInfoInnb;
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
/** 상품정보설정 제목 */
|
||||
@NotBlank(message = "상품 정보명")
|
||||
private String goodsInfoSetupSj;
|
||||
/** 상품명노출여부 */
|
||||
private String goodsNmExpsrAt;
|
||||
/** 상품명노출순서 */
|
||||
private String goodsNmExpsrOrdr;
|
||||
/** 대표설명노출여부 */
|
||||
private String reprsntDcExpsrAt;
|
||||
/** 대표설명노출순서 */
|
||||
private String reprsntDcExpsrOrdr;
|
||||
/** 가격노출여부 */
|
||||
private String pricExpsrAt;
|
||||
/** 가격노출순서 */
|
||||
private String pricExpsrOrdr;
|
||||
/** 배송노출여부 */
|
||||
private String dlvyExpsrAt;
|
||||
/** 배송노출순서 */
|
||||
private String dlvyExpsrOrdr;
|
||||
/** 리뷰 평점 노출여부 */
|
||||
private String rvwEvlScreExpsrAt;
|
||||
/** 리뷰 평점 노출순서 */
|
||||
private String rvwEvlScreExpsrOrdr;
|
||||
/** 아이콘 노출여부 */
|
||||
private String iconExpsrAt;
|
||||
/** 아이콘 노출순서 */
|
||||
private String iconExpsrOrdr;
|
||||
/** 사용여부 */
|
||||
private String useAt;
|
||||
/** 순서 DB 저장용도 아님*/
|
||||
private String[] sortOrdr;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,686 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.goodsmngr.controller;
|
||||
|
||||
import com.wb.domainserver.common.msg.GconeMessageSource;
|
||||
import com.wb.domainserver.domain.mngr.goods.goodsmngr.vo.GoodsmngrVO;
|
||||
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.file.service.FileStorageService;
|
||||
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.CookieValue;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* GoodsmngrController Controller Class (front)
|
||||
*
|
||||
* @author
|
||||
* @since 2024-03-19
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2024-03-19 리브가 최초 생성
|
||||
* -
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
|
||||
@Controller
|
||||
@Slf4j
|
||||
@RequestMapping("/mngr/goods/goodsmngr")
|
||||
public class GoodsmngrController {
|
||||
|
||||
/** WebClient 호출을 위한 wrapper */
|
||||
@Autowired
|
||||
private SendToResrc sendToResrc;
|
||||
|
||||
/** 공통 메시지 처리를 위한 메시지 객체 */
|
||||
@Autowired
|
||||
private GconeMessageSource gconeMessageSource;
|
||||
|
||||
/** 파일 업로드 */
|
||||
@Autowired
|
||||
private FileStorageService filestore;
|
||||
|
||||
@Autowired
|
||||
private WnbtWebClientResponseHandler responseHandler;
|
||||
|
||||
/**
|
||||
* 상품 목록 조회 폼
|
||||
* @param vo
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectGoodsListForm")
|
||||
public String selectGoodsListForm(GoodsmngrVO vo,
|
||||
ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setUpperCtgryId("1");
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOGoodsListForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
return "mngr/goods/goodsmngr/GoodsListRForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 목록 조회 리스트
|
||||
* @param vo
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectGoodsList")
|
||||
public String selectGoodsList(GoodsmngrVO vo,
|
||||
ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOGoodsList", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/goods/goodsmngr/GoodsListR";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 카테고리별 상품 목록 조회 폼
|
||||
* @param vo
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectCtgryGoodsListForm")
|
||||
public String selectCtgryGoodsListForm(GoodsmngrVO vo,
|
||||
ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setUpperCtgryId("1");
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOGoodsListForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
return "mngr/goods/goodsmngr/CtgryGoodsListRForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 카테고리별 상품 목록 조회 리스트
|
||||
* @param vo
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectCtgryGoodsList")
|
||||
public String selectCtgryGoodsList(GoodsmngrVO vo,
|
||||
ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOCtgryGoodsList", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/goods/goodsmngr/CtgryGoodsListR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 카테고리별 상품 목록 순서 수정
|
||||
* @param vo
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateCtgryGoodsList")
|
||||
public ResponseEntity<WnbtResponse> updateCtgryGoodsList(@RequestBody GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/updateBOCtgryGoodsList", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 등록 폼 조회
|
||||
* @param vo
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectGoodsRegistForm")
|
||||
public String selectGoodsRegistForm(GoodsmngrVO vo,
|
||||
ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
vo.setUpperCtgryId("1");
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOGoodsListForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/goods/goodsmngr/GoodsC";
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 등록
|
||||
* @param vo
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/insertGoodsInfo", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> insertGoodsInfo(GoodsmngrVO vo, HttpServletRequest request, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
//파일 업로드 관련 START
|
||||
List<HashMap<String, Object>> ulpladFileMap = new ArrayList<HashMap<String, Object>>();
|
||||
|
||||
request.setAttribute("shopCd", vo.getSopmalCd());
|
||||
request.setAttribute("pathGubun","GDIG"); //이미지구분코드 - 상품
|
||||
|
||||
try {
|
||||
ulpladFileMap = filestore.fileUpload(request);
|
||||
vo.setFileInfo(ulpladFileMap);
|
||||
} catch (WnbtRestException wre){
|
||||
throw new WnbtRestException("파일 업로드에 실패했습니다."+ wre.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
//파일 업로드 관련 END
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/insertBOGoods", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 삭제
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/deleteGoods", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> deleteGoods(GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/deleteBOGoods", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 상세 폼
|
||||
* @param vo
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectGoodsDtlForm")
|
||||
public String selectGoodsDtlForm( GoodsmngrVO vo,
|
||||
ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOGoodsDtl", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/goods/goodsmngr/GoodsDtlU";
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 수정(카테고리)
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateGoodsDtlCtgryLink", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateGoodsDtlCtgryLink(HttpServletRequest request, GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
if(request.getAttribute("LoggingClientIp") != null) {
|
||||
vo.setIp(request.getAttribute("LoggingClientIp").toString());
|
||||
}
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/updateBOGoodsDtlCtgryLink", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 수정(기본정보)
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateGoodsDtlBscInfo", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateGoodsDtlBscInfo(HttpServletRequest request, GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
if(request.getAttribute("LoggingClientIp") != null) {
|
||||
vo.setIp(request.getAttribute("LoggingClientIp").toString());
|
||||
}
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/updateBOGoodsDtlBscInfo", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 수정(판매정보)
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateGoodsDtlSelInfo", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateGoodsDtlSelInfo(HttpServletRequest request, GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
if(request.getAttribute("LoggingClientIp") != null) {
|
||||
vo.setIp(request.getAttribute("LoggingClientIp").toString());
|
||||
}
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/updateBOGoodsDtlSelInfo", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 수정(판매정보 - 재고정책 수정에 따른 옵션 수량 변경)
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateGoodsDtlInvntryPolicyInfo", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateGoodsDtlInvntryPolicyInfo(HttpServletRequest request, GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
if(request.getAttribute("LoggingClientIp") != null) {
|
||||
vo.setIp(request.getAttribute("LoggingClientIp").toString());
|
||||
}
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/updateBOGoodsDtlInvntryPolicyInfo", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 수정(구매대상자 제한 팝업)
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateGoodsDtlTrgterLmtt", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateGoodsDtlTrgterLmtt(HttpServletRequest request, GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
if(request.getAttribute("LoggingClientIp") != null) {
|
||||
vo.setIp(request.getAttribute("LoggingClientIp").toString());
|
||||
}
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/updateBOGoodsDtlTrgterLmtt", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 수정(상품옵션정보)
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateGoodsDtlOptnInfo", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateGoodsDtlOptnInfo(HttpServletRequest request, GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
if(request.getAttribute("LoggingClientIp") != null) {
|
||||
vo.setIp(request.getAttribute("LoggingClientIp").toString());
|
||||
}
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/updateBOGoodsDtlOptnInfo", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 수정(상품이미지)
|
||||
* @param vo
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateGoodsDtlImg", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateGoodsDtlImg(GoodsmngrVO vo, HttpServletRequest request, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
//파일 업로드 관련 START
|
||||
List<HashMap<String, Object>> ulpladFileMap = new ArrayList<HashMap<String, Object>>();
|
||||
|
||||
request.setAttribute("shopCd", vo.getSopmalCd());
|
||||
request.setAttribute("pathGubun","GDIG"); //이미지구분코드 - 상품
|
||||
|
||||
if(request.getAttribute("LoggingClientIp") != null) {
|
||||
vo.setIp(request.getAttribute("LoggingClientIp").toString());
|
||||
}
|
||||
|
||||
try {
|
||||
ulpladFileMap = filestore.fileUpload(request);
|
||||
vo.setFileInfo(ulpladFileMap);
|
||||
} catch (WnbtRestException wre){
|
||||
throw new WnbtRestException("파일 업로드에 실패했습니다."+ wre.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
|
||||
//파일 업로드 관련 END
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/updateBOGoodsDtlImg", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 상품 수정(기타정보)
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateGoodsDtlEtcInfo", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateGoodsDtlEtcInfo(HttpServletRequest request, GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
if(request.getAttribute("LoggingClientIp") != null) {
|
||||
vo.setIp(request.getAttribute("LoggingClientIp").toString());
|
||||
}
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/updateBOGoodsDtlEtcInfo", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 상품 수정(관련상품)
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateGoodsDtlRelateGoods", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateGoodsDtlRelateGoods(HttpServletRequest request, GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
|
||||
if(request.getAttribute("LoggingClientIp") != null) {
|
||||
vo.setIp(request.getAttribute("LoggingClientIp").toString());
|
||||
}
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/updateBOGoodsDtlRelateGoods", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 관리자 > 상품 구매대상자 제한 설정 팝업 폼
|
||||
* @param vo
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping("/selectGoodsPurchaseLimttPopupC")
|
||||
public String selectGoodsPurchaseLimttPopupC(GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd,
|
||||
ModelMap model) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectGoodsPurchaseLimttPopupForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/goods/goodsmngr/GoodsPurchaseLimttPopupC";
|
||||
}
|
||||
|
||||
/**
|
||||
* 관리자 > 상품 구매대상자 제한 설정 팝업 상세 폼
|
||||
* @param vo
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping("/selectGoodsPurchaseLimttPopupR")
|
||||
public String selectGoodsPurchaseLimttPopupR(GoodsmngrVO vo,
|
||||
ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectGoodsPurchaseLimttPopupFormR", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/goods/goodsmngr/GoodsPurchaseLimttPopupR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 검색 팝업 폼
|
||||
* @param vo
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectGoodsSrchPopupForm")
|
||||
public String selectGoodsSrchPopupForm(GoodsmngrVO vo,
|
||||
ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOGoodsListForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
model.addAttribute("paramVO", vo);
|
||||
|
||||
return "mngr/goods/goodsmngr/GoodsSrchPopupForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 검색 팝업 리스트
|
||||
* @param vo
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectGoodsSrchPopupList")
|
||||
public String selectGoodsSrchPopupList(GoodsmngrVO vo,
|
||||
ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOGoodsList", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/goods/goodsmngr/GoodsSrchPopupListR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 재고 확인 팝업
|
||||
* @param vo
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectGoodsInvntryPopup")
|
||||
public String selectGoodsInvntryPopup(GoodsmngrVO vo,
|
||||
ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectGoodsInvntry", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/goods/goodsmngr/GoodsInvntryPopup";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 관리자 변경이력 조회 (수정로그)
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectGoodsLogDtl", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> selectGoodsLogDtl(@RequestBody GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOGoodsLogDtl", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 상품 복사 등록 폼
|
||||
* @param vo
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectGoodsCopyForm")
|
||||
public String selectGoodsCopyForm(GoodsmngrVO vo,
|
||||
ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOGoodsCopyForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/goods/goodsmngr/GoodsCopyC";
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 일괄 업데이트 폼
|
||||
* @param vo
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectBndeUpdtForm")
|
||||
public String selectBndeUpdtForm(GoodsmngrVO vo,
|
||||
ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOBndeUpdtForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/goods/goodsmngr/BndeUpdtU";
|
||||
}
|
||||
|
||||
/**
|
||||
* 상품 일괄 업데이트
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateBndeUpdt", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateBndeUpdt(GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/updateBOBndeUpdt", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.goodsmngr.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class CategoryLinkVO extends AbstractVO {
|
||||
|
||||
/** 카테고리연결상품고유번호 */
|
||||
private long ctgryGoodsEsntlNb;
|
||||
/** 상품고유번호 */
|
||||
private long goodsInnb;
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
/** 카테고리ID */
|
||||
private long ctgryId;
|
||||
/** 대표카테고리여부 */
|
||||
private String reprsntCtgryAt;
|
||||
/** 상품순서 */
|
||||
private long goodsOrdr;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.goodsmngr.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class GoodsAdditionVO extends AbstractVO {
|
||||
|
||||
/** 상품추가정보 고유번호 */
|
||||
private long goodsAditInfoInnb;
|
||||
/** 상품고유번호 */
|
||||
private long goodsInnb;
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
/** 추가정보제목 */
|
||||
private String infoSj;
|
||||
/** 추가정보내용 */
|
||||
private String infoCn;
|
||||
/** 사용여부 */
|
||||
private String useAt;
|
||||
/** 노출시작일시 */
|
||||
private Date expsrBgnDt;
|
||||
/** 노출종료일시 */
|
||||
private Date expsrEndDt;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.goodsmngr.vo;
|
||||
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class GoodsIconVO extends AbstractVO {
|
||||
|
||||
/** 상품아이콘 고유번호*/
|
||||
private long goodsIconInnb;
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
/** 상품고유번호*/
|
||||
private long goodsInnb;
|
||||
/** 아이콘코드*/
|
||||
private String iconCd;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.goodsmngr.vo;
|
||||
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class GoodsImageVO extends AbstractVO {
|
||||
|
||||
/** 상품이미지 고유번호 */
|
||||
private long goodsImgInnb;
|
||||
/** 상품고유번호 */
|
||||
private long goodsInnb;
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
/** 이미지종류 */
|
||||
private String imgKnd;
|
||||
/** 컷번호 */
|
||||
private long cutNb;
|
||||
/** 이미지경로 */
|
||||
private String img;
|
||||
/** 삭제 대상 이미지 고유번호 */
|
||||
private long delGoodsImgInnb;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.goodsmngr.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class GoodsOptionVO extends AbstractVO {
|
||||
|
||||
/** 상품옵션 고유번호 */
|
||||
private Integer goodsOptnInnb;
|
||||
/** 옵션 유형 */
|
||||
private String optnTy;
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
/** 상품고유번호 */
|
||||
private long goodsInnb;
|
||||
/** 상품옵션그룹번호 */
|
||||
private Integer optnGroupNb;
|
||||
/** 옵션명 1 */
|
||||
private String optnNm1;
|
||||
/** 옵션명 2 */
|
||||
private String optnNm2;
|
||||
/** 옵션명 3 */
|
||||
private String optnNm3;
|
||||
/** 옵션명 4 */
|
||||
private String optnNm4;
|
||||
/** 옵션값 1 */
|
||||
private String optnVal1;
|
||||
/** 옵션값 2 */
|
||||
private String optnVal2;
|
||||
/** 옵션값 3 */
|
||||
private String optnVal3;
|
||||
/** 옵션값 4 */
|
||||
private String optnVal4;
|
||||
/** 옵션코드 1 */
|
||||
private String optnCd1;
|
||||
/** 옵션코드 2 */
|
||||
private String optnCd2;
|
||||
/** 옵션코드 3 */
|
||||
private String optnCd3;
|
||||
/** 옵션코드 4 */
|
||||
private String optnCd4;
|
||||
/** 옵션정보 */
|
||||
private String optnInfo;
|
||||
/** 재고수량 */
|
||||
private String invntryQy;
|
||||
/** 판매재고수량 */
|
||||
private String usefulInvntryQy;
|
||||
/** 소비자가 */
|
||||
private Integer cnsmrpric;
|
||||
/** 판매가 */
|
||||
private Integer slepric;
|
||||
/**마일리정책코드*/
|
||||
private String mlgPolicyCd;
|
||||
/** 마일리지적립구분코드 */
|
||||
private String mlgAccmlCd;
|
||||
/** 마일리지 적립금액 */
|
||||
private Integer mlgAccmlAmt;
|
||||
/** 마일리지 유효월수*/
|
||||
private Integer mlgValidMtCnt;
|
||||
/** 옵션관계번호 */
|
||||
private String optnRelateNb;
|
||||
/** 추가구성옵션 > 옵션관계여부 */
|
||||
private String optnRelateAt;
|
||||
/** 옵션노출여부 */
|
||||
private String optnExpsrAt;
|
||||
/** 기준구분여부 */
|
||||
private String stdrDvAt;
|
||||
/** 재고품절시 노출여부*/
|
||||
private String invntrySldoutExpsrAt;
|
||||
/** 옵션순서*/
|
||||
private Integer optnOrdr;
|
||||
/** 옵션필수여부 */
|
||||
private char optnEssntlAt;
|
||||
/*복수할인여부*/
|
||||
private String compnbDscntAt;
|
||||
/*구간할인여부*/
|
||||
private String sctnDscntAt;
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.goodsmngr.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class GoodsRelateVO extends AbstractVO {
|
||||
|
||||
/** 관련상품 고유번호 */
|
||||
private long relateGoodsInnb;
|
||||
/** 상품 고유번호 */
|
||||
private long goodsInnb;
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
/** 관련 판매상품 고유번호 */
|
||||
private String relateSleGoodsInnb;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.goodsmngr.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class GoodsTrgterLmttVO extends AbstractVO {
|
||||
|
||||
/** 구매대상자제한 고유번호 */
|
||||
private long goodsTrgterLmttInnb;
|
||||
/** 상품고유번호 */
|
||||
private long goodsInnb;
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
/** 구매대상자제한 구분코드 */
|
||||
private String goodsTrgterDvCd;
|
||||
/** 회원등급 고유번호 */
|
||||
private long mbrGradInnb;
|
||||
/** 가격대체문구사용여부 */
|
||||
private String pricRplcWordsUseAt;
|
||||
/** 가격대체문구 */
|
||||
private String pricRplcWords;
|
||||
/** 가격대체문구링크URL */
|
||||
private String pricRplcLink;
|
||||
/** 가격대체문구링크 구분코드*/
|
||||
private String pricRplcLinkDvCd;
|
||||
/** 가격대체문구링크 연결창구분코드 */
|
||||
private String pricRplcLinkBrwsrDvCd;
|
||||
/** 버튼대체문구사용여부 */
|
||||
private String buttonRplcWordsUseAt;
|
||||
/** 버튼대체문구 */
|
||||
private String buttonRplcWords;
|
||||
/** 버튼대체문구링크URL */
|
||||
private String buttonRplcLink;
|
||||
/** 버튼대체문구링크 구분코드*/
|
||||
private String buttonRplcLinkDvCd;
|
||||
/** 버튼대체문구링크 연결창구분코드 */
|
||||
private String buttonRplcLinkBrwsrDvCd;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,523 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.goodsmngr.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class GoodsmngrVO extends AbstractVO {
|
||||
|
||||
/*************************************
|
||||
* 상품 GOODS START
|
||||
* **********************************/
|
||||
/** 상품고유번호 */
|
||||
private String goodsInnb;
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
/** 배송그룹 고유번호 */
|
||||
private String dlvyGroupInnb;
|
||||
/** 공용정보 고유번호 */
|
||||
private String cmnuseInfoInnb;
|
||||
/** 버전번호 */
|
||||
private long verNb;
|
||||
/** 사업자 고유번호 */
|
||||
private long bsnmInnb;
|
||||
/** 상품종류 */
|
||||
private String goodsKndCd;
|
||||
/** 상품코드 */
|
||||
private String goodsCd;
|
||||
/** 대표상품코드 */
|
||||
private String reprsntGoodsCd;
|
||||
/** 상품명 */
|
||||
@NotBlank(message = "상품명")
|
||||
private String goodsNm;
|
||||
/** 입점상품명 */
|
||||
private String tentMarktGoodsNm;
|
||||
/** 부가세 */
|
||||
private String taxAt;
|
||||
/** 상품상태 */
|
||||
private String goodsSttusCd;
|
||||
|
||||
/*판매중지상태시 사용자 문구변경여부*/
|
||||
private String selStpgeCustomWordsAt;
|
||||
|
||||
/*판매중지상태시 사용자 변경문구*/
|
||||
private String selStpgeCustomWords;
|
||||
|
||||
/** 재고정책 */
|
||||
private String invntryPolicyCd;
|
||||
/** 가용재고제한수량 */
|
||||
private String avlinvLmttQy;
|
||||
/** 짧은설명 */
|
||||
private String srtDc;
|
||||
/** 키워드 */
|
||||
private String kwrd;
|
||||
/** 브랜드 */
|
||||
private String brandCd;
|
||||
/** 상품설명 */
|
||||
private String goodsDc;
|
||||
/** 모바일상품설명 */
|
||||
private String mblGoodsDc;
|
||||
/** 모바일상품설명 PC 동일여부 */
|
||||
private String mblGoodsDcPcSameAt;
|
||||
/** 구매수량 제한구분코드 */
|
||||
private String purchsQyLmttDvCd;
|
||||
/** 구매수량 유형 */
|
||||
private String purchsQyTyCd;
|
||||
/** 최소구매수량 */
|
||||
private String mummPurchsQy;
|
||||
/** 최대구매수량 */
|
||||
private String mxmmPurchsQy;
|
||||
/** 결제수단설정 */
|
||||
private String setleMnSetupCd;
|
||||
/** 상품노출유형 */
|
||||
private String goodsExpsrTyCd;
|
||||
/** 노출구분 */
|
||||
private String expsrDvCd;
|
||||
/** 노출시작일시 */
|
||||
private String expsrBgnDt;
|
||||
/** 노출종료 */
|
||||
private String expsrEndDt;
|
||||
/** 노출설정앞문구 */
|
||||
private String expsrSetupFwords;
|
||||
/** 리뷰그룹번호 */
|
||||
private String rvwGroupNb;
|
||||
/** 리뷰작성가능여부 */
|
||||
private String rvwWritngPosblAt;
|
||||
/** 입점마케팅 네이버 연동여부 */
|
||||
private String naverEpIntrlckAt;
|
||||
/** 입점마케팅 구글 연동여부 */
|
||||
private String googleEpIntrlckAt;
|
||||
/** 입점마케팅 메타 연동여부 */
|
||||
private String metaEpIntrlckAt;
|
||||
/** 입점마케팅 모비온 연동여부 */
|
||||
private String mobionEpIntrlckAt;
|
||||
/** 예약상품배송일자 */
|
||||
private String resveGoodsDlvyDe;
|
||||
/** 예약상품안내문구내용 */
|
||||
private String resveGoodsGuidanceWordsCn;
|
||||
/** 배송안내문구내용 */
|
||||
private String dlvyGuidanceWordsCn;
|
||||
/** 청약철회가능여부 */
|
||||
private String subscrptWthdrawPosblAt;
|
||||
/** 개별취소가능여부 */
|
||||
private String indvdlzCanclPosblAt;
|
||||
/** 개별출고가능여부 */
|
||||
private String indvdlzDlivyPosblAt;
|
||||
/** 개별반품교환가능여부 */
|
||||
private String indvdlzReturnExchngPosblAt;
|
||||
/** 대표설명 */
|
||||
private String reprsntDc;
|
||||
/** 한달리뷰작성가능여부 */
|
||||
private String mtRvwWritngPosblAt;
|
||||
/** 구매대상자제한구분코드 */
|
||||
private String purchsTrgterLmttDvCd;
|
||||
|
||||
/*일반 상품 일괄 업데이트 여부*/
|
||||
/*추가정보 수정여부*/
|
||||
private String goodsAdditionUptAt;
|
||||
/*
|
||||
Y 현재정보 유지하면서 업데이트
|
||||
N 현재 추가정보 삭제 후 업데이트
|
||||
*/
|
||||
private String goodsAdditionDeleteAt;
|
||||
/*판매상태 수정여부*/
|
||||
private String goodsSttusUptAt;
|
||||
/*노출여부 수정여부*/
|
||||
private String ExpsrDvUptAt;
|
||||
/*공용정보 수정여부*/
|
||||
private String cmnuseInfoUptAt;
|
||||
/*배송그룹 수정여부*/
|
||||
private String dlvyGroupUptAt;
|
||||
/*배송 안내 문구 수정여부*/
|
||||
private String dlvyGuidanceWordsCnUptAt;
|
||||
/*입점마케팅 연동여부 수정여부 */
|
||||
private String epIntrlckUptAt;
|
||||
/*전체 상품 선택*/
|
||||
private String goodsChoiceAll;
|
||||
/*선택 상품 고유번호*/
|
||||
private String[] goodsInnbs;
|
||||
|
||||
/*관리자 상품 검색 - 대표카테고리기준*/
|
||||
private String reprsntCtgryAtY;
|
||||
/*관리자 상품 검색 - 카테고리 미등록*/
|
||||
private String ctgryNoRegAtY;
|
||||
|
||||
/*판매수량 초기화여부*/
|
||||
private String usefulInvntryQyInit;
|
||||
|
||||
/*************************************
|
||||
* 상품 GOODS END
|
||||
* **********************************/
|
||||
|
||||
|
||||
/*************************************
|
||||
* 옵션 GOODS_OPTION START
|
||||
* **********************************/
|
||||
/** 입력옵션 */
|
||||
private List<GoodsOptionVO> goodsInputOptionVOList;
|
||||
private List<GoodsOptionVO> delGoodsInputOptionVOList;
|
||||
/** 일반옵션 */
|
||||
private List<GoodsOptionVO> goodsNormalOptionVOList;
|
||||
private List<GoodsOptionVO> delGoodsNormalOptionVOList;
|
||||
/** 추가구성옵션 */
|
||||
private List<GoodsOptionVO> goodsAddedOptionVOList;
|
||||
private List<GoodsOptionVO> delGoodsAddedOptionVOList;
|
||||
/** 재고옵션 */
|
||||
private List<GoodsOptionVO> goodsInvntryOptionVOList;
|
||||
private List<GoodsOptionVO> delGoodsInvntryOptionVOList;
|
||||
/** 상품옵션 고유번호 */
|
||||
private String goodsOptnInnb;
|
||||
/** 옵션 유형 */
|
||||
private String optnTy;
|
||||
// /** 쇼핑몰코드 */
|
||||
// private String sopmalCd;
|
||||
// /** 상품고유번호 */
|
||||
// private long goodsInnb;
|
||||
/** 옵션명 1 */
|
||||
private String optnNm1;
|
||||
/** 옵션명 2 */
|
||||
private String optnNm2;
|
||||
/** 옵션명 3 */
|
||||
private String optnNm3;
|
||||
/** 옵션명 4 */
|
||||
private String optnNm4;
|
||||
/** 옵션값 1 */
|
||||
private String optnVal1;
|
||||
/** 옵션값 2 */
|
||||
private String optnVal2;
|
||||
/** 옵션값 3 */
|
||||
private String optnVal3;
|
||||
/** 옵션값 4 */
|
||||
private String optnVal4;
|
||||
/** 옵션코드 1 */
|
||||
private String optnCd1;
|
||||
/** 옵션코드 2 */
|
||||
private String optnCd2;
|
||||
/** 옵션코드 3 */
|
||||
private String optnCd3;
|
||||
/** 옵션코드 4 */
|
||||
private String optnCd4;
|
||||
/** 옵션정보 */
|
||||
private String optnInfo;
|
||||
/** 재고수량 */
|
||||
private Integer invntryQy;
|
||||
/** 가용재고수량 */
|
||||
private Integer usefulInvntryQy;
|
||||
/** 공급가 */
|
||||
private Integer splpric;
|
||||
/** 소비자가 */
|
||||
private Integer cnsmrpric;
|
||||
/** 판매가 */
|
||||
private Integer slepric;
|
||||
/** 마일리지적립구분코드 */
|
||||
private String mlgAccmlCd;
|
||||
/** 마일리지 적립금액 */
|
||||
private Integer mlgAccmlAmt;
|
||||
/** 옵션관계번호 */
|
||||
private long optnRelateNb;
|
||||
/** 옵션노출여부 */
|
||||
private String optnExpsrAt;
|
||||
/** 기준구분여부 */
|
||||
private String stdrDvAt;
|
||||
/*************************************
|
||||
* 옵션 GOODS_OPTION END
|
||||
* **********************************/
|
||||
|
||||
|
||||
/*************************************
|
||||
* 관련상품(추천상품) GOODS_RELATE START
|
||||
* **********************************/
|
||||
/** 관련상품(추천상품) */
|
||||
private List<GoodsRelateVO> goodsRelateVOList;
|
||||
|
||||
/** 관련상품 고유번호 */
|
||||
private long relateGoodsInnb;
|
||||
// /** 상품 고유번호 */
|
||||
// private long goodsInnb;
|
||||
/** 관련 판매상품 고유번호 */
|
||||
// private long relateSleGoodsInnb;
|
||||
/*************************************
|
||||
* 관련상품 GOODS_RELATE END
|
||||
* **********************************/
|
||||
|
||||
/*************************************
|
||||
* 추가정보 GOODS_ADDITION START
|
||||
* **********************************/
|
||||
|
||||
/** 추가정보 */
|
||||
private List<GoodsAdditionVO> goodsAdditionVOList;
|
||||
private List<GoodsAdditionVO> deleteAdditionVOList;
|
||||
|
||||
/*************************************
|
||||
* 추가정보 GOODS_ADDITION END
|
||||
* **********************************/
|
||||
|
||||
/*************************************
|
||||
* 할인(프로모션) SHOP_GOODS_DSCNT START
|
||||
* **********************************/
|
||||
/** 판매상품할인정책고유번호 */
|
||||
private long sleGoodsDscntInnb;
|
||||
// /** 상품고유번호 */
|
||||
// private long goodsInnb;
|
||||
// /** 쇼핑몰코드 */
|
||||
// private String sopmalCd;
|
||||
/** 할인시작구매수량 */
|
||||
private long dscntBgnPurchsQy;
|
||||
/** 할인종료구매수량 */
|
||||
private long dscntEndPurchsQy;
|
||||
/** 할인구분코드 */
|
||||
private String dscntDvCd;
|
||||
/** 할인금액 */
|
||||
private double dscntAmt;
|
||||
/*************************************
|
||||
* 할인(프로모션) SHOP_GOODS_DSCNT END
|
||||
* **********************************/
|
||||
|
||||
|
||||
/*************************************
|
||||
* 아이콘 GOODS_ICON START
|
||||
* **********************************/
|
||||
/** 아이콘 */
|
||||
private String goodsIconCd;
|
||||
|
||||
/** 상품아이콘 고유번호*/
|
||||
// private long goodsIconInnb;
|
||||
// /** 상품고유번호*/
|
||||
// private long goodsInnb;
|
||||
/** 아이콘코드*/
|
||||
// private String iconCd;
|
||||
/*************************************
|
||||
* 아이콘 GOODS_ICON END
|
||||
* **********************************/
|
||||
|
||||
|
||||
/*************************************
|
||||
* 이미지 GOODS_IMAGE START
|
||||
* **********************************/
|
||||
/** 상품이미지 고유번호 */
|
||||
private long goodsImgInnb;
|
||||
// /** 상품고유번호 */
|
||||
// private long goodsInnb;
|
||||
// /** 쇼핑몰코드 */
|
||||
// private String sopmalCd;
|
||||
/** 이미지종류 */
|
||||
private String imgKnd;
|
||||
/** 컷번호 */
|
||||
private long cutNb;
|
||||
/** 이미지경로 */
|
||||
private String img;
|
||||
|
||||
//이미지정보
|
||||
private List<GoodsImageVO> goodsImageVOList;
|
||||
//삭제할 이미지 정보
|
||||
private List<GoodsImageVO> delGoodsImageVOList;
|
||||
/*************************************
|
||||
* 이미지 GOODS_IMAGE END
|
||||
* **********************************/
|
||||
|
||||
|
||||
/*************************************
|
||||
* 카테고리연결 CATEGORY_LINK START
|
||||
* **********************************/
|
||||
/** 카테고리 */
|
||||
private List<CategoryLinkVO> goodsCategoryLinkVOList;
|
||||
|
||||
/** 카테고리연결상품고유번호 */
|
||||
// private long ctgryGoodsEsntlNb;
|
||||
// /** 상품고유번호 */
|
||||
// private long goodsInnb;
|
||||
/** 카테고리ID */
|
||||
private String ctgryId;
|
||||
/** 대표카테고리여부 */
|
||||
// private String reprsntCtgryAt;
|
||||
/** 상품순서 */
|
||||
// private double goodsOrdr;
|
||||
/*************************************
|
||||
* 카테고리연결 CATEGORY_LINK END
|
||||
* **********************************/
|
||||
|
||||
|
||||
/*************************************
|
||||
* 상품수정로그 FM_GOODS_ADMIN_LOG START
|
||||
* **********************************/
|
||||
/** 상품수정로그 고유번호 */
|
||||
private long goodsUpdtLogInnb;
|
||||
/** 항목명 */
|
||||
private String itmNm;
|
||||
/** 변경전값 */
|
||||
private String chngBfeVal;
|
||||
/** 변경후값 */
|
||||
private String chngAfeVal;
|
||||
/** 수정자 이름 */
|
||||
private String regusrNm;
|
||||
/** 회차 */
|
||||
private double round;
|
||||
/** 아이피 */
|
||||
private String ip;
|
||||
/*************************************
|
||||
* 상품수정로그 FM_GOODS_ADMIN_LOG END
|
||||
* **********************************/
|
||||
|
||||
|
||||
/*************************************
|
||||
* 상품 구매대상자제한 FM_GOODS_TRGTER_LMTT START
|
||||
* **********************************/
|
||||
/** 구매대상자 제한 > 회원 등급별 */
|
||||
private List<GoodsTrgterLmttVO> goodsTrgterLmttMemGradVOList;
|
||||
/** 구매대상자 제한 > 모든등급 */
|
||||
private GoodsTrgterLmttVO goodsTrgterLmttMemAllVOList;
|
||||
/** 구매대상자 제한 > 비회원 */
|
||||
private GoodsTrgterLmttVO goodsTrgterLmttNoneVOList;
|
||||
|
||||
|
||||
// private long goodsTrgterLmttInnb;
|
||||
// private long goodsInnb;
|
||||
// private String sopmalCd;
|
||||
// private String goodsTrgterDvCd;
|
||||
// private long mbrGradInnb;
|
||||
// private String pricRplcWordsUseAt;
|
||||
// private String pricRplcWords;
|
||||
// private String pricRplcLink;
|
||||
// private String pricRplcLinkDvCd;
|
||||
// private String pricRplcLinkBrwsrDvCd;
|
||||
// private String buttonRplcWordsUseAt;
|
||||
// private String buttonRplcWords;
|
||||
// private String buttonRplcLink;
|
||||
// private String buttonRplcLinkDvCd;
|
||||
// private String buttonRplcLinkBrwsrDvCd;
|
||||
/*************************************
|
||||
* 상품 구매대상자제한 FM_GOODS_TRGTER_LMTT END
|
||||
* **********************************/
|
||||
|
||||
|
||||
/** 주문고유번호 */
|
||||
private String ordrInnb;
|
||||
|
||||
/** 회원고유번호 */
|
||||
private String mbrInnb;
|
||||
|
||||
/** 회원구분 */
|
||||
private String mbrDvCd;
|
||||
|
||||
/** 상위 카테고리 */
|
||||
private String upperCtgryId;
|
||||
|
||||
/** 노출 코드 */
|
||||
private String expsrCd;
|
||||
|
||||
/** 가격 구분 */
|
||||
private String pricDv;
|
||||
|
||||
/** 시작 가격 */
|
||||
private String startPric;
|
||||
|
||||
/** 종료 가격 */
|
||||
private String endPric;
|
||||
|
||||
/** 판매 상태 */
|
||||
private String[] goodsDftinfoSttus;
|
||||
|
||||
/** 일자 구분 */
|
||||
private String dateDv;
|
||||
|
||||
/** 시작 일자 */
|
||||
private String startDate;
|
||||
|
||||
/** 종료 일자 */
|
||||
private String endDate;
|
||||
|
||||
/** 재고에따른 판매 */
|
||||
private String goodsDftinfoInvntryPolicy;
|
||||
|
||||
/** 상품옵션 고유번호 배열*/
|
||||
private String[] goodsOptnInnbs;
|
||||
|
||||
/** 상품옵션 구분 */
|
||||
private String goodsOptnDv;
|
||||
|
||||
/** 개수 */
|
||||
private int qy;
|
||||
|
||||
/** 입력옵션 텍스트 */
|
||||
private String inputOptn;
|
||||
|
||||
/** 이벤트 고유번호 배열*/
|
||||
private String[] evtInnbs;
|
||||
|
||||
/** 이벤트 고유번호 */
|
||||
private String evtInnb;
|
||||
|
||||
/** 이벤트 구분 */
|
||||
private String evtDv;
|
||||
|
||||
/** 쿠폰 고유번호 */
|
||||
private String couponInnb;
|
||||
|
||||
/** 다운로드쿠폰 고유번호 */
|
||||
private String dwldCouponInnb;
|
||||
|
||||
/** 쿠폰 혜택구분 */
|
||||
private String bnefDv;
|
||||
|
||||
/** 중복할인여부 */
|
||||
private String dplctDscntAt;
|
||||
|
||||
/** 타쿠폰동시사용여부 */
|
||||
private String otrCouponSmtmUseAt;
|
||||
|
||||
/** 적용쿠폰 */
|
||||
private String usedCoupons;
|
||||
|
||||
|
||||
/** 검색_정렬구분 */
|
||||
private String sortDv;
|
||||
/** 검색 타입 */
|
||||
private String srchType;
|
||||
/** 검색어 */
|
||||
private String srchStr;
|
||||
/** 선택 삭제 */
|
||||
private List<HashMap<String, Object>> delInnbArr;
|
||||
/** 이미지 파일 업로드 */
|
||||
private List<HashMap<String, Object>> fileInfo;
|
||||
|
||||
|
||||
//실시간 수량배너 노출 설정
|
||||
/** 실시간 수량배너 노출여부*/
|
||||
private String rltmQyBannerExpsrAt;
|
||||
|
||||
/** 실시간수량배너 구분*/
|
||||
private String rltmQyBannerDvCd;
|
||||
|
||||
/** 실시간 수량배너 이벤트 실판매 실재고수량*/
|
||||
private Integer rltmRlQy;
|
||||
|
||||
/** 실시간 수량배너 이벤트 실판매 실재고판매수량*/
|
||||
private Integer rltmRlSleQy;
|
||||
|
||||
/** 실시간 수량배너 이벤트 가판매 가재고수량*/
|
||||
private Integer rltmVirtlQy;
|
||||
|
||||
/** 실시간 수량배너 이벤트가판매 가수량차감기준일시 */
|
||||
private String rltmQyDdctStdrDt;
|
||||
|
||||
/** 실시간 수량배너 이벤트가판매 가수량차감시간*/
|
||||
private Integer rltmQyDdctTme;
|
||||
|
||||
/** 실시간 수량배너 이벤트가판매 가수량차감수량*/
|
||||
private Integer rltmDdctQy;
|
||||
|
||||
/** 실시간 수량배너 이벤트가판매 가차감제한수량 */
|
||||
private Integer rltmDdctLimitQy;
|
||||
|
||||
/** 상품 목록을 퍼올릴 영역 */
|
||||
private String selectedArea;
|
||||
|
||||
/*상품 순서 수정 리스트 */
|
||||
private List<String> goodsOrdrList;
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.goodsmngr.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class ShopGoodsBannerVO extends AbstractVO {
|
||||
|
||||
/** 상품고유번호*/
|
||||
private long goodsInnb;
|
||||
/** 배너고유번호*/
|
||||
private long bannerInnb;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.goodsmngr.vo;
|
||||
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class ShopGoodsDscntVO extends AbstractVO {
|
||||
|
||||
/** 판매상품할인정책고유번호 */
|
||||
private long sleGoodsDscntInnb;
|
||||
/** 상품고유번호 */
|
||||
private long goodsInnb;
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
/** 할인시작구매수량 */
|
||||
private long dscntBgnPurchsQy;
|
||||
/** 할인종료구매수량 */
|
||||
private long dscntEndPurchsQy;
|
||||
/** 할인구분코드 */
|
||||
private String dscntDvCd;
|
||||
/** 할인금액 */
|
||||
private double dscntAmt;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,223 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.prsnt.controller;
|
||||
|
||||
import com.wb.domainserver.common.msg.GconeMessageSource;
|
||||
import com.wb.domainserver.domain.mngr.goods.goodsmngr.vo.GoodsmngrVO;
|
||||
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.communicate.ValidateResultConverter;
|
||||
import com.wb.domainserver.util.file.service.FileStorageService;
|
||||
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.CookieValue;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@Controller
|
||||
@RequestMapping("/mngr/goods/prsnt")
|
||||
@Slf4j
|
||||
public class PrsntController {
|
||||
|
||||
/** WebClient 호출을 위한 wrapper */
|
||||
@Autowired
|
||||
private SendToResrc sendToResrc;
|
||||
|
||||
/** 공통 메시지 처리를 위한 메시지 객체 */
|
||||
@Autowired
|
||||
private GconeMessageSource gconeMessageSource;
|
||||
|
||||
/** 파일 업로드 */
|
||||
@Autowired
|
||||
private FileStorageService filestore;
|
||||
|
||||
@Autowired
|
||||
private WnbtWebClientResponseHandler responseHandler;
|
||||
|
||||
/**
|
||||
* 사은품 목록 조회 폼
|
||||
* @param prsntSrchVO
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectPrsntListForm")
|
||||
public String selectPrsntListForm(ModelMap model, GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOPrsntListForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/goods/prsnt/PrsntListRForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 사은품 목록 조회
|
||||
* @param prsntSrchVO
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectPrsntList")
|
||||
public String selectPrsntList(ModelMap model,GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOPrsntList", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
|
||||
return "mngr/goods/prsnt/PrsntListR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 사은품 등록 폼
|
||||
* @param prsntSrchVO
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/insertPrsntForm")
|
||||
public String insertPrsntForm(ModelMap model,GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOGoodsListForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
|
||||
return "mngr/goods/prsnt/PrsntC";
|
||||
}
|
||||
/**
|
||||
* 사은품 등록
|
||||
* @param prsntVO
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/insertPrsnt" , method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> insertPrsnt(@Validated GoodsmngrVO vo, BindingResult bindingResult , HttpServletRequest request, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
if(bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
|
||||
List<HashMap<String, Object>> ulpladFileMap = new ArrayList<HashMap<String, Object>>();
|
||||
request.setAttribute("shopCd", vo.getSopmalCd());
|
||||
request.setAttribute("pathGubun","GDIG"); //이미지구분코드 - 상품
|
||||
|
||||
try {
|
||||
ulpladFileMap = filestore.fileUpload(request);
|
||||
vo.setFileInfo(ulpladFileMap);
|
||||
} catch (WnbtRestException wre){
|
||||
throw new WnbtRestException("파일 업로드에 실패했습니다."+ wre.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/insertBOPrsnt", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 사은품 상세조회
|
||||
* @param prsntVO
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectPrsntDtlForm")
|
||||
public String selectPrsntDtlForm(ModelMap model,GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/selectBOPrsntDtl", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
|
||||
return "mngr/goods/prsnt/PrsntDtlU";
|
||||
}
|
||||
|
||||
/**
|
||||
* 사은품 수정
|
||||
* @param prsntVO
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/updatePrsntDtl" , method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updatePrsntDtl(@Validated GoodsmngrVO vo, BindingResult bindingResult , HttpServletRequest request, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
if(bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
|
||||
List<HashMap<String, Object>> ulpladFileMap = new ArrayList<HashMap<String, Object>>();
|
||||
request.setAttribute("shopCd", vo.getSopmalCd());
|
||||
request.setAttribute("pathGubun","GDIG"); //이미지구분코드 - 상품
|
||||
|
||||
try {
|
||||
ulpladFileMap = filestore.fileUpload(request);
|
||||
vo.setFileInfo(ulpladFileMap);
|
||||
} catch (WnbtRestException wre){
|
||||
throw new WnbtRestException("파일 업로드에 실패했습니다."+ wre.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/updateBOPrsnt", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 사은품 삭제
|
||||
* @param prsntVO
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/deletePrsnt" , method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> deletePrsnt(GoodsmngrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/goods/goods/deleteBOGoods", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.prsnt.vo;
|
||||
|
||||
public class PrsntSrchVO {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.wb.domainserver.domain.mngr.goods.prsnt.vo;
|
||||
|
||||
public class PrsntVO {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,355 @@
|
||||
package com.wb.domainserver.domain.mngr.login;
|
||||
|
||||
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.store.sopmal.vo.Shop;
|
||||
import com.wb.domainserver.domain.admin.user.mngr.service.BOJobUserService;
|
||||
import com.wb.domainserver.domain.admin.user.mngr.vo.BOJobUserVO;
|
||||
import com.wb.domainserver.domain.gcone.common.service.BOCommonService;
|
||||
import com.wb.domainserver.domain.gcone.login.service.LoginService;
|
||||
import com.wb.domainserver.domain.gcone.login.vo.LoginRequest;
|
||||
import com.wb.domainserver.domain.gcone.login.vo.LoginUser;
|
||||
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.ntcn.mssage.service.BOMssageService;
|
||||
import com.wb.domainserver.realm.RealmContextHolder;
|
||||
import com.wb.domainserver.response.ApiResponse;
|
||||
import com.wb.domainserver.response.WnbtResponse;
|
||||
import com.wb.domainserver.response.WnbtResponseBody;
|
||||
import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
|
||||
import com.wb.domainserver.security.authorization.annotation.Policy;
|
||||
import com.wb.domainserver.security.jwt.service.TokenService;
|
||||
import com.wb.domainserver.util.CookieUtils;
|
||||
import com.wb.domainserver.util.dataaccess.DataMap;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
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.StringUtils;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.util.UriUtils;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@Slf4j
|
||||
@Controller
|
||||
@RequiredArgsConstructor
|
||||
@RequestMapping(value="/mngr")
|
||||
public class MngrLoginController {
|
||||
|
||||
private final LoginService service;
|
||||
private final TokenService tokenService;
|
||||
private final BOMaSopmalService bomaSopmalService;
|
||||
private final BOJobUserService jobUserService;
|
||||
private final BOCommonService commonService;
|
||||
private final BOMbrService mbrService;
|
||||
private final BOMaSopmalService maSopmalService;
|
||||
private final BOMssageService boMssageService;
|
||||
|
||||
|
||||
/**
|
||||
* 사용자 로그인 페이지 진입시 이전 경로 저장 및 로그인 페이지 이동 처리
|
||||
* @return
|
||||
*/
|
||||
@Policy(value = AuthPolicy.PUBLIC)
|
||||
@GetMapping("/login")
|
||||
@ResponseBody
|
||||
public void login(HttpServletRequest request, HttpServletResponse response) throws IOException {
|
||||
|
||||
String realm = RealmContextHolder.getRealm();
|
||||
|
||||
String redirectUri = request.getParameter("redirect_uri");
|
||||
String sopmalCd = RealmContextHolder.getSopmalCdRealm();
|
||||
|
||||
response.sendRedirect("/"+realm+"/login/page/"+realm+"?redirect_uri=%s&sopmalCd=%s".formatted(UriUtils.encode(redirectUri, StandardCharsets.UTF_8), UriUtils.encode(sopmalCd, StandardCharsets.UTF_8)));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 로그인 처리
|
||||
* @return
|
||||
*/
|
||||
@Policy(value = AuthPolicy.PUBLIC)
|
||||
@PostMapping(value = "/login/mngr", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
@ResponseBody
|
||||
public ResponseEntity<WnbtResponse> loginProcess(@RequestBody LoginRequest loginRequest,
|
||||
HttpServletRequest request,
|
||||
HttpServletResponse response
|
||||
) {
|
||||
|
||||
log.debug("loginRequest :: {}", loginRequest);
|
||||
|
||||
//로그인 진행
|
||||
LoginUser loginUser = null;
|
||||
|
||||
String realm = RealmContextHolder.getRealm();
|
||||
|
||||
loginRequest.setSopmalCd(RealmContextHolder.getSopmalCdRealm());
|
||||
|
||||
//접속이력정보 세팅
|
||||
String ip = String.valueOf(request.getAttribute("LoggingClientIp"));
|
||||
loginRequest.setConectIp(ip);
|
||||
//접속브라우저 정보 저장
|
||||
String userAgent = request.getHeader("User-Agent");
|
||||
String browser = "Other";
|
||||
|
||||
log.debug("login userAgent :: {}", userAgent);
|
||||
|
||||
if(userAgent.contains("Trident")) { // IE
|
||||
browser = "ie";
|
||||
} else if(userAgent.contains("Edg")) { // Edge
|
||||
browser = "edge";
|
||||
} else if(userAgent.contains("Whale")) { // Naver Whale
|
||||
browser = "whale";
|
||||
} else if(userAgent.contains("Opera") || userAgent.contains("OPR")) { // Opera
|
||||
browser = "opera";
|
||||
} else if(userAgent.contains("Firefox")) { // Firefox
|
||||
browser = "firefox";
|
||||
} else if(userAgent.contains("Safari") && !userAgent.contains("Chrome")) { // Safari
|
||||
browser = "safari";
|
||||
} else if(userAgent.contains("Chrome")) { // Chrome
|
||||
browser = "chrome";
|
||||
}
|
||||
|
||||
loginRequest.setConectBrwsr(browser);
|
||||
|
||||
loginUser = service.mngrLogin(loginRequest);
|
||||
|
||||
|
||||
log.debug("loginUser :: {}", loginUser);
|
||||
|
||||
service.createLoginToken(loginUser, request, response);
|
||||
|
||||
Map<String, Object> message = new HashMap<>();
|
||||
message.put("result", "success");
|
||||
message.put("redirectUri", loginRequest.getRedirectUri());
|
||||
message.put("env", request.getAttribute("env"));
|
||||
|
||||
return ResponseEntity.ok(WnbtResponse.builder()
|
||||
.resBody(new WnbtResponseBody(message))
|
||||
.build());
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 로그인 페이지 이동
|
||||
* @return
|
||||
*/
|
||||
@GetMapping(value = "/login/page/mngr")
|
||||
@Policy(value = AuthPolicy.PUBLIC)
|
||||
public String loginPage(HttpServletRequest request, ModelMap model) {
|
||||
|
||||
String redirectUri = request.getParameter("redirect_uri");
|
||||
String accessUrl = StringUtils.hasText(request.getParameter("access_url"))? request.getParameter("access_url") : RealmContextHolder.getOriginalHostRealm();
|
||||
String sopmalCd = request.getParameter("sopmalCd");
|
||||
|
||||
|
||||
//쇼핑몰 테마 등 정보 조회
|
||||
Shop shopInfo = bomaSopmalService.selectSopmalInfo(sopmalCd);
|
||||
|
||||
model.addAttribute("redirectUri", redirectUri);
|
||||
model.addAttribute("accessUrl", accessUrl);
|
||||
model.addAttribute("sopmalCd", sopmalCd);
|
||||
model.addAttribute("realm", RealmContextHolder.getRealm().toLowerCase());
|
||||
model.addAttribute("shopInfo", shopInfo);
|
||||
|
||||
//디바이스 타입에 따라 조절
|
||||
return "MO".equals(request.getAttribute("env"))?"login/login-MNGRM":"login/login-MNGR";
|
||||
}
|
||||
|
||||
|
||||
@Policy(value = AuthPolicy.PUBLIC)
|
||||
@RequestMapping("/tokens/refresh")
|
||||
public void refreshToken(HttpServletRequest request, HttpServletResponse response) throws IOException {
|
||||
|
||||
String realm = RealmContextHolder.getRealm().toLowerCase();
|
||||
|
||||
String refreshToken = CookieUtils.getCookieValue("RFT", request);
|
||||
|
||||
log.debug("refreshTokenValue :: {}", refreshToken);
|
||||
|
||||
//리프레쉬 토큰이 없으면 메인으로 이동 처리
|
||||
if(!StringUtils.hasText(refreshToken)){
|
||||
|
||||
//엑세스토큰 삭제
|
||||
CookieUtils.deleteCookie("ACT","/"+realm, request, response);
|
||||
CookieUtils.deleteCookie("token_expire","/"+realm, request, response);
|
||||
|
||||
response.sendRedirect("/"+realm);
|
||||
|
||||
}
|
||||
|
||||
//리프레쉬 토큰 있을 경우(존재한다는 자체가 refresh토큰이 만료된 상태가 아님)
|
||||
service.createRenewLoginToken(request, response);
|
||||
|
||||
String redirectUri = "/"+realm+"/main";
|
||||
//리다이렉트 url 있을 경우 해당 url로 이동
|
||||
if(StringUtils.hasText(request.getParameter("redirect_uri"))){
|
||||
redirectUri = request.getParameter("redirect_uri");
|
||||
|
||||
}
|
||||
response.sendRedirect(redirectUri);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 로그인 2차 인증
|
||||
* @return
|
||||
*/
|
||||
@ResponseBody
|
||||
@Policy(value = AuthPolicy.PUBLIC)
|
||||
@PostMapping(value = "/login/loginCheck", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
public ResponseEntity<?> loginCheck(@RequestBody LoginRequest loginRequest, HttpServletRequest request, HttpServletResponse response) {
|
||||
BOJobUserVO vo = new BOJobUserVO();
|
||||
vo.setMngrId(loginRequest.getUsername());
|
||||
vo.setPassword(loginRequest.getPassword());
|
||||
|
||||
String secretKey = commonService.selectSecretkey();
|
||||
vo.setSecretKey(secretKey);
|
||||
|
||||
//회원정보 조회
|
||||
DataMap result = service.selectBOJobUserCrtfcInfo(loginRequest, vo);
|
||||
|
||||
Map<String, Object> content = new HashMap<>();
|
||||
content.put("result", result);
|
||||
|
||||
if(result != null){
|
||||
String lmttIp = (String) result.get("lmttIp");
|
||||
String mblphonCrtfcAt = (String) result.get("mblphonCrtfcAt");
|
||||
String mngrNm = (String) result.get("mngrNm");
|
||||
String mbtlnb = (String) result.get("mbtlnb");
|
||||
|
||||
String lmttIpAt = "N";
|
||||
// String clientIp = String.valueOf(request.getAttribute("LoggingClientIp"));
|
||||
String clientIp = request.getHeader("X-Forwarded-For");
|
||||
log.debug("clientIp X-Forwarded-For {}", clientIp);
|
||||
|
||||
if (clientIp != null && clientIp.contains(",")) {
|
||||
clientIp = clientIp.split(",")[0].trim();
|
||||
log.debug("clientIp split {}", clientIp);
|
||||
}
|
||||
if (clientIp == null || clientIp.isEmpty()) {
|
||||
clientIp = request.getRemoteAddr();
|
||||
log.debug("clientIp getRemoteAddr: {}", clientIp);
|
||||
}
|
||||
|
||||
log.debug("whitelist Ips {}", lmttIp);
|
||||
if (lmttIp != null && !lmttIp.isEmpty()) {
|
||||
for (String lmttIpOne : lmttIp.split("\\|")) {
|
||||
if(lmttIpOne.trim().equals(clientIp)) {
|
||||
lmttIpAt = "Y";
|
||||
}
|
||||
log.debug("whitelist Ip {}", lmttIpOne);
|
||||
}
|
||||
} else {
|
||||
lmttIpAt = "Y";
|
||||
}
|
||||
content.put("lmttIpAt", lmttIpAt);
|
||||
|
||||
// 2차인증 여부
|
||||
if (mblphonCrtfcAt.equals("Y")) {
|
||||
content.put("mngrNm", mngrNm);
|
||||
content.put("mbtlnb", mbtlnb);
|
||||
}
|
||||
content.put("mblphonCrtfcAt", mblphonCrtfcAt);
|
||||
} else{
|
||||
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
|
||||
}
|
||||
|
||||
return ApiResponse.of(content).ifPresentOrElse(HttpStatus.OK, HttpStatus.NOT_FOUND);
|
||||
}
|
||||
|
||||
/**
|
||||
* 휴대폰 인증번호 생성
|
||||
* @return ResponseEntity<?>
|
||||
*/
|
||||
@ResponseBody
|
||||
@Policy(value = AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value = "/login/insertPhoneAuth", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
public ResponseEntity<?> insertPhoneAuth(@RequestBody LoginRequest loginRequest, HttpServletRequest request, HttpServletResponse response) {
|
||||
BOMbrVO vo = new BOMbrVO();
|
||||
vo.setMbrNm(loginRequest.getUsername());
|
||||
vo.setMbtlnb(loginRequest.getMbtlnb());
|
||||
vo.setSopmalCd(loginRequest.getSopmalCd());
|
||||
|
||||
int random = (int) (Math.random() * 900000) + 100000;
|
||||
vo.setCrtnb(String.format("%06d", random));
|
||||
|
||||
DataMap content = new DataMap();
|
||||
content = mbrService.insertBOPhoneAuth(vo);
|
||||
|
||||
/** 자동발송 데이터 세팅 */
|
||||
Map<String, Object> sopmalInfoMap = new HashMap<>();
|
||||
BOMaSopmalVO sopmalVo = new BOMaSopmalVO();
|
||||
sopmalVo.setSopmalCd(vo.getSopmalCd());
|
||||
sopmalInfoMap = maSopmalService.selectBOSopmalFooterInfo(sopmalVo);
|
||||
DataMap sopmalInfo = (DataMap) sopmalInfoMap.get("sopmalInfo");
|
||||
|
||||
/** 개인 인증 자동발송 */
|
||||
if (content.get("result").equals("success")) {
|
||||
// boolean integrated = sopmalVo.getSopmalCd().equals("IS");
|
||||
DataMap paramMap = new DataMap();
|
||||
|
||||
// 공통 필수입력 항목
|
||||
// if(!integrated) {
|
||||
//쇼핑몰 관리자
|
||||
paramMap.put("formDvCd", "FORM_DV_MBR");
|
||||
paramMap.put("formDtlDvCd", "05");
|
||||
// }else {
|
||||
// //통합몰 관리자, 통합관리자
|
||||
// paramMap.put("messageCn", "관리자/통합관리자 본인확인 인증번호 [{authnum}]");
|
||||
// }
|
||||
paramMap.put("sopmalCd", vo.getSopmalCd());
|
||||
paramMap.put("mbrInnb", vo.getMbrInnb());//비회원 = NULL
|
||||
paramMap.put("recpntNm", vo.getMbrNm());
|
||||
paramMap.put("recptnNb", vo.getMbtlnb());
|
||||
|
||||
// SMS
|
||||
paramMap.put("shopName", sopmalInfo.get("sopmalNm"));
|
||||
paramMap.put("authnum", vo.getCrtnb());
|
||||
|
||||
boMssageService.insertBOAtmcsndng(paramMap);
|
||||
}
|
||||
|
||||
return ResponseEntity.ok(
|
||||
WnbtResponse.builder()
|
||||
.resBody(new WnbtResponseBody(content))
|
||||
.build()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 휴대폰 인증
|
||||
* @return ResponseEntity<?>
|
||||
*/
|
||||
@ResponseBody
|
||||
@Policy(value = AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value = "/login/selectPhoneAuth", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
public ResponseEntity<?> selectPhoneAuth(@RequestBody LoginRequest loginRequest, HttpServletRequest request, HttpServletResponse response) {
|
||||
|
||||
BOMbrVO vo = new BOMbrVO();
|
||||
vo.setSndngInnb(loginRequest.getSndngInnb());
|
||||
vo.setMbtlnb(loginRequest.getMbtlnb());
|
||||
vo.setCrtnb(loginRequest.getCrtnb());
|
||||
|
||||
DataMap content = new DataMap();
|
||||
content = mbrService.selectBOPhoneAuth(vo);
|
||||
|
||||
return ResponseEntity.ok(
|
||||
WnbtResponse.builder()
|
||||
.resBody(new WnbtResponseBody(content))
|
||||
.build()
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,143 @@
|
||||
package com.wb.domainserver.domain.mngr.main.controller;
|
||||
|
||||
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.gcone.main.service.BOMainService;
|
||||
import com.wb.domainserver.realm.RealmContextHolder;
|
||||
import com.wb.domainserver.response.WnbtResponse;
|
||||
import com.wb.domainserver.response.WnbtResponseBody;
|
||||
import com.wb.domainserver.security.authentication.AnonymousUser;
|
||||
import com.wb.domainserver.security.authentication.MemberJwtContextHolder;
|
||||
import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
|
||||
import com.wb.domainserver.security.authorization.annotation.Policy;
|
||||
import com.wb.domainserver.util.dataaccess.DataMap;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
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.util.CollectionUtils;
|
||||
import org.springframework.web.bind.annotation.CookieValue;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import org.springframework.web.util.UriUtils;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Slf4j
|
||||
@Controller
|
||||
@RequestMapping(value="/mngr")
|
||||
public class MngrMainController {
|
||||
|
||||
@Autowired
|
||||
private BOMainService service;
|
||||
@Autowired
|
||||
private BOMaSopmalService maSopmalService;
|
||||
|
||||
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@GetMapping(value="")
|
||||
@ResponseBody
|
||||
public void selectMngrRootInqire(HttpServletRequest request, HttpServletResponse response) throws IOException {
|
||||
|
||||
String realm = RealmContextHolder.getRealm().toLowerCase();
|
||||
String redirectUri = request.getParameter("redirect_uri");
|
||||
String sopmalCd = RealmContextHolder.getSopmalCdRealm();
|
||||
|
||||
response.sendRedirect("/"+realm+"/login/page/"+realm+"?redirect_uri=%s&sopmalCd=%s".formatted(UriUtils.encode(redirectUri, StandardCharsets.UTF_8), UriUtils.encode(sopmalCd, StandardCharsets.UTF_8)));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 관리자 index 화면
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value = "/main")
|
||||
public String selectMngrMainInqire(ModelMap model, HttpServletRequest request) {
|
||||
// 응답 메세지 객체
|
||||
|
||||
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
||||
DataMap vo = new DataMap();
|
||||
|
||||
vo.put("sopmalCd", user.getSopmalCd());
|
||||
Map<String, Object> content = service.selectBOMngrMainInqire(vo);
|
||||
model.addAttribute("resultMap", content);
|
||||
return "mngr/index";
|
||||
}
|
||||
|
||||
/**
|
||||
* 관리자 index 화면 차트1 조회
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectMngrMainChart1Inqire")
|
||||
public ResponseEntity<WnbtResponse> selectMngrMainChart1Inqire() {
|
||||
|
||||
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
||||
DataMap vo = new DataMap();
|
||||
|
||||
vo.put("sopmalCd", user.getSopmalCd());
|
||||
|
||||
// 응답 메세지 객체
|
||||
List<DataMap> content = service.selectBOMngrMainChart1Inqire(vo);
|
||||
return ResponseEntity.ok(
|
||||
WnbtResponse.builder()
|
||||
.resBody(new WnbtResponseBody(content))
|
||||
.build()
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 관리자 index 화면 차트2 조회
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectMngrMainChart2Inqire")
|
||||
public ResponseEntity<WnbtResponse> selectMngrMainChart2Inqire(DataMap vo) {
|
||||
// 응답 메세지 객체
|
||||
List<DataMap> content = service.selectBOMngrMainChart2Inqire(vo);
|
||||
return ResponseEntity.ok(
|
||||
WnbtResponse.builder()
|
||||
.resBody(new WnbtResponseBody(content))
|
||||
.build()
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 쇼핑몰 url 정보 조회
|
||||
* @return map
|
||||
*/
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value = "/getPcUrl")
|
||||
@ResponseBody
|
||||
public ResponseEntity<WnbtResponse> getPcUrl(BOMaSopmalVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
/*쇼핑몰 상세 조회 */
|
||||
List<DataMap> sopmalInfoList = new ArrayList<>();
|
||||
sopmalInfoList = maSopmalService.selectBOSopmalUpdtForm(vo);
|
||||
DataMap sopmalInfo = new DataMap();
|
||||
/*map형태로 추출*/
|
||||
if (!CollectionUtils.isEmpty(sopmalInfoList)) {
|
||||
sopmalInfo = sopmalInfoList.get(0);
|
||||
}
|
||||
|
||||
DataMap content = new DataMap();
|
||||
content.put("sopmalInfo", sopmalInfo);
|
||||
return ResponseEntity.ok(
|
||||
WnbtResponse.builder()
|
||||
.resBody(new WnbtResponseBody(content))
|
||||
.build()
|
||||
);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.wb.domainserver.domain.mngr.main.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigInteger;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class MainVO extends AbstractVO {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 결제 금액 */
|
||||
private BigDecimal setleAmt;
|
||||
/** 환불 금액 */
|
||||
private BigDecimal refundAmt;
|
||||
/** 유입수 */
|
||||
private BigInteger inflowCnt;
|
||||
/** 결제수 */
|
||||
private BigInteger setleCnt;
|
||||
|
||||
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
|
||||
/** 검색조건 일, 주, 월 */
|
||||
private String unitFlag;
|
||||
/** 검색조건 시작일 */
|
||||
private String srchStrtSndngDt;
|
||||
/** 검색조건 종료일 */
|
||||
private String srchEndSndngDt;
|
||||
/** 검색조건 주문환경 코드 */
|
||||
private List<String> srchOrdrEnvrnCds;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
package com.wb.domainserver.domain.mngr.matchmb.controller;
|
||||
|
||||
import com.wb.domainserver.domain.mngr.analytics.vo.AnalyticsErpGoodsSrchVO;
|
||||
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 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.CookieValue;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Controller
|
||||
@RequestMapping(value = "/mngr/matchMember")
|
||||
@Slf4j
|
||||
public class MatchMemberController {
|
||||
|
||||
|
||||
/** WebClient 호출을 위한 wrapper */
|
||||
@Autowired
|
||||
private WnbtWebClientResponseHandler responseHandler;
|
||||
|
||||
@Autowired
|
||||
private SendToResrc sendToResrc;
|
||||
|
||||
/**
|
||||
* 회원 매칭 화면
|
||||
* @return String JSP 경로
|
||||
*/
|
||||
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value ="/view/match-member")
|
||||
public String matchMember (AnalyticsErpGoodsSrchVO vo , ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
log.debug("matchMember()");
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/match/view/match-member", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/match/MatchMember";
|
||||
}
|
||||
|
||||
/**
|
||||
* ERP 세트상품 리스트
|
||||
* @return String JSP 경로
|
||||
*/
|
||||
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/select/match-member", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> selectMatchMember(@RequestBody Map<String,Object> jsonData){
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/match/select/match-member", jsonData),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.wb.domainserver.domain.mngr.matchmb.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class MatchMemberVO extends AbstractVO {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String sopmalCd;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,276 @@
|
||||
package com.wb.domainserver.domain.mngr.mbr.controller;
|
||||
|
||||
import com.wb.domainserver.common.msg.GconeMessageSource;
|
||||
import com.wb.domainserver.domain.mngr.mbr.vo.*;
|
||||
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.*;
|
||||
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.CookieValue;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 회원 Controller
|
||||
*
|
||||
* @author 김혜인
|
||||
* @since 2024-01-15
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification debugrmation) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2024-01-15 김혜인 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Controller
|
||||
@RequestMapping("/mngr/mbr")
|
||||
@Slf4j
|
||||
public class MngrMbrController {
|
||||
/**
|
||||
* WebClient 호출을 위한 wrapper
|
||||
*/
|
||||
@Autowired
|
||||
private WnbtWebClientResponseHandler responseHandler;
|
||||
/** WebClient 호출을 위한 wrapper */
|
||||
@Autowired
|
||||
private SendToResrc sendToResrc;
|
||||
/** 공통 메시지 처리를 위한 메시지 객체 */
|
||||
@Autowired
|
||||
private GconeMessageSource gconeMessageSource;
|
||||
/**
|
||||
* 회원 목록 검색 폼 조회
|
||||
* @param vo
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value="/selectMbrListInqireForm")
|
||||
public String selectMbrListInqireForm(ModelMap model, MbrSrchVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
//페이징값 가져오기
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO,"/gcone/mbr/mbr/selectBOMbrListInqireForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
return "mngr/mbr/MbrListInqireRForm";
|
||||
}
|
||||
/**
|
||||
* 회원 목록 조회
|
||||
* @param vo
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value= "/selectMbrListInqire" , method = RequestMethod.POST)
|
||||
public String selectMbrListInqire(ModelMap model,MbrSrchVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
//BO 회원 목록조회 API 결과를 Map으로 변환하여 설정
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrListInqire", vo),
|
||||
model,
|
||||
"resultListMap"
|
||||
);
|
||||
model.addAttribute("vo",vo);
|
||||
|
||||
return "mngr/mbr/MbrListInqireR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 리셀러 등록
|
||||
* @param vo
|
||||
* @return ResponseEntity<WnbtResponse>
|
||||
*/
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@PostMapping(value="/updateMbrRslrMvmn")
|
||||
public ResponseEntity<WnbtResponse> updateMbrRslrMvmn (@Validated MbrAppnVO vo, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
if(bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
//BO API 호출 => 리셀러 등록
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/updateBOMbrRslr", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
/**
|
||||
* 회원 탈퇴
|
||||
* @param vo
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@PostMapping(value="/updateMbrSecsnUpdt")
|
||||
public ResponseEntity<WnbtResponse> updateMbrSecsnUpdt (@Validated WithdrawalVO vo,BindingResult bindingResult, HttpServletRequest request, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
//validation 체크
|
||||
if(bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
|
||||
//ip주소 get
|
||||
Map<String,String> requestInfo = Util.getRequestInfo(request);
|
||||
String ip = (String) requestInfo.get("XForwardedFor");
|
||||
|
||||
//쇼핑몰 코드 추가
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
//BO API 호출 => 리셀러 등록
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/updateBOMbrSecsn", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 마일리지 목록 검색 폼
|
||||
* @param mlgSrchVO
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectMlgManagePopupForm")
|
||||
public String selectMlgManagePopupForm(ModelMap model,MlgSrchVO mlgSrchVO, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
//BO 회원 목록조회 API 결과를 Map으로 변환하여 설정
|
||||
model.addAttribute("vo",mlgSrchVO);
|
||||
return "mngr/mbr/MlgManagePopupCForm";
|
||||
}
|
||||
/**
|
||||
* 마일리지 목록 조회
|
||||
* @param mlgSrchVO
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectMlgManagePopup")
|
||||
public String selectMlgManagePopup(ModelMap model,MlgSrchVO mlgSrchVO, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
mlgSrchVO.setSopmalCd(authSopmalCd);
|
||||
//BO 회원 목록조회 API 호출
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO,"/gcone/mbr/mlg/selectBOMlgManagePopupForm", mlgSrchVO),
|
||||
model,
|
||||
"resultListMap"
|
||||
);
|
||||
return "mngr/mbr/MlgManagePopupR";
|
||||
}
|
||||
/**
|
||||
* 회원 팝업 폼
|
||||
* @param vo
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value="/selectMbrSrchPopupRForm")
|
||||
public String selectMbrSrchPopupRForm(ModelMap model, MbrSrchVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
vo.setPopDv("Y");
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO,"/gcone/mbr/mbr/selectBOMbrListInqireForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
return "mngr/mbr/MbrSrchPopupRForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 회원 팝업 리스트 조회
|
||||
* @param vo
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value="/selectMbrSrchPopupRInqire")
|
||||
public String selectMbrSrchPopupRInqire(ModelMap model, MbrSrchVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
//BO 회원 목록조회 API 호출
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO,"/gcone/mbr/mbr/selectBOMbrListInqire", vo),
|
||||
model,
|
||||
"resultListMap"
|
||||
);
|
||||
model.addAttribute("vo",vo);
|
||||
return "mngr/mbr/MbrSrchPopupR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 발송 타겟 회원 조회(검색회원적용)
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value="/selectSndngTargtMbr")
|
||||
public ResponseEntity<WnbtResponse> selectSndngTargtMbr(MbrSrchVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
/*검색어에 해당하는 회원 조회*/
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO,"/gcone/mbr/mbr/selectBOSndngTargtMbr", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 회원 핸드폰번호, 이메일 정보 조회
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value="/selectSndngTargtMbrInfo")
|
||||
public ResponseEntity<WnbtResponse> selectSndngTargtMbrInfo(MbrVO vo){
|
||||
/*검색어에 해당하는 회원 조회*/
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO,"/gcone/mbr/mbr/selectBOSimpleMbrInfo", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 마케팅 대상 팝업 폼
|
||||
* @param vo
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value="/selectMarketingTrgetSrchPopupForm")
|
||||
public String selectMarketingTrgetSrchPopupForm(ModelMap model, MbrSrchVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
vo.setPopDv("Y");
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO,"/gcone/mbr/mbr/selectBOMarketingTrgetSrchPopupForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
model.addAttribute("vo",vo);
|
||||
return "mngr/mbr/MarketingTrgetSrchPopupRForm";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 마케팅 대상 팝업 리스트 조회
|
||||
* @param vo
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value="/selectMarketingTrgetSrchPopupInqire")
|
||||
public ResponseEntity<WnbtResponse> selectMarketingTrgetSrchPopupInqire(MarktMbrSrchVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
/*검색어에 해당하는 회원 조회*/
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMarktTrgetCnt", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
package com.wb.domainserver.domain.mngr.mbr.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class MarktMbrSrchVO extends AbstractVO {
|
||||
private static final long serialVersionUID = 1L;
|
||||
/**등급*/
|
||||
private String srchGrad;
|
||||
/**비회원 포함*/
|
||||
private String nmbr;
|
||||
/**가입일 시작*/
|
||||
private String srchStrtRegistDt;
|
||||
/**가입일 종료*/
|
||||
private String srchEndRegistDt;
|
||||
/**최종 로그인 일시 시작*/
|
||||
private String srchStrtLastLoginDt;
|
||||
/**최종 로그인 일시 종료*/
|
||||
private String srchEndLastLoginDt;
|
||||
/**생년 시작*/
|
||||
private String srchStrtBrthYear;
|
||||
/**생년 종료*/
|
||||
private String srchEndBrthYear;
|
||||
/**생월 시작*/
|
||||
private String srchStrtBrthMonth;
|
||||
/**생월 종료*/
|
||||
private String srchEndBrthMonth;
|
||||
/*마케팅 동의 여부*/
|
||||
private String srchMarktRecptnAgreAt;
|
||||
/**성별*/
|
||||
private String srchSex;
|
||||
/**080 수신 거부*/
|
||||
private String deny;
|
||||
/**블랙리스트*/
|
||||
private String black;
|
||||
/**매장회원*/
|
||||
private String pos;
|
||||
/**기존발송대상 체크*/
|
||||
private String lgqySndngInnbChk;
|
||||
/**대량메세지 발송 번호*/
|
||||
private String lgqySndngInnbInput;
|
||||
/**마일리지 시작*/
|
||||
private String srchStrtMlg;
|
||||
/**마일리지 종료*/
|
||||
private String srchEndMlg;
|
||||
/**장바구니 제품*/
|
||||
private String srchCartGoodsInnbs;
|
||||
/*구매 기준 검색 여부*/
|
||||
private String stdrPurchsAt;
|
||||
/**구매기간 기준 시작*/
|
||||
private String stdrStrtPurchsPd;
|
||||
/**구매기간 기준 종료*/
|
||||
private String stdrEndPurchsPd;
|
||||
/**기준 상품번호*/
|
||||
private String stdrGoodsInnb;
|
||||
/**기준 구매금액 시작*/
|
||||
private String stdrStrtPurchsAmt;
|
||||
/**기준 구매금액 종료*/
|
||||
private String stdrEndPurchsAmt;
|
||||
/**기준 구매건 시작*/
|
||||
private String stdrStrtPurchsCnt;
|
||||
/**기준 구매건 종료*/
|
||||
private String stdrEndPurchsCnt;
|
||||
/**구매기간 비교 시작*/
|
||||
private String cmprStrtPurchsPd;
|
||||
/**구매기간 비교 종료*/
|
||||
private String cmprEndPurchsPd;
|
||||
/**비교 상품번호*/
|
||||
private String cmprGoodsInnb;
|
||||
/**비교 구매금액 시작*/
|
||||
private String cmprStrtPurchsAmt;
|
||||
/**비교 구매금액 종료*/
|
||||
private String cmprEndPurchsAmt;
|
||||
/**비교 구매건 시작*/
|
||||
private String cmprStrtPurchsCnt;
|
||||
/**비교 구매건 종료*/
|
||||
private String cmprEndPurchsCnt;
|
||||
|
||||
/**쇼핑몰코드*/
|
||||
private String sopmalCd;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
package com.wb.domainserver.domain.mngr.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;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class MbrAppnVO extends AbstractVO {
|
||||
private static final long serialVersionUID = 1L;
|
||||
/*지정 이력 고유번호*/
|
||||
private String appnLogInnb ;
|
||||
/**
|
||||
* 지정 고유번호
|
||||
*/
|
||||
private String appnInnb;
|
||||
/**
|
||||
* 지정 고유번호 배열
|
||||
*/
|
||||
private List<String> appnInnbArr;
|
||||
/**
|
||||
* 쇼핑몰 코드
|
||||
*/
|
||||
private String sopmalCd;
|
||||
/**
|
||||
* 리셀러 구분
|
||||
*/
|
||||
private String appnDvCd;
|
||||
/**
|
||||
* 식별기준코드
|
||||
*/
|
||||
private String idntfcStdrCd;
|
||||
/**
|
||||
* 식별정보 배열
|
||||
*/
|
||||
private List<String> idntfcInfoArr;
|
||||
/**
|
||||
* 식별정보
|
||||
*/
|
||||
private String idntfcInfo;
|
||||
/**
|
||||
* 회원 구분 코드
|
||||
*/
|
||||
private String mbrDvCd;
|
||||
/*회원 구분 코드 리스트*/
|
||||
private List<String> mbrDvCdArr;
|
||||
/**
|
||||
* 주문번호
|
||||
*/
|
||||
private String ordrInnb;
|
||||
/*메모*/
|
||||
@NotBlank(message = "사유")
|
||||
@Length(min = 1 , max = 1333)
|
||||
private String appnMemo;
|
||||
|
||||
/*출처 구분 코드*/
|
||||
private String originDvCd;
|
||||
}
|
||||
@@ -0,0 +1,181 @@
|
||||
package com.wb.domainserver.domain.mngr.mbr.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class MbrSrchVO extends AbstractVO {
|
||||
private static final long serialVersionUID = 1L;
|
||||
/**검색어 구분*/
|
||||
private String srchKywordDv;
|
||||
|
||||
/**검색어 키워드*/
|
||||
private String srchKyword;
|
||||
|
||||
/*검색어 이름*/
|
||||
private String srchMbrNm;
|
||||
|
||||
/*검색어 아이디*/
|
||||
private String srchKywordID;
|
||||
|
||||
/*검색어 이메일*/
|
||||
private String srchKywordEmail;
|
||||
|
||||
/*검색어 휴대폰번호*/
|
||||
private String srchKywordMb;
|
||||
|
||||
/**정렬 방식*/
|
||||
private String sortDv;
|
||||
|
||||
/**쇼핑몰코드*/
|
||||
private String sopmalCd;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*회원 구분 코드*/
|
||||
private String srchMbrDvCd;
|
||||
|
||||
/*팝업 리스트 구분*/
|
||||
private String popDv;
|
||||
|
||||
/*검색 주체가 email인지 sms인지 구분*/
|
||||
private String actionDv;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// 마케팅 회원 검색
|
||||
|
||||
/** 회원 구분 ( 회원, 비회원, 매장회원 ) */
|
||||
private String srchMbrDv;
|
||||
|
||||
/** 성별 */
|
||||
private String[] srchSex;
|
||||
|
||||
/** 블랙리스트 제외 여부 */
|
||||
private String srchBlackAt;
|
||||
|
||||
/** 생일 */
|
||||
private String srchBrthDe;
|
||||
|
||||
/** 시작 나이 */
|
||||
private String srchBgnAge;
|
||||
|
||||
/** 종료 나이 */
|
||||
private String srchEndAge;
|
||||
|
||||
/** 회원 가입 경로 */
|
||||
private String[] srchJoinPath;
|
||||
|
||||
/** 마케팅 수신 동의 */
|
||||
private String[] srchMarketingAgree;
|
||||
|
||||
/** 가입일 _ 시작 */
|
||||
private String srchStartJoinDate;
|
||||
|
||||
/** 가입일 _ 종료 */
|
||||
private String srchEndJoinDate;
|
||||
|
||||
/** 최종방문일 _ 시작 */
|
||||
private String srchStartLastVisitDate;
|
||||
|
||||
/** 최종방문일 _ 종료 */
|
||||
private String srchEndLastVisitDate;
|
||||
|
||||
/** 주문일 _ 시작 */
|
||||
private String srchStartOrderDate;
|
||||
|
||||
/** 주문일 _ 종료 */
|
||||
private String srchEndOrderDate;
|
||||
|
||||
/** 리뷰 건수 _ 시작 */
|
||||
private String srchBgnReviewCnt;
|
||||
|
||||
/** 리뷰 건수 _ 종료 */
|
||||
private String srchEndReviewCnt;
|
||||
|
||||
/** 장바구니 포함 여부 */
|
||||
private String srchCartIncludeAt;
|
||||
|
||||
/** 장바구니 포함 상품 */
|
||||
private String srchCartGoodsInnbs;
|
||||
|
||||
/** 발송이력 중복 건수 */
|
||||
private String srchSndngLogCnt;
|
||||
|
||||
/** 주문 금액 _ 시작 */
|
||||
private String srchBgnOrderAmt;
|
||||
|
||||
/** 주문 금액 _ 종료 */
|
||||
private String srchEndOrderAmt;
|
||||
|
||||
/** 주문 건수 _ 시작 */
|
||||
private String srchBgnOrderCnt;
|
||||
|
||||
/** 주문 건수 _ 종료 */
|
||||
private String srchEndOrderCnt;
|
||||
|
||||
/** 마일리지 _ 시작 */
|
||||
private String srchBgnMlgAmt;
|
||||
|
||||
/** 마일리지 _ 종료 */
|
||||
private String srchEndMlgAmt;
|
||||
|
||||
/** 구매 이력 여부 */
|
||||
private String srchBuyDtlsAt;
|
||||
|
||||
/** 구매 이력 제품 */
|
||||
private String srchBuyDtlsGoodsInnbs;
|
||||
|
||||
/** 구매 이력 구분 _ 셀렉트박스 */
|
||||
private String srchButDtlsDv;
|
||||
|
||||
|
||||
|
||||
|
||||
/** 재방문없음 여부 */
|
||||
private String srchReVisitAt;
|
||||
|
||||
/** 구매없음 여부 */
|
||||
private String srchBuyAt;
|
||||
|
||||
|
||||
|
||||
/** 쿠폰 발송 유형 코드 */
|
||||
private String couponSndngTyCd;
|
||||
/** 발송이력 중복제외 쿠폰 배열 */
|
||||
private String[] cstInnbArr;
|
||||
/** 상품 배열 */
|
||||
private String[] goodsInnbArr;
|
||||
|
||||
/*마케팅 동의 팝업 읽기모드 여부*/
|
||||
private String readonlyAt;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
package com.wb.domainserver.domain.mngr.mbr.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import com.wb.domainserver.util.dataaccess.DataMap;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class MbrVO extends AbstractVO{
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
/*쇼핑몰코드*/
|
||||
public String sopmalCd;
|
||||
/**발송타겟 회원 정보*/
|
||||
public List<DataMap> mbrInfoArr;
|
||||
/**발송타겟 구분*/
|
||||
public String actionDv;
|
||||
/**회원 고유번호 배열*/
|
||||
public String[] mbrarr;
|
||||
/**회원고유번호*/
|
||||
public String mbrInnb;
|
||||
/**회원 구분 코드*/
|
||||
private String mbrDvCd;
|
||||
/**회원등급 고유번호*/
|
||||
public String mbrGradInnb;
|
||||
/**유입경로번호*/
|
||||
public String inflowCoursNb;
|
||||
/**가입환경코드*/
|
||||
public String sbscrbEnvrnCd;
|
||||
/**회원유형코드*/
|
||||
public String mbrTyCd;
|
||||
/**회원id*/
|
||||
public String mbrid;
|
||||
/**회원비밀번호*/
|
||||
public String mbrPassword;
|
||||
/**비밀번호변경일자*/
|
||||
public String passwordChngDe;
|
||||
/**회원명*/
|
||||
public String mbrNm;
|
||||
/**이메일*/
|
||||
public String email;
|
||||
/**이메일수신여부*/
|
||||
public String emailRecptnAt;
|
||||
/**휴대폰번호*/
|
||||
public String mbtlnb;
|
||||
/**sms수신여부*/
|
||||
public String smsRecptnAt;
|
||||
/**전화번호*/
|
||||
public String telnb;
|
||||
/**우편번호*/
|
||||
public String zip;
|
||||
/**도로명, 지번*/
|
||||
public String adresDv;
|
||||
/**지번주소*/
|
||||
public String lnbAdres;
|
||||
/**도로명주소*/
|
||||
public String rnmAdres;
|
||||
/**상세주소*/
|
||||
public String dtlAdres;
|
||||
/**성별*/
|
||||
public String sexdstn;
|
||||
/**일자는 01로 입력*/
|
||||
public String brthDe;
|
||||
/**상태*/
|
||||
public String sttus;
|
||||
/** 관리자메모 */
|
||||
private String mngrMemo;
|
||||
/** 관리자로그 */
|
||||
private String mngrLog;
|
||||
/** 등록자 IP */
|
||||
private String registIp;
|
||||
/**통합서비스정보제공동의*/
|
||||
public String unitySvcCnsOffrInfo;
|
||||
/**년도*/
|
||||
public String indvdlInfoValidPd;
|
||||
/**광고수신동의변경일시*/
|
||||
public String advrtsRecptnAgreUpdtDt;
|
||||
/**광고수신동의전송일시*/
|
||||
public String advrtsRecptnAgreTrnsmisDt;
|
||||
/**gcone 가입여부*/
|
||||
public String gconeSbscrbAt;
|
||||
|
||||
|
||||
/** 관리자 확인 비밀번호 */
|
||||
private String mngrPassword;
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.wb.domainserver.domain.mngr.mbr.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class MlgSrchVO extends AbstractVO{
|
||||
private static final long serialVersionUID = 1L;
|
||||
/**검색 시작 날짜 */
|
||||
private String srchStrtDt;
|
||||
/**검색 끝 날짜 */
|
||||
private String srchEndDt ;
|
||||
/**지급*/
|
||||
private String srchAdd;
|
||||
/**차감*/
|
||||
private String srchMn;
|
||||
/**회원고유번호*/
|
||||
private String mbrInnb;
|
||||
/**회원분류코드*/
|
||||
private String mbrDvCd;
|
||||
|
||||
/**쇼핑몰코드*/
|
||||
private String sopmalCd;
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
package com.wb.domainserver.domain.mngr.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;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class WithdrawalVO extends AbstractVO {
|
||||
private static final long serialVersionUID = 1L;
|
||||
/**회원 고유번호 배열*/
|
||||
public String[] mbrarr;
|
||||
/**회원고유번호*/
|
||||
public String mbrInnb;
|
||||
/*회원구분코드 배열*/
|
||||
public List<String> mbrDvCdArr;
|
||||
/**회원구분코드*/
|
||||
public String mbrDvCd;
|
||||
/**회원명*/
|
||||
public String mbrNm;
|
||||
/**이메일*/
|
||||
public String email;
|
||||
/**휴대폰번호*/
|
||||
public String mbtlnb;
|
||||
/**전화번호*/
|
||||
public String telnb;
|
||||
/**우편번호*/
|
||||
public String zip;
|
||||
/**도로명, 지번*/
|
||||
public String adresDv;
|
||||
/**도로명주소*/
|
||||
public String rnmAdres;
|
||||
/**상세주소*/
|
||||
public String dtlAdres;
|
||||
/**성별*/
|
||||
public String sexdstn;
|
||||
/**일자는 01로 입력*/
|
||||
public String brthDe;
|
||||
/**탈퇴사유*/
|
||||
@NotBlank(message = "탈퇴 사유")
|
||||
@Length(min = 1 , max = 1333)
|
||||
public String secsnResn;
|
||||
/**등록아이피*/
|
||||
public String registIp;
|
||||
/*쇼핑몰코드*/
|
||||
public String sopmalCd;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,348 @@
|
||||
package com.wb.domainserver.domain.mngr.mngrstr.controller;
|
||||
|
||||
import com.wb.domainserver.common.msg.GconeMessageSource;
|
||||
import com.wb.domainserver.domain.mngr.mbr.vo.MbrVO;
|
||||
import com.wb.domainserver.domain.mngr.mngrstr.vo.MngrStrVO;
|
||||
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.*;
|
||||
import com.wb.domainserver.util.excel.ExcelDownloadUtil;
|
||||
import com.wb.domainserver.util.file.service.FileStorageService;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
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.util.ObjectUtils;
|
||||
import org.springframework.validation.BindingResult;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.CookieValue;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
@Controller
|
||||
@Slf4j
|
||||
@RequestMapping("/mngr/mngrstr")
|
||||
public class MngrStrController {
|
||||
|
||||
/** WebClient 호출을 위한 wrapper */
|
||||
@Autowired
|
||||
private WnbtWebClientResponseHandler responseHandler;
|
||||
|
||||
/** WebClient 호출을 위한 wrapper */
|
||||
@Autowired
|
||||
private SendToResrc sendToResrc;
|
||||
|
||||
@Autowired
|
||||
private KakaoProperties kakaoProperties;
|
||||
|
||||
@Autowired
|
||||
private FileStorageService filestore;
|
||||
|
||||
/** 공통 메시지 처리를 위한 메시지 객체 */
|
||||
@Autowired
|
||||
private GconeMessageSource gconeMessageSource;
|
||||
|
||||
/**
|
||||
* 매장 목록 검색 화면
|
||||
* @param model
|
||||
* @param vo
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectMngrStrListRForm")
|
||||
public String selectStrListRForm(ModelMap model, MngrStrVO vo) {
|
||||
// BO 매장 목록 조회 호출
|
||||
try {
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mngrstr/selectBOMngrStrListInqireForm", vo),
|
||||
model,
|
||||
"resultListMap"
|
||||
);
|
||||
// model.addAttribute("mngrStrVO", vo);
|
||||
} catch (WnbtRestException wre){
|
||||
throw new WnbtRestException(wre.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
|
||||
return "mngr/mngrstr/StoreListRForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 매장 목록 조회
|
||||
* @param model
|
||||
* @param vo
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectMngrStrList")
|
||||
public String selectStrList(ModelMap model, MngrStrVO vo) {
|
||||
// BO 매장 목록 조회 호출
|
||||
try {
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mngrstr/selectBOMngrStrListInqire", vo),
|
||||
model,
|
||||
"resultListMap"
|
||||
);
|
||||
model.addAttribute("mngrStrVO", vo);
|
||||
} catch (WnbtRestException wre){
|
||||
throw new WnbtRestException(wre.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
|
||||
return "mngr/mngrstr/StoreListR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 매장 목록 - 엑셀 다운로드
|
||||
* @param vo
|
||||
* @param response
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectMngrStrListExcelDwld")
|
||||
public void selectMngrStrListExcelDwld(MngrStrVO vo, HttpServletResponse response) {
|
||||
//10000건까지 엑셀 출력
|
||||
vo.setPageIndex(1);
|
||||
vo.setPageUnit(10000);
|
||||
|
||||
Map<String,Object> resultMap = responseHandler.handleResponseAsMap(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mngrstr/selectBOMngrStrListInqire", vo)
|
||||
);
|
||||
|
||||
List<Map<String, Object>> resultMapList = new ArrayList<>();
|
||||
if(resultMap != null) {
|
||||
resultMapList = (List<Map<String, Object>>) resultMap.get("boCtrlMap");
|
||||
}
|
||||
|
||||
List<Map<String, Object>> dataList = new ArrayList<>();
|
||||
//엑셀 다운로드 다운로드 시간
|
||||
Date date = new Date();
|
||||
SimpleDateFormat excelFormat = new SimpleDateFormat("yyyyMMddHHmmss");
|
||||
String str = excelFormat.format(date);
|
||||
//엑셀 항목에 출력될 내용 설정
|
||||
if(resultMapList != null && !resultMapList.isEmpty()) {
|
||||
for (int i = 0; i < resultMapList.size(); i++) {
|
||||
Map<String, Object> row = resultMapList.get(i);
|
||||
HashMap<String, Object> dataMap = new HashMap<>();
|
||||
|
||||
int caculateSize = calculateSize(resultMapList.size(), i);
|
||||
String manageCpr = getSafeString(row, "manageCpr");
|
||||
String reprsntBrand = getSafeString(row, "reprsntBrand");
|
||||
String tentSttus = row.get("tentSttus") != null ? row.get("tentSttus").toString() : "";
|
||||
String opbizDe = row.get("opbizDe") != null ? row.get("opbizDe").toString() : "";
|
||||
String clstrDe = row.get("clstrDe") != null ? row.get("clstrDe").toString() : "";
|
||||
String posCdDvVal = row.get("posCdDvVal") != null ? row.get("posCdDvVal").toString() : "";
|
||||
String posCdPassivInputVal = row.get("posCdPassivInputVal") != null ? row.get("posCdPassivInputVal").toString() : "";
|
||||
|
||||
dataMap.put("rnum", caculateSize); //번호 역순 출력
|
||||
dataMap.put("manageCpr/reprsntBrand", manageCpr+" / "+reprsntBrand);
|
||||
dataMap.put("trtmntBrand", row.get("trtmntBrand"));
|
||||
dataMap.put("strOperDv", row.get("strOperDv"));
|
||||
dataMap.put("tentSttus", tentSttus +
|
||||
(
|
||||
row.get("tentSttusCd").equals("02")
|
||||
? "(" + opbizDe + ")"
|
||||
: row.get("tentSttusCd").equals("03")
|
||||
? "(" + clstrDe + ")"
|
||||
: ""
|
||||
)
|
||||
);
|
||||
dataMap.put("posCd", posCdDvVal + posCdPassivInputVal);
|
||||
dataMap.put("tentcpnId", row.get("tentcpnId"));
|
||||
dataMap.put("tentcpnNm", row.get("tentcpnNm"));
|
||||
dataList.add(dataMap);
|
||||
}
|
||||
}
|
||||
|
||||
//엑셀 항목별 제목에 출력될 내용 설정
|
||||
LinkedHashMap<String, String> headerMap = new LinkedHashMap<String, String>();
|
||||
headerMap.put("rnum", "번호");
|
||||
headerMap.put("manageCpr/reprsntBrand", "관리법인/대표브랜드");
|
||||
headerMap.put("trtmntBrand", "취급브랜드");
|
||||
headerMap.put("strOperDv", "매장운영구분");
|
||||
headerMap.put("tentSttus", "상태");
|
||||
headerMap.put("posCd", "포스코드");
|
||||
headerMap.put("tentcpnId", "ID");
|
||||
headerMap.put("tentcpnNm", "매장명");
|
||||
|
||||
try {
|
||||
ExcelDownloadUtil.createExcel("mngr_str_list" + str, headerMap, dataList, response);
|
||||
}catch(IOException ioe) {
|
||||
throw new WnbtRestException("엑셀다운로드 중 오류가 발생하였습니다.");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 안전하게 계산 처리 메소드
|
||||
* @param size
|
||||
* @param index
|
||||
* @return
|
||||
*/
|
||||
private int calculateSize(int size, int index) {
|
||||
return size - index;
|
||||
}
|
||||
|
||||
/**
|
||||
* 안전하게 계산 처리 메소드
|
||||
* @param input
|
||||
* @return
|
||||
*/
|
||||
public String getSafeString(Map<String, Object> row, String input) {
|
||||
return row.get(input) != null ? row.get(input).toString() : "";
|
||||
}
|
||||
|
||||
/**
|
||||
* 매장 상세
|
||||
* @param model
|
||||
* @param vo
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectMngrStrDtlU")
|
||||
public String selectStrDtlU(ModelMap model, MngrStrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
// BO 매장 목록 조회 호출
|
||||
try {
|
||||
Map<String, Object> resultMap = responseHandler.handleResponseAsMap(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mngrstr/selectBOMngrStrDtlInqire", vo)
|
||||
);
|
||||
|
||||
String kakaoKey = "";
|
||||
if(resultMap.containsKey("BOMngrStrVO")){
|
||||
Map<String, Object> paramVO = (Map<String, Object>) resultMap.get("BOMngrStrVO");
|
||||
|
||||
if(!ObjectUtils.isEmpty(paramVO.get("sopmalCd"))){
|
||||
kakaoKey = kakaoProperties.getKeyForDomain(paramVO.get("sopmalCd").toString());
|
||||
}
|
||||
}
|
||||
|
||||
model.addAttribute("kakaoKey", kakaoKey);
|
||||
model.addAttribute("resultMap", resultMap);
|
||||
// model.addAttribute("MngrStrVO", vo);
|
||||
} catch (WnbtRestException wre){
|
||||
throw new WnbtRestException(wre.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
|
||||
return "mngr/mngrstr/StoreDtlU";
|
||||
}
|
||||
|
||||
/**
|
||||
* 매장 아이디 중복 확인
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value="/selectIdDplctCnfirm")
|
||||
public ResponseEntity<WnbtResponse> selectIdDplctCnfirm(MngrStrVO vo, BindingResult bindingResult){
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mngrstr/selectBOIdDplctCnfirm", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 매장 상세 수정
|
||||
* @param vo
|
||||
* @param bindingResult 바인딩 및 정합성 점검결과 객체
|
||||
* @return ResponseEntity<WnbtResponse>
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateMngrStrDtlU", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateMngrStrDtlU(@Validated MngrStrVO vo, HttpServletRequest request, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
if(bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
|
||||
if(vo.getChangePasswordAt().equals("Y")){
|
||||
/*1 비밀번호 변경 시 현재 비밀번호 확인*/
|
||||
Map<String, Object> resultMap = responseHandler.handleResponseAsMap(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mngrstr/selectBOPasswordCnfirm", vo)
|
||||
);
|
||||
if ((int) resultMap.get("result") == 0) {
|
||||
throw new WnbtRestException("관리자 비밀번호가 일치하지 않습니다");
|
||||
}
|
||||
|
||||
/*2 비밀번호 정규 표현식 확인*/
|
||||
String password = vo.getNewPassword();
|
||||
String pwPattern = "^(?=.*[a-zA-Z])(?=.*\\d)(?=.*\\W)?[a-zA-Z\\d\\W]{10,20}$|^(?=.*[a-zA-Z])(?=.*\\W)(?=.*\\d)?[a-zA-Z\\W\\d]{10,20}$|^(?=.*\\d)(?=.*\\W)(?=.*[a-zA-Z])?[a-zA-Z\\d\\W]{10,20}$";
|
||||
Matcher matcher = Pattern.compile(pwPattern).matcher(password);
|
||||
|
||||
if (!matcher.matches()) {
|
||||
throw new WnbtRestException("비밀번호는 영문 대소문자/숫자/특수문자 중 2가지 이상 조합한 10~20자로 입력해주세요.");
|
||||
}
|
||||
|
||||
/*3 변경 비밀번호 확인*/
|
||||
if (!password.equals(vo.getNewPasswordChk())) {
|
||||
throw new WnbtRestException("비밀번호가 일치하지 않습니다.");
|
||||
}
|
||||
}
|
||||
|
||||
List<HashMap<String, Object>> ulpladFileMap = new ArrayList<HashMap<String, Object>>();
|
||||
request.setAttribute("shopCd", vo.getSopmalCd());
|
||||
request.setAttribute("pathGubun", "STOR");
|
||||
ulpladFileMap = filestore.fileUpload(request);
|
||||
vo.setFileInfo(ulpladFileMap);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mngrstr/updateBOMngrStrDtlU", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 포스 회원가입 URL 조회
|
||||
*
|
||||
* @param vo
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectPosJoinMbrUrl")
|
||||
public String selectPosJoinMbrUrl(MbrVO vo, ModelMap model,@CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
model.addAttribute("vo",vo);
|
||||
|
||||
return "mngr/mngrstr/StorePosJoinMbrListRForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 포스 회원가입 URL 조회
|
||||
*
|
||||
* @param vo
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectPosJoinMbrUrlList")
|
||||
public String selectPosJoinMbrUrlList(MbrVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
// BO 회원 목록조회 API 호출
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO,"/gcone/mbr/mbr/selectBOPosJoinMbrUrl", vo)
|
||||
, model
|
||||
,"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/mngrstr/StorePosJoinMbrListR";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
package com.wb.domainserver.domain.mngr.mngrstr.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class MngrStrVO extends AbstractVO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
|
||||
/** 쇼핑몰 고유번호 */
|
||||
private String strInnb;
|
||||
|
||||
/**
|
||||
* 매장/가맹점 검색 조건
|
||||
*/
|
||||
|
||||
/** 관리법인 */
|
||||
/* GC_CODE:MANAGE_CPR */
|
||||
private String manageCpr;
|
||||
|
||||
/** 대표브랜드 */
|
||||
/* GC_CODE:REPRSNT_BRAND */
|
||||
private String reprsntBrand;
|
||||
|
||||
/** 취급브랜드 */
|
||||
/* GC_CODE-BRAND:TRTMNT_BRAND */
|
||||
private List<String> trtmntBrand;
|
||||
|
||||
/** 매장개설구분 */
|
||||
/* GC_CODE-BRAN0D:STR_ESTBL_DV */
|
||||
private List<String> strEstblDvCd;
|
||||
|
||||
/** 매장운영구분 */
|
||||
/* GC_CODE:STR_DV */
|
||||
private List<String> strOperDv;
|
||||
|
||||
/** 상태 */
|
||||
/* GC_CODE:TENT_STTUS */
|
||||
private List<String> tentSttus;
|
||||
|
||||
/** 포스코드-구분값 */
|
||||
/* GC_CODE:POS_HDQRTRS */
|
||||
private String posCdDvVal;
|
||||
|
||||
/** 포스코드-수동입력값 */
|
||||
private String posCdPassivInputVal;
|
||||
|
||||
/** 매장명 */
|
||||
private String tentcpnNm;
|
||||
|
||||
/** 정렬 기준 */
|
||||
private String sortDv;
|
||||
|
||||
|
||||
/**
|
||||
* 상세보기(수정)
|
||||
*/
|
||||
|
||||
/** 사이트 노출여부 */
|
||||
private String siteExpsrAt;
|
||||
/** 폐점시 로그인 및 SMS발송 사용여부 */
|
||||
private String awLoginAt;
|
||||
|
||||
/** 아이디 변경여부 */
|
||||
private String changeIdAt;
|
||||
/** 입점사 아이디 */
|
||||
private String tentcpnId;
|
||||
|
||||
/** 비밀번호 변경여부 */
|
||||
private String changePasswordAt;
|
||||
/** 기존 비밀번호 */
|
||||
private String tentcpnPassword;
|
||||
/** 신규 비밀번호 */
|
||||
private String newPassword;
|
||||
/** 신규 비밀번호 확인 */
|
||||
private String newPasswordChk;
|
||||
|
||||
/** 문자 발신번호 */
|
||||
private String chrDsptchNb;
|
||||
|
||||
/** 휴무일 */
|
||||
private String hvofDe;
|
||||
/** 휴무일 추가 */
|
||||
private String hvofDeAdit;
|
||||
|
||||
/** 영업시간 */
|
||||
/* 구분자(|) 영업시간
|
||||
* 구분자(/) 영업시간 추가 */
|
||||
private String bsnTme;
|
||||
|
||||
/** 매장 대표이미지 */
|
||||
private String strReprsntImg;
|
||||
|
||||
/** 매장 상세이미지 */
|
||||
/* 구분자(|) */
|
||||
private String strDtlImg;
|
||||
|
||||
/** 파일 정보 */
|
||||
private List<HashMap<String, Object>> fileInfo;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,292 @@
|
||||
package com.wb.domainserver.domain.mngr.ntcn.atmcsndng.controller;
|
||||
|
||||
import com.wb.domainserver.common.msg.GconeMessageSource;
|
||||
import com.wb.domainserver.domain.admin.ntcn.email.vo.MaEmailSrchVO;
|
||||
import com.wb.domainserver.domain.mngr.ntcn.atmcsndng.vo.AtmcSndngVO;
|
||||
import com.wb.domainserver.domain.mngr.ntcn.mssage.vo.MssageSrchVO;
|
||||
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.communicate.ValidateResultConverter;
|
||||
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.CookieValue;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 자동 발송 관리 Controller
|
||||
*
|
||||
* @author rvg
|
||||
* @version 1.0
|
||||
* @see <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2024-03-04 리브가 최초 생성
|
||||
* 2024-05-01 이대환 내용 수정
|
||||
*
|
||||
* </pre>
|
||||
* @since 2024-03-04
|
||||
*/
|
||||
@Slf4j
|
||||
@Controller
|
||||
@RequestMapping("/mngr/ntcn/atmcsndng")
|
||||
public class AtmcSndngController {
|
||||
|
||||
/** WebClient 호출을 위한 wrapper */
|
||||
@Autowired
|
||||
private WnbtWebClientResponseHandler responseHandler;
|
||||
|
||||
/** WebClient 호출을 위한 wrapper */
|
||||
@Autowired
|
||||
private SendToResrc sendToResrc;
|
||||
|
||||
/** 공통 메시지 처리를 위한 메시지 객체 */
|
||||
@Autowired
|
||||
private GconeMessageSource gconeMessageSource;
|
||||
|
||||
/**
|
||||
* 자동 발송 관리 페이지
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectAtmcSndngManage")
|
||||
public String selectAtmcSndngManage() {
|
||||
|
||||
return "mngr/ntcn/atmcsndng/AtmcSndngManage";
|
||||
}
|
||||
|
||||
/**
|
||||
* 자동 발송 관리 > 자동 발송 관리 폼
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectAtmcSndngManageListInqire")
|
||||
public String selectAtmcSndngManageListInqire(AtmcSndngVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
try {
|
||||
|
||||
Map<String,Object> resultMap = responseHandler.handleResponseAsMap(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/atmcsnd/selectBOAtmcSndngManageListInqire", vo)
|
||||
);
|
||||
|
||||
// model.addAttribute("resultMap", resultMap.get("boCtrlMap"));
|
||||
model.addAttribute("resultListMap", resultMap.get("boCtrlMap"));
|
||||
model.addAttribute("bOAtmcSndngVO",resultMap.get("bOAtmcSndngVO"));
|
||||
|
||||
model.addAttribute("shopAtmcSndntTme", resultMap.get("shopAtmcSndntTme"));
|
||||
|
||||
} catch (WnbtRestException wre){
|
||||
throw new WnbtRestException(wre.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
|
||||
return "mngr/ntcn/atmcsndng/AtmcSndngListR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 자동 발송 관리 페이지 > 자동 발송 관리 - 자동 발송 관리 수정
|
||||
* @param vo
|
||||
* @param bindingResult 바인딩 및 정합성 점검결과 객체
|
||||
* @return ResponseEntity<WnbtResponse>
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/updateAtmcSndngManageUpdt", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateAtmcSndngManageUpdt(@Validated AtmcSndngVO atmcSndngVO, BindingResult bindingResult
|
||||
, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
atmcSndngVO.setSopmalCd(authSopmalCd);
|
||||
|
||||
if(bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/atmcsnd/updateBOAtmcSndngManageUpdt", atmcSndngVO),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 자동 발송 관리 > 메시지 발송 내역 폼
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectMssageAtmcSndngListInqireRForm")
|
||||
public String selectMssageAtmcSndngListInqireRForm() {
|
||||
|
||||
return "mngr/ntcn/atmcsndng/MssageAtmcSndngListRForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 자동 발송 관리 > 메시지 발송 내역 - 리스트 조회
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectMssageAtmcSndngListInqire")
|
||||
public String selectMssageAtmcSndngListInqire(ModelMap model, MssageSrchVO mssageSrchVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
if(mssageSrchVO.getSrchDv() == null) {
|
||||
List<String> srchDvList = new ArrayList<>();
|
||||
srchDvList.add("SMS");
|
||||
srchDvList.add("LMS");
|
||||
mssageSrchVO.setSrchDv(srchDvList);
|
||||
}
|
||||
mssageSrchVO.setSopmalCd(authSopmalCd);
|
||||
|
||||
// BO 이메일 발송 내역 조회 호출
|
||||
try {
|
||||
|
||||
Map<String,Object> resultMap = responseHandler.handleResponseAsMap(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/atmcsnd/selectBOSmsSndngListInqire",mssageSrchVO)
|
||||
);
|
||||
|
||||
|
||||
//BO 이메일 발송내 목록 조회 API 결과를 Map으로 변환하여 설정
|
||||
model.addAttribute("resultListMap", resultMap);
|
||||
model.addAttribute("mssageSrchVO",mssageSrchVO);
|
||||
} catch (WnbtRestException wre){
|
||||
throw new WnbtRestException(wre.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
|
||||
return "mngr/ntcn/atmcsndng/MssageAtmcSndngListR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 자동 발송 관리 > 메시지 발송 내역 - 문자 발송 정보 팝업
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectMssageAtmcSndngDtlPopup")
|
||||
public String selectMssageAtmcSndngDtlPopup(MssageSrchVO mssageSrchVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
mssageSrchVO.setSopmalCd(authSopmalCd);
|
||||
Map<String,Object> resultMap = responseHandler.handleResponseAsMap(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/atmcsnd/selectBOSmsSndngDtlInfo", mssageSrchVO)
|
||||
);
|
||||
|
||||
|
||||
model.addAttribute("resultMap", resultMap);
|
||||
|
||||
return "mngr/ntcn/atmcsndng/MssageAtmcSndngDtlPopupR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 자동 발송 관리 > 이메일 발송 내역 폼
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectEmailAtmcSndngListInqireRForm")
|
||||
public String selectEmailAtmcSndngListInqireRForm(){
|
||||
|
||||
return "mngr/ntcn/atmcsndng/EmailAtmcSndngListRForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 자동 발송 관리 > 이메일 발송 내역 - 리스트 조회
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectEmailAtmcSndngListInqire")
|
||||
public String selectEmailAtmcSndngListInqire(ModelMap model, MaEmailSrchVO maEmailSrchVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
//TODO : 각 쇼핑몰 화면에서 파라미터 가져와야 함
|
||||
maEmailSrchVO.setAtmcAt("Y");
|
||||
maEmailSrchVO.setSrchShop(authSopmalCd);
|
||||
|
||||
// BO 이메일 발송 내역 조회 호출
|
||||
try {
|
||||
|
||||
Map<String,Object> resultMap = responseHandler.handleResponseAsMap(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/email/selectBOMaEmailSndngListInqire", maEmailSrchVO)
|
||||
);
|
||||
|
||||
|
||||
//BO 이메일 발송내 목록 조회 API 결과를 Map으로 변환하여 설정
|
||||
model.addAttribute("resultListMap", resultMap);
|
||||
model.addAttribute("emailSrchVO",maEmailSrchVO);
|
||||
} catch (WnbtRestException wre){
|
||||
throw new WnbtRestException(wre.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
|
||||
return "mngr/ntcn/atmcsndng/EmailAtmcSndngListR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 자동 발송 관리 > 알림톡 발송 내역 폼
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectNtcntalkAtmcSndngListInqireRForm")
|
||||
public String selectNtcntalkAtmcSndngListInqireRForm() {
|
||||
|
||||
return "mngr/ntcn/atmcsndng/NtcntalkAtmcSndngListRForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 자동 발송 관리 > 알림톡 발송 내역 - 리스트 조회
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectNtcntalkAtmcSndngListInqire")
|
||||
public String selectNtcntalkAtmcSndngListInqire(ModelMap model, MssageSrchVO mssageSrchVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
List<String> srchDvList = new ArrayList<>();
|
||||
srchDvList.add("AT");
|
||||
srchDvList.add("AI");
|
||||
mssageSrchVO.setSopmalCd(authSopmalCd);
|
||||
mssageSrchVO.setSrchDv(srchDvList);
|
||||
if(mssageSrchVO.getSrchStrtSndngDt().equals("") && mssageSrchVO.getSrchEndSndngDt().equals("") ) {
|
||||
LocalDate today = LocalDate.now();
|
||||
if(today != null) {
|
||||
LocalDate ago3M = today.minusMonths(3);
|
||||
mssageSrchVO.setSrchDtDv("sndngDt");
|
||||
if(ago3M != null) {
|
||||
mssageSrchVO.setSrchStrtSndngDt(ago3M.toString());
|
||||
mssageSrchVO.setSrchEndSndngDt(today.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// BO 이메일 발송 내역 조회 호출
|
||||
try {
|
||||
|
||||
Map<String,Object> resultMap = responseHandler.handleResponseAsMap(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/atmcsnd/selectBONtcntalkAtmcSndngListInqire", mssageSrchVO)
|
||||
);
|
||||
|
||||
|
||||
//BO 이메일 발송내 목록 조회 API 결과를 Map으로 변환하여 설정
|
||||
model.addAttribute("resultListMap", resultMap);
|
||||
model.addAttribute("mssageSrchVO",mssageSrchVO);
|
||||
} catch (WnbtRestException wre){
|
||||
throw new WnbtRestException(wre.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
|
||||
return "mngr/ntcn/atmcsndng/NtcntalkAtmcSndngListR";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
package com.wb.domainserver.domain.mngr.ntcn.atmcsndng.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class AtmcSndngVO extends AbstractVO {
|
||||
/** 메시지 고유번호 */
|
||||
private String messageInnb;
|
||||
/** 이메일 발송양식 고유번호 */
|
||||
private String emailSndngFormInnb;
|
||||
/** SMS발송양식 고유번호 */
|
||||
private String smsSndngFormInnb;
|
||||
/** 알림톡 발송양식 고유번호 */
|
||||
private String ntcntalkSndngFormInnb;
|
||||
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
/** 양식구분 */
|
||||
private String formDvCd;
|
||||
/** 양식상세구분 */
|
||||
private String formDtlDvCd;
|
||||
|
||||
/** 이메일 사용여부 */
|
||||
private String emailUseAt;
|
||||
/** SMS 사용여부 */
|
||||
private String smsUseAt;
|
||||
/** 알림톡 사용여부 */
|
||||
private String ntcntalkUseAt;
|
||||
|
||||
/** 마케팅 여부 */
|
||||
private String marktAt;
|
||||
|
||||
/** 관리자 구분 */
|
||||
private String mngrDv;
|
||||
/** 노출여부 */
|
||||
private String expsrAt;
|
||||
|
||||
/** 발송기준일자 */
|
||||
private String sndngStdrDe;
|
||||
/** 발송기준시간 */
|
||||
private String sndngStdrTme;
|
||||
|
||||
/** 수집기간 */
|
||||
private String colctPd;
|
||||
/** 충족기준 */
|
||||
private String suffcnStdr;
|
||||
/** 중복발송가능여부 */
|
||||
private String dplctSndngAt;
|
||||
/** 발송일 설명 */
|
||||
private String sndngDc;
|
||||
|
||||
/** 자동발송 정보 목록 */
|
||||
private String atmcSndngList;
|
||||
}
|
||||
@@ -0,0 +1,319 @@
|
||||
package com.wb.domainserver.domain.mngr.ntcn.email.controller;
|
||||
|
||||
import com.wb.domainserver.common.msg.GconeMessageSource;
|
||||
import com.wb.domainserver.domain.admin.ntcn.email.vo.MaEmailSrchVO;
|
||||
import com.wb.domainserver.domain.mngr.mbr.vo.MbrSrchVO;
|
||||
import com.wb.domainserver.domain.mngr.mbr.vo.MbrVO;
|
||||
import com.wb.domainserver.domain.mngr.ntcn.email.vo.EmailVO;
|
||||
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.communicate.ValidateResultConverter;
|
||||
import com.wb.domainserver.util.file.service.FileStorageService;
|
||||
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.CookieValue;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
||||
import org.springframework.web.util.WebUtils;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 발송관리 Controller
|
||||
*
|
||||
* @author rvg
|
||||
* @version 1.0
|
||||
* @see <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2024-02-20 리브가 최초 생성
|
||||
* 2024-04-04 이대환 sndng>email 분리 - 이메일 수동 발송 리스트 조회
|
||||
*
|
||||
* </pre>
|
||||
* @since 2024-02-20
|
||||
*/
|
||||
@Slf4j
|
||||
@Controller
|
||||
@RequestMapping("/mngr/ntcn/email")
|
||||
public class EmailController {
|
||||
|
||||
/** WebClient 호출을 위한 wrapper */
|
||||
@Autowired
|
||||
private WnbtWebClientResponseHandler responseHandler;
|
||||
|
||||
/** WebClient 호출을 위한 wrapper */
|
||||
@Autowired
|
||||
private SendToResrc sendToResrc;
|
||||
|
||||
/** 공통 메시지 처리를 위한 메시지 객체 */
|
||||
@Autowired
|
||||
private GconeMessageSource gconeMessageSource;
|
||||
|
||||
@Autowired
|
||||
private FileStorageService filestore;
|
||||
|
||||
/*****************************************************
|
||||
이메일 발송 관리 START
|
||||
*****************************************************/
|
||||
/**
|
||||
* 이메일 발송 관리 페이지(폼)
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectEmailPassivSndngManage")
|
||||
public String selectEmailPassivSndngManage(){
|
||||
|
||||
return "mngr/ntcn/email/EmailPassivSndngManage";
|
||||
}
|
||||
|
||||
/**
|
||||
* 이메일 발송 관리 > 이메일 수동 발송 폼
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectEmailPassivSndng")
|
||||
public String selectEmailPassivSndng(ModelMap model, MaEmailSrchVO maEmailSrchVO, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
maEmailSrchVO.setAtmcAt("N");
|
||||
maEmailSrchVO.setSrchShop(authSopmalCd);
|
||||
|
||||
try {
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/email/selectBOMaEmailSndngListInqire", maEmailSrchVO),
|
||||
model,
|
||||
"resultListMap"
|
||||
);
|
||||
|
||||
model.addAttribute("emailSrchVO", maEmailSrchVO);
|
||||
} catch (WnbtRestException wre){
|
||||
throw new WnbtRestException(wre.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
|
||||
return "mngr/ntcn/email/EmailPassivSndngC";
|
||||
}
|
||||
|
||||
/**
|
||||
* 이메일 발송 관리 > 이메일 수동 발송 - 최근 이메일 불러오기
|
||||
* @param maEmailSrchVO
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping("/selectEmailSndngDtl")
|
||||
@ResponseBody
|
||||
public Map<String, Object> selectEmailSndngDtl(MaEmailSrchVO maEmailSrchVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
maEmailSrchVO.setSrchShop(authSopmalCd);
|
||||
//BO에서 API 호출(이메일 발송내 목록 조회)
|
||||
// model.addAttribute("resultMapDtl", BoResultMapConverter.convert(new ObjectMapper(), reply.getReply()));
|
||||
|
||||
Map<String,Object> resultMap = responseHandler.handleResponseAsMap(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/email/selectBOMaEmailSndngDtlInfo", maEmailSrchVO)
|
||||
);
|
||||
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 회원 팝업 폼
|
||||
* @param mbrSrchVO
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value="/selectMbrSrchPopupRForm")
|
||||
public String selectMbrSrchPopupRForm(ModelMap model, MbrSrchVO mbrSrchVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
mbrSrchVO.setSopmalCd(authSopmalCd);
|
||||
mbrSrchVO.setPopDv("Y");
|
||||
//페이징값 가져오기
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/mbr/mbr/selectBOMbrListInqireForm", mbrSrchVO),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/ntcn/email/EmailMbrSrchPopupRForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 이메일 이미지 첨부 팝업
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/EmailPassivSndngEditorImage")
|
||||
public String EmailPassivSndngEditorImage(){
|
||||
|
||||
return "mngr/ntcn/email/EmailPassivSndngEditorImage";
|
||||
}
|
||||
|
||||
/**
|
||||
* 이메일 발송 관리 > 이메일 수동 발송 - 이미지 등록
|
||||
* @param vo
|
||||
* @param bindingResult 바인딩 및 정합성 점검결과 객체
|
||||
* @return ResponseEntity<WnbtResponse>
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/insertEmailImage", method = RequestMethod.POST)
|
||||
public ResponseEntity<?> insertEmailImage(HttpServletRequest request, EmailVO vo, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
List<HashMap<String, Object>> ulpladFileMap = new ArrayList<HashMap<String, Object>>();
|
||||
request.setAttribute("shopCd", vo.getSopmalCd());
|
||||
request.setAttribute("pathGubun", "ETCM");
|
||||
|
||||
try {
|
||||
ulpladFileMap = filestore.fileUpload(request);
|
||||
} catch (WnbtRestException wre){
|
||||
throw new WnbtRestException("파일 업로드에 실패했습니다."+ wre.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
|
||||
//파일정보 셋팅
|
||||
MultipartHttpServletRequest mptRequest = WebUtils.getNativeRequest(request, MultipartHttpServletRequest.class);
|
||||
List<MultipartFile> fileList = mptRequest.getFiles("files");
|
||||
List<HashMap<String, String>> fileInfoList = new ArrayList<>();
|
||||
for(int i=0; i<ulpladFileMap.size();i++) {
|
||||
HashMap<String, Object> fileData = ulpladFileMap.get(i);
|
||||
HashMap<String, String> fileInfo = new HashMap<>();
|
||||
fileInfo.put("filePath", fileData.get("filePath").toString());
|
||||
fileInfo.put("fileId", fileData.get("fileId").toString());
|
||||
fileInfo.put("fileName", fileData.get("fileName").toString());
|
||||
fileInfo.put("fileSize", fileData.get("fileSize").toString());
|
||||
try {
|
||||
byte[] bytes = fileList.get(i).getBytes();
|
||||
String base64String = Base64.getEncoder().encodeToString(bytes);
|
||||
fileInfo.put("base64Image", base64String);
|
||||
} catch (IOException e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
|
||||
fileInfoList.add(fileInfo);
|
||||
}
|
||||
|
||||
return ResponseEntity.ok(fileInfoList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 이메일 발송 관리 > 이메일 수동 발송 - 등록
|
||||
* @param vo
|
||||
* @param bindingResult 바인딩 및 정합성 점검결과 객체
|
||||
* @return ResponseEntity<WnbtResponse>
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/insertEmailSndng", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> insertEmailSndng(@Validated EmailVO vo, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
if(bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/email/insertBOEmailSndng", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 이메일 발송 관리 > 이메일 수동 발송 내역 폼
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectEmailPassivSndngListInqireRForm")
|
||||
public String selectEmailPassivSndngListInqireRForm(){
|
||||
|
||||
return "mngr/ntcn/email/EmailPassivSndngListInqireRForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 이메일 발송 관리 > 이메일 수동 발송 내역 > 리스트 조회
|
||||
* @param model
|
||||
* @param maEmailSrchVO
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectEmailPassivSndngListInqire")
|
||||
public String selectEmailPassivSndngListInqire(ModelMap model, MaEmailSrchVO maEmailSrchVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
maEmailSrchVO.setAtmcAt("N");
|
||||
maEmailSrchVO.setSrchShop(authSopmalCd);
|
||||
// BO 이메일 발송 내역 조회 호출
|
||||
try {
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/email/selectBOMaEmailSndngListInqire", maEmailSrchVO),
|
||||
model,
|
||||
"resultListMap"
|
||||
);
|
||||
|
||||
model.addAttribute("emailSrchVO", maEmailSrchVO);
|
||||
} catch (WnbtRestException wre){
|
||||
throw new WnbtRestException(wre.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
|
||||
return "mngr/ntcn/email/EmailPassivSndngListInqireR";
|
||||
}
|
||||
/*****************************************************
|
||||
이메일 발송 관리 END
|
||||
*****************************************************/
|
||||
|
||||
/**
|
||||
* 이메일 발송 팝업 폼
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectEmailSndngPopupForm")
|
||||
public String selectEmailSndngPopupForm(ModelMap model, MaEmailSrchVO maEmailSrchVO, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
maEmailSrchVO.setSrchShop(authSopmalCd);
|
||||
try {
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/admin/ntcn/email/selectBOMaEmailSndngListInqire", maEmailSrchVO),
|
||||
model,
|
||||
"resultListMap"
|
||||
);
|
||||
model.addAttribute("emailSrchVO", maEmailSrchVO);
|
||||
} catch (WnbtRestException wre){
|
||||
throw new WnbtRestException(wre.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
|
||||
return "mngr/ntcn/email/EmailSndngPopupC";
|
||||
}
|
||||
|
||||
/**
|
||||
* 이메일 수신 거부 URL
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/updateMarktRecptnArgeAt")
|
||||
public ResponseEntity<WnbtResponse> updateMarktRecptnArgeAt(MbrVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
vo.setEmailRecptnAt("N");
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/email/updateBoMarktRecptnArgeAt", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.wb.domainserver.domain.mngr.ntcn.email.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class EmailSrchVO extends AbstractVO {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**검색어타입*/
|
||||
public String srchType;
|
||||
/**검색어*/
|
||||
public String srchStr;
|
||||
/**쇼핑몰코드*/
|
||||
private String srchShop;
|
||||
/**자동발송여부*/
|
||||
private String atmcAt;
|
||||
/**검색 시작 발송 날짜 */
|
||||
private String srchStrtSndngDt;
|
||||
/**검색 종료 발송 날짜 */
|
||||
private String srchEndSndngDt ;
|
||||
|
||||
/**이메일 발송로그 고유번호*/
|
||||
private String emailLogInnb ;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
package com.wb.domainserver.domain.mngr.ntcn.email.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.sql.Date;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class EmailVO extends AbstractVO {
|
||||
|
||||
/** 이메일 발송 고유번호 */
|
||||
private Integer emailSndngInnb;
|
||||
|
||||
/**
|
||||
* FM_EMAIL 이메일 발송내역
|
||||
*/
|
||||
/** 쇼핑몰 코드 */
|
||||
private String sopmalCd;
|
||||
/** 발송위치 */
|
||||
private String sndngLc;
|
||||
/** 제목 */
|
||||
@NotEmpty(message = "이메일제목")
|
||||
private String sj;
|
||||
/** 내용 */
|
||||
@NotEmpty(message = "이메일내용")
|
||||
private String cn;
|
||||
/** 보내는사람 EMAIL */
|
||||
@NotEmpty(message = "발신자")
|
||||
private String sndrEmail;
|
||||
/** 수신거부URL */
|
||||
private String recptnRjctUrl;
|
||||
/** 등록자구분 (01:회원, 02:관리자, 03:시스템, 04:기타) */
|
||||
private String regusrDv;
|
||||
/** 이메일 발송양식 고유번호 */
|
||||
private Integer emailSndngFormInnb;
|
||||
|
||||
/**
|
||||
* FM_EMAIL_TO 이메일 대상
|
||||
*/
|
||||
/** 대상순번 */
|
||||
private Integer trgetSnb;
|
||||
/** 회원고유번호 */
|
||||
private Integer mbrInnb;
|
||||
/** 받는사람 EMAIL */
|
||||
private String recpntEmail;
|
||||
/** 받는사람명 */
|
||||
private String recpntNm;
|
||||
/** 상태(REG:등록, BAD:불량, WAIT:대기, SEND:전송, FAIL:실패, OK:성공) */
|
||||
private String sttus;
|
||||
/** 발송일시 */
|
||||
private Date sndngDt;
|
||||
/** 결과코드(1000 또는 101 : 성공, 그 외 API 참조) */
|
||||
private String rsltCd;
|
||||
|
||||
/**
|
||||
* 회원 검색 팝업
|
||||
*/
|
||||
/** 검색 회원 정보 JSON */
|
||||
private String mbrInfo;
|
||||
/** 검색 회원 명 수 */
|
||||
// private String sndngCnt;
|
||||
}
|
||||
@@ -0,0 +1,378 @@
|
||||
package com.wb.domainserver.domain.mngr.ntcn.lgqymssage.controller;
|
||||
|
||||
import com.wb.domainserver.common.msg.GconeMessageSource;
|
||||
import com.wb.domainserver.domain.mngr.ntcn.lgqymssage.vo.LgqyMssageSrchVO;
|
||||
import com.wb.domainserver.domain.mngr.ntcn.lgqymssage.vo.LgqyMssageVO;
|
||||
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.*;
|
||||
import com.wb.domainserver.util.file.service.FileStorageService;
|
||||
import com.wb.domainserver.util.string.StringUtil;
|
||||
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.CookieValue;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* SMS Controller
|
||||
*
|
||||
* @author 이운산
|
||||
* @version 1.0
|
||||
* @see <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2024-04-03 이운산 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
* @since 2024-04-03
|
||||
*/
|
||||
@Slf4j
|
||||
@Controller
|
||||
@RequestMapping("/mngr/ntcn/lgqymssage")
|
||||
public class LgqyMssageController {
|
||||
/**
|
||||
* WebClient 호출을 위한 wrapper
|
||||
*/
|
||||
@Autowired
|
||||
private WnbtWebClientResponseHandler responseHandler;
|
||||
|
||||
/**
|
||||
* WebClient 호출을 위한 wrapper
|
||||
*/
|
||||
@Autowired
|
||||
private SendToResrc sendToResrc;
|
||||
|
||||
/**
|
||||
* 공통 메시지 처리를 위한 메시지 객체
|
||||
*/
|
||||
@Autowired
|
||||
private GconeMessageSource gconeMessageSource;
|
||||
|
||||
@Autowired
|
||||
private FileStorageService filestore;
|
||||
/*****************************************************
|
||||
대량 메시지 발송 관리 START
|
||||
*****************************************************/
|
||||
/**
|
||||
* 대량 메시지 발송 관리 o
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectMssageLgqyPassivSndngManage")
|
||||
public String selectMssageLgqyPassivSndngManage() {
|
||||
|
||||
return "mngr/ntcn/lgqymssage/MssageLgqyPassivSndngManage";
|
||||
}
|
||||
|
||||
/**
|
||||
* 대량 메시지 등록 폼 조회 o
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectMssageLgqySndngRegistForm")
|
||||
public String selectMssageLgqySndngRegistForm(LgqyMssageSrchVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSrchSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/lgqymssage/selectBOMssageLgqySndngRegistForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/ntcn/lgqymssage/MssageLgqySndngRegistC";
|
||||
}
|
||||
|
||||
/**
|
||||
* 대량 메시지 발송 내역 폼 o
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectMssageLgqySndngListInqireRForm")
|
||||
public String selectMssageLgqySndngListInqireRForm(LgqyMssageSrchVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSrchSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/lgqymssage/selectBOMssageLgqySndngListInqireRForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/ntcn/lgqymssage/MssageLgqyPassivSndngListInqireRForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 대량 메시지 발송 내역 리스트 조회 o
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectMssageLgqySndngListInqire")
|
||||
public String selectMssageLgqySndngListInqire(LgqyMssageSrchVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSrchSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/lgqymssage/selectBOMssageLgqySndngListInqire", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/ntcn/lgqymssage/MssageLgqyPassivSndngListInqireR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 대량 메시지 발송 수정 화면 조회 o
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectMssageLgqySndngUpdtInqire")
|
||||
public String selectMssageLgqySndngUpdtInqire(LgqyMssageSrchVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSrchSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/lgqymssage/selectBOMssageLgqySndngUpdtInqire", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/ntcn/lgqymssage/MssageLgqySndngUpdtR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 대량 메시지 발송 통계 조회, 완료 시 통계 팝업
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectMssageLgqySndngStats")
|
||||
public String selectMssageLgqySndngStats(LgqyMssageSrchVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSrchSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/lgqymssage/selectBOMssageLgqySndngStats", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/ntcn/lgqymssage/MssageLgqySndngStatsR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 대량 메시지 발송 출생년도별 클릭 통계
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectMssageLgqySndngClickBirth")
|
||||
public String selectMssageLgqySndngClickBirth(LgqyMssageSrchVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSrchSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/lgqymssage/selectBOMssageLgqySndngClickBirth", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/ntcn/lgqymssage/MssageLgqySndngClickBirthR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 대량 메시지 발송 출생년도별 클릭 통계
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectMssageLgqySndngClickOrdr")
|
||||
public String selectMssageLgqySndngClickOrdr(LgqyMssageSrchVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSrchSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/lgqymssage/selectBOMssageLgqySndngClickOrdr", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/ntcn/lgqymssage/MssageLgqySndngClickOrdrR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 대량 발송 일정 달력
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectMssageLgqySndngReqstCldr")
|
||||
public String selectMssageLgqySndngReqstCldr(LgqyMssageSrchVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSrchSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/lgqymssage/selectBOMssageLgqySndngReqstCldr", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/ntcn/lgqymssage/MssageLgqySndngReqstCldrPopupR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 대량 메시지 발송 날짜 체크
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectMssageLgqySndngReqstDtInqire")
|
||||
public ResponseEntity<WnbtResponse> selectMssageLgqySndngReqstDtInqire(LgqyMssageSrchVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSrchSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/lgqymssage/selectBOMssageLgqySndngReqstDtInqire", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 대량 발송 등록 o
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/insertMssageLgqySndngRegist")
|
||||
public ResponseEntity<WnbtResponse> insertMssageLgqySndngRegist(@Validated LgqyMssageVO vo, BindingResult bindingResult
|
||||
, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
vo.setBrandCd(authSopmalCd);
|
||||
if (bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
|
||||
//입력구분에 따른 대상자 목록 또는 마케팅 대상자 정리
|
||||
vo.setSndngDvCd(vo.getSndngDvCd().replace("select-input-", ""));
|
||||
if ("03".equals(vo.getSndngDvCd())) {
|
||||
vo.setSndngCndParam(null);
|
||||
} else if ("04".equals(vo.getSndngDvCd())) {
|
||||
if (StringUtil.isEmpty(vo.getSndngCndParam())) {
|
||||
throw new WnbtRestException("마케팅 대상이 지정되지 않았습니다. 검색 후 다시 시도해주세요.");
|
||||
}
|
||||
vo.setLgqyMssageToList(null);
|
||||
}
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/lgqymssage/insertBOMssageLgqySndngRegist", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 대량 발송 수정 o
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateMssageLgqySndngUpdt")
|
||||
public ResponseEntity<WnbtResponse> updateMssageLgqySndngUpdt(@Validated LgqyMssageVO vo, BindingResult bindingResult, HttpServletRequest request
|
||||
, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
if (bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
if ("04".equals(vo.getSndngDvCd())) {
|
||||
if (StringUtil.isEmpty(vo.getSndngCndParam())) {
|
||||
throw new WnbtRestException("마케팅 대상이 지정되지 않았습니다. 검색 후 다시 시도해주세요.");
|
||||
}
|
||||
}
|
||||
|
||||
//파일 첨부 등록
|
||||
List<HashMap<String, Object>> ulpladFileMap = new ArrayList<HashMap<String, Object>>();
|
||||
request.setAttribute("pathGubun", "SMSQ");
|
||||
request.setAttribute("shopCd", authSopmalCd);
|
||||
ulpladFileMap = filestore.fileUpload(request);
|
||||
vo.setFileInfo(ulpladFileMap);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/lgqymssage/updateBOMssageLgqySndngUpdt", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 발신 상태 취소 및 활성화 o
|
||||
*/
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value = "/updateMssageLgqySndngSttusUpdt")
|
||||
public ResponseEntity<?> updateBOMssageLgqySndngSttusUpdt(LgqyMssageVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/lgqymssage/updateBOMssageLgqySndngSttusUpdt", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
/*****************************************************
|
||||
대량 메시지 발송 관리 END
|
||||
*****************************************************/
|
||||
|
||||
/*****************************************************
|
||||
정산 START
|
||||
*****************************************************/
|
||||
/**
|
||||
* 정산 조회 폼
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectMssageStlListInqireRForm")
|
||||
public String selectMssageStlListInqireRForm(LgqyMssageVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return "mngr/ntcn/mssage/MssageStlListInqireRForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 정산 목록 내역 조회
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectMssageStlListInqire")
|
||||
public String selectMssageStlListInqire(LgqyMssageVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/mssage/selectBOMssageStlListInqire", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/ntcn/mssage/MssageStlListInqireR";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
package com.wb.domainserver.domain.mngr.ntcn.lgqymssage.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.sql.Date;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class LgqyMssageSrchVO extends AbstractVO {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** SMS대량발송 고유번호 */
|
||||
private Integer srchSmsLgqySndngInnb;
|
||||
|
||||
/**
|
||||
* FM_LGQY_SMS SMS 대량발송내역(메시지 대량발송내역)
|
||||
*/
|
||||
/** 쇼핑몰코드 */
|
||||
private String srchSopmalCd;
|
||||
/** 브랜드코드 */
|
||||
private String srchBrandCd;
|
||||
/** 발송제목 */
|
||||
private String srchSndngSj;
|
||||
/** 발송내용 */
|
||||
private String srchSndngCn;
|
||||
/** 받는사람구분 */
|
||||
private String recpntDv;
|
||||
/** 호출 페이지 사용여부 */
|
||||
private String callPgeUseAt;
|
||||
/** 링크 URL1 */
|
||||
private String linkUrl1;
|
||||
/** 링크 URL2 */
|
||||
private String linkUrl2;
|
||||
/** 링크 URL3 */
|
||||
private String linkUrl3;
|
||||
/** 발송요청일시 */
|
||||
private String srchSndngReqstDt;
|
||||
/** 발송일시 */
|
||||
private Date srchSndngDt;
|
||||
/** 전체건수 */
|
||||
private Integer allCnt;
|
||||
/** 성공건수 */
|
||||
private Integer succesCnt;
|
||||
/** 발송상태 */
|
||||
private String srchSndngSttus;
|
||||
/** 검색 요청 시작일자 */
|
||||
private String srchStrtRegistDt;
|
||||
/** 검색 요청 종료일자 */
|
||||
private String srchEndRegistDt;
|
||||
|
||||
|
||||
/** 요청자명 */
|
||||
// private String 요청자명;
|
||||
|
||||
/**
|
||||
* FM_LGQY_SMS_TO SMS 대량발송 대상(메시지 대량발송 대상)
|
||||
*/
|
||||
/** 대량발송 대상 고유번호 */
|
||||
private Integer lgqySndngTrgetInnb;
|
||||
/** 관리자 고유번호 */
|
||||
private Integer mngrInnb;
|
||||
/** 휴대폰번호 */
|
||||
private String mbtlnb;
|
||||
/** 이름 */
|
||||
private String nm;
|
||||
/** 고객선택 */
|
||||
private String cstmrChoise;
|
||||
/** 선택일시 */
|
||||
private Date choiseDt;
|
||||
/** 정상여부 */
|
||||
private String nrmltAt;
|
||||
/** 메모 */
|
||||
private String memo;
|
||||
/** 치환 단어1 */
|
||||
private String substChr1;
|
||||
/** 치환 단어2 */
|
||||
private String substChr2;
|
||||
/** 치환 단어3 */
|
||||
private String substChr3;
|
||||
/** 치환 단어4 */
|
||||
private String substChr4;
|
||||
/** 치환 단어5 */
|
||||
private String substChr5;
|
||||
/** 링크여부 */
|
||||
private String linkAt;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,141 @@
|
||||
package com.wb.domainserver.domain.mngr.ntcn.lgqymssage.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class LgqyMssageVO extends AbstractVO {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** SMS대량발송 고유번호 */
|
||||
private Integer smsLgqySndngInnb;
|
||||
|
||||
/**
|
||||
* FM_LGQY_SMS SMS 대량발송내역(메시지 대량발송내역)
|
||||
*/
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
/** 브랜드코드 */
|
||||
private String brandCd;
|
||||
/*발송처리상태*/
|
||||
private String sndngProcsDvCd;
|
||||
/**입력구분*/
|
||||
private String sndngDvCd;
|
||||
/** 발송제목 */
|
||||
@NotBlank(message = "발송제목")
|
||||
private String sndngSj;
|
||||
/** 발송내용 */
|
||||
@NotBlank(message = "발송내용")
|
||||
private String sndngCn;
|
||||
/** 발신 번호 */
|
||||
private String recpntDv;
|
||||
/** 호출 페이지 사용여부 */
|
||||
private String callPgeUseAt;
|
||||
/** 링크 URL1 */
|
||||
private String linkUrl1;
|
||||
/** 링크 URL2 */
|
||||
private String linkUrl2;
|
||||
/** 링크 URL3 */
|
||||
private String linkUrl3;
|
||||
/** 발송요청일시 */
|
||||
private String sndngReqstDt;
|
||||
/** 발송일시 */
|
||||
private Date sndngDt;
|
||||
/** 전체건수 */
|
||||
private Integer allCnt;
|
||||
/** 성공건수 */
|
||||
private Integer succesCnt;
|
||||
/** 발송상태 */
|
||||
private String sndngSttus;
|
||||
/** 요청자명 */
|
||||
@NotBlank(message = "요청자명")
|
||||
private String requsrNm;
|
||||
/** 랜딩이미지원본파일명*/
|
||||
private String orginlFilNm;
|
||||
/** 랜딩이미지시스템파일명*/
|
||||
private String sysFilNm;
|
||||
/** 랜딩이미지파일크기*/
|
||||
private Integer filMg;
|
||||
/** 랜딩이미지파일타입*/
|
||||
private String filTy;
|
||||
/** 랜딩이미지파일경로 */
|
||||
private String filCours;
|
||||
/** 랜딩페이지사용여부 */
|
||||
private String landingUseAt;
|
||||
/** 랜딩페이지종류 */
|
||||
private String landingTy;
|
||||
/** 랜딩페이지 바로가기 위치값 */
|
||||
private String landingPosition;
|
||||
|
||||
/** 직접 입력 */
|
||||
private String lgqyMssageToList;
|
||||
|
||||
/** 삭제 대상 */
|
||||
private String deleteToList;
|
||||
|
||||
/** 파일정보 */
|
||||
private List<HashMap<String, Object>> fileInfo;
|
||||
|
||||
/** 랜딩페이지 파일*/
|
||||
private MultipartFile landngFile;
|
||||
|
||||
/** 이미지 첨부파일*/
|
||||
private MultipartFile file;
|
||||
|
||||
/** 랜딩페이지 url 리스트 */
|
||||
private List<String> landingUrl;
|
||||
|
||||
/*발송조건 파라미터*/
|
||||
private String sndngCndParam;
|
||||
|
||||
/*발송조건 쿼리*/
|
||||
private String sndngTrgetQry;
|
||||
/**
|
||||
* FM_LGQY_SMS_TO SMS 대량발송 대상(메시지 대량발송 대상)
|
||||
*/
|
||||
/** 대량발송 대상 고유번호 */
|
||||
private Integer lgqySndngTrgetInnb;
|
||||
/** 관리자 고유번호 */
|
||||
private Integer mngrInnb;
|
||||
/** 휴대폰번호 */
|
||||
private String mbtlnb;
|
||||
/** 이름 */
|
||||
private String nm;
|
||||
/** 고객선택 */
|
||||
private String cstmrChoise;
|
||||
/** 선택일시 */
|
||||
private Date choiseDt;
|
||||
/** 정상여부 */
|
||||
private String nrmltAt;
|
||||
/** 메모 */
|
||||
private String memo;
|
||||
/** 치환 단어1 */
|
||||
private String substChr1;
|
||||
/** 치환 단어2 */
|
||||
private String substChr2;
|
||||
/** 치환 단어3 */
|
||||
private String substChr3;
|
||||
/** 치환 단어4 */
|
||||
private String substChr4;
|
||||
/** 치환 단어5 */
|
||||
private String substChr5;
|
||||
/** 링크여부 */
|
||||
private String linkAt;
|
||||
|
||||
/** 관리자 번호 */
|
||||
private String mngrMbtlnb;
|
||||
|
||||
/** 문자 구분 */
|
||||
private String dv;
|
||||
|
||||
/** 문자 템플릿 코드 */
|
||||
private String templatecode;
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.wb.domainserver.domain.mngr.ntcn.lgqymssage.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 MssageSrchVO extends AbstractVO {
|
||||
private static final long serialVersionUID = 1L;
|
||||
/**검색어타입*/
|
||||
public String srchType;
|
||||
/**검색어*/
|
||||
public String srchStr;
|
||||
/**쇼핑몰코드*/
|
||||
private String sopmalCd;
|
||||
/**검색 시작 발송 날짜 */
|
||||
private String srchStrtSndngDt;
|
||||
/**검색 종료 발송 날짜 */
|
||||
private String srchEndSndngDt ;
|
||||
/**검색 쇼핑몰 코드*/
|
||||
private String srchSopmalCd;
|
||||
/**검색 sms 고유번호 */
|
||||
private String srchSmsInnb ;
|
||||
/**검색 sms 대상 고유번호 */
|
||||
private String srchSmsToInnb;
|
||||
/**검색 sms 수신번호 */
|
||||
private String srchRecptnNb ;
|
||||
/**검색 수신/발신 번호 구분 */
|
||||
private String srchNbDv ;
|
||||
/**검색 조회기간 구분 */
|
||||
private String srchDtDv ;
|
||||
/**검색 발송유형 */
|
||||
private List<String> srchDv;
|
||||
/**검색 현재상태*/
|
||||
private List<String> srchSttus;
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,125 @@
|
||||
package com.wb.domainserver.domain.mngr.ntcn.lgqymssage.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class MssageVO extends AbstractVO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** SMS 고유번호 */
|
||||
private Integer smsInnb;
|
||||
|
||||
/**
|
||||
* FM_SMS SMS 발송내역(메시지 발송내역)
|
||||
*/
|
||||
/** (STO:매장, ADM:관리자, SYS:시스템) */
|
||||
private String regusrDv;
|
||||
/** 매장 고유번호 */
|
||||
private Integer strInnb;
|
||||
/** 입점사명 */
|
||||
private String strNm;
|
||||
/** 매장구분(G:가맹, J:직영, O:유통) */
|
||||
private String strDv;
|
||||
/** 문자상태(REG:등록, WAIT:대기 ,SEND:발송, END:발송완료) */
|
||||
private String chrSttus;
|
||||
/** 예약일시 */
|
||||
private Date resveDt;
|
||||
/** 발송일시 */
|
||||
private Date sndngDt;
|
||||
/** 발송 식별번호 */
|
||||
private Integer sndngIdnb;
|
||||
/** HEAD */
|
||||
private String head;
|
||||
/** 내용 */
|
||||
@NotBlank(message = "내용")
|
||||
private String cn;
|
||||
/** TAIL */
|
||||
private String tail;
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
/** 발송번호 */
|
||||
private String sndngNb;
|
||||
/** (SMS,LMS,MMS) */
|
||||
private String dv;
|
||||
/** 대상자 수 */
|
||||
private Integer trgterCnt;
|
||||
/** 불량 수 */
|
||||
private Integer badnCnt;
|
||||
/** 대기 수 */
|
||||
private Integer waitCnt;
|
||||
/** (미확인+실패+성공) */
|
||||
private Integer trnsmisCnt;
|
||||
/** 실패 수 */
|
||||
private Integer failrCnt;
|
||||
/** (과금 대상) */
|
||||
private Integer succesCnt;
|
||||
/** 정산 식별번호 */
|
||||
private Integer stlIdnb;
|
||||
/** SMS 이름 */
|
||||
private String smsNm;
|
||||
/** 등록자 이름*/
|
||||
private String regusrNm;
|
||||
|
||||
|
||||
/**
|
||||
* FM_SMS_TO SMS 대상(메시지 대상)
|
||||
*/
|
||||
/** 대상 순번 */
|
||||
private Integer trgetSnb;
|
||||
/** 구분 */
|
||||
// private String dv;
|
||||
/** 상태 */
|
||||
private String sttus;
|
||||
/** 발송 식별번호 */
|
||||
// private long sndngIdnb;
|
||||
/** 발송일시 */
|
||||
// private Date sndngDt;
|
||||
/** 결과코드 */
|
||||
private String rsltCd;
|
||||
/** 수신번호 */
|
||||
@NotEmpty(message = "수신번호")
|
||||
private String recptnNb;
|
||||
/** 고객 식별번호 */
|
||||
private Integer cstmrIdnb;
|
||||
/** 고객이름 */
|
||||
private String cstmrNm;
|
||||
/** 치환 단어1 */
|
||||
private String substWrd1;
|
||||
/** 치환 단어2 */
|
||||
private String substWrd2;
|
||||
/** 치환 단어3 */
|
||||
private String substWrd3;
|
||||
/** 치환 단어4 */
|
||||
private String substWrd4;
|
||||
/** 치환 단어5 */
|
||||
private String substWrd5;
|
||||
;
|
||||
/** 메시지 대상자 리스트 */
|
||||
private String recptnTrgtList;
|
||||
|
||||
/**
|
||||
* 회원 목록 -> 메시지 발송
|
||||
*/
|
||||
/** 발송 건수 */
|
||||
private String sndngCnt;
|
||||
/** 회원 정보 */
|
||||
private String mbrInfo;
|
||||
|
||||
/** 파일정보 */
|
||||
private List<HashMap<String, Object>> fileInfo;
|
||||
|
||||
/** 파일 고유번호*/
|
||||
private Integer fSeq;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,496 @@
|
||||
package com.wb.domainserver.domain.mngr.ntcn.mssage.controller;
|
||||
|
||||
import com.wb.domainserver.common.msg.GconeMessageSource;
|
||||
import com.wb.domainserver.domain.mngr.mbr.vo.MbrSrchVO;
|
||||
import com.wb.domainserver.domain.mngr.ntcn.mssage.vo.ItrntMssageFileVO;
|
||||
import com.wb.domainserver.domain.mngr.ntcn.mssage.vo.MssageAlbumVO;
|
||||
import com.wb.domainserver.domain.mngr.ntcn.mssage.vo.MssageSrchVO;
|
||||
import com.wb.domainserver.domain.mngr.ntcn.mssage.vo.MssageVO;
|
||||
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.communicate.ValidateResultConverter;
|
||||
import com.wb.domainserver.util.file.service.FileStorageService;
|
||||
import com.wb.domainserver.util.string.StringUtil;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.ModelMap;
|
||||
import org.springframework.validation.BindingResult;
|
||||
import org.springframework.web.bind.annotation.CookieValue;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* SMS Controller
|
||||
* @author 이운산
|
||||
* @since 2024-04-03
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2024-04-03 이운산 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Slf4j
|
||||
@Controller
|
||||
@RequestMapping("/mngr/ntcn/mssage")
|
||||
public class MssageController {
|
||||
|
||||
/** WebClient 호출을 위한 wrapper */
|
||||
@Autowired
|
||||
private WnbtWebClientResponseHandler responseHandler;
|
||||
|
||||
/** WebClient 호출을 위한 wrapper */
|
||||
@Autowired
|
||||
private SendToResrc sendToResrc;
|
||||
|
||||
/** 공통 메시지 처리를 위한 메시지 객체 */
|
||||
@Autowired
|
||||
private GconeMessageSource gconeMessageSource;
|
||||
|
||||
@Value("${mngrfo.common.fileupload.uploaddirs.goods}")
|
||||
private String uploadFilePath;
|
||||
|
||||
@Value("${mngrfo.common.fileupload.extensions.images}")
|
||||
private String whiteListFileUploadExtensions;
|
||||
|
||||
@Autowired
|
||||
private FileStorageService filestore;
|
||||
|
||||
/*****************************************************
|
||||
수동 메시지 발송 관리 START
|
||||
*****************************************************/
|
||||
|
||||
/**
|
||||
// * 메시지 발송 관리 화면
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectMssagePassivSndngManage")
|
||||
public String selectMessagePassivSndngManage(MssageVO vo, ModelMap model,
|
||||
@CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return "mngr/ntcn/mssage/MssagePassivSndngManage";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 메시지 발송 화면
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectMssagePassivSndng")
|
||||
public String selectMssagePassivSndng(MssageVO vo, ModelMap model,
|
||||
@CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/mssage/selectBOMssagePassivSndng", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
return "mngr/ntcn/mssage/MssagePassivSndngC";
|
||||
}
|
||||
|
||||
/**
|
||||
* 메시지 발송 팝업 화면
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectMssageSndngPopupForm")
|
||||
public String selectMssageSndngPopupForm(MssageVO vo, ModelMap model,
|
||||
@CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/mssage/selectBOMssageSndngPopupForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/ntcn/mssage/MssageSndngPopupC";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 메시지 발송 내역 폼
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectMssagePassivSndngListInqireRForm")
|
||||
public String selectMessagePassivSndngListInqireRForm(MssageSrchVO vo, ModelMap model,
|
||||
@CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/mssage/selectBOSmsSndngDtlsListInqireForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/ntcn/mssage/MssagePassivSndngListInqireRForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 메시지 수동 발송 내역 목록 조회
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectMssagePassivSndngListInqire")
|
||||
public String selectMessagePassivSndngListInqire(MssageSrchVO vo, ModelMap model,
|
||||
@CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
if(vo.getSrchDv() == null) {
|
||||
List<String> srchDvList = new ArrayList<>();
|
||||
srchDvList.add("SMS");
|
||||
srchDvList.add("LMS");
|
||||
vo.setSrchDv(srchDvList);
|
||||
}
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/mssage/selectBOSmsSndngListInqire", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/ntcn/mssage/MssagePassivSndngListInqireR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 메시지 수동 발송 상세 조회
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectMssagePassivSndngDtlPopupInqire")
|
||||
public String selectMssagePassivSndngDtlPopupInqire(MssageSrchVO vo, ModelMap model,
|
||||
@CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/mssage/selectBOSmsSndngDtlInfo", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/ntcn/mssage/MssagePassivSndngDtlPopupR";
|
||||
}
|
||||
|
||||
/**
|
||||
* SMS 수동 발송
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/insertMssageSndng")
|
||||
public ResponseEntity<WnbtResponse> insertMssageSndng(MssageVO vo, BindingResult bindingResult,
|
||||
@CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
if(bindingResult.hasErrors()){
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
|
||||
// 응담객체에 메시지와 함께 반환결과 처리
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/mssage/insertBOMssageSndng", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* SMS 발송 예약 취소
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/mssageSndngCancel")
|
||||
public ResponseEntity<WnbtResponse> mssageSndngCancel(MssageVO vo, BindingResult bindingResult,
|
||||
@CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
log.info("MssageVOAAAAAAAA");
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
if(bindingResult.hasErrors()){
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
|
||||
log.info("MssageVO : {}",vo);
|
||||
|
||||
// 응담객체에 메시지와 함께 반환결과 처리
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/mssage/mssageSndngCancel", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************
|
||||
수동 메시지 발송 관리 END
|
||||
*****************************************************/
|
||||
|
||||
|
||||
/*****************************************************
|
||||
이미지 첨부 START
|
||||
*****************************************************/
|
||||
/**
|
||||
* 메시지 수동 이미지 첨부 팝업
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectMssagePassivSndngImgPopupForm")
|
||||
public String selectMssagePassivSndngImgPopupForm(ItrntMssageFileVO vo, ModelMap model,
|
||||
@CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/mssage/selectBOMssagePassivSndngImgPopupForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/ntcn/mssage/MssagePassivSndngImgPopupC";
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 인트라넷 이미지 등록
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/insertIntrntSndngImg")
|
||||
public ResponseEntity<WnbtResponse> insertIntrntSndngImg(ItrntMssageFileVO vo, ModelMap model,
|
||||
HttpServletRequest request,
|
||||
@CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
String shopCd = vo.getSopmalCd();
|
||||
request.setAttribute("shopCd", shopCd);
|
||||
request.setAttribute("pathGubun", "ETCM");
|
||||
|
||||
//파일 업로드만 실행, 정보는 vo에 담아서 BO에서 처리
|
||||
List<HashMap<String, Object>> ulpladFileMap = new ArrayList<HashMap<String,Object>>();
|
||||
|
||||
try {
|
||||
ulpladFileMap = filestore.fileUpload(request);
|
||||
vo.setFileInfo(ulpladFileMap);
|
||||
} catch (WnbtRestException wre){
|
||||
throw new WnbtRestException("파일 업로드에 실패하였습니다.");
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/mssage/insertBOIntrntSndngImg", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 인트라넷 이미지 삭제
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/deleteIntrntSndngImg")
|
||||
public ResponseEntity<WnbtResponse> deleteIntrntSndngImg(ItrntMssageFileVO vo, ModelMap model,
|
||||
HttpServletRequest request,
|
||||
@CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/mssage/deleteBOIntrntSndngImg", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************
|
||||
자주 쓰는 메시지(FM_SMS_ALBUM) START
|
||||
*****************************************************/
|
||||
|
||||
/**
|
||||
* 자주쓰는 메시지 팝업
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectRegistMssagePopup")
|
||||
public String selectRegistMssagePopup(MssageAlbumVO vo, ModelMap model,
|
||||
@CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/mssage/selectBORegistMssagePopup", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/ntcn/mssage/RegistMssagePopupR";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 자주쓰는 메시지 추가 팝업
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectMssageAditPopupForm")
|
||||
public String selectMssageAditPopupForm(MssageVO vo, ModelMap model,
|
||||
@CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/mssage/selectBOMssageAditPopupForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/ntcn/mssage/MssageAditPopupC";
|
||||
}
|
||||
|
||||
/**
|
||||
* 자주쓰는 메시지 등록
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/insertMssageAditRegist")
|
||||
public ResponseEntity<?> insertMssageAditRegist(MssageAlbumVO vo, ModelMap model,
|
||||
@CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/mssage/insertBOMssageAditRegist", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 자주 쓰는 메시지 수정
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/updateMssageAditUpdt")
|
||||
public ResponseEntity<WnbtResponse> updateMssageAditUpdt(MssageAlbumVO vo, ModelMap model,
|
||||
@CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/mssage/updateBOMssageAditUpdt", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 자주 쓰는 메시지 삭제
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/deleteMssageAdit")
|
||||
public ResponseEntity<WnbtResponse> deleteMssageAdit(MssageAlbumVO vo, ModelMap model,
|
||||
@CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/mssage/deleteBOMssageAdit", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 자주 쓰는 카테고리 삭제
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/deleteMssageAditCtgy")
|
||||
public ResponseEntity<WnbtResponse> deleteMssageAditCtgy(MssageAlbumVO vo, ModelMap model,
|
||||
@CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/mssage/deleteBOMssageAditCtgy", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************
|
||||
자주 쓰는 메시지(FM_SMS_ALBUM) END
|
||||
*****************************************************/
|
||||
|
||||
/*****************************************************
|
||||
공통 START
|
||||
*****************************************************/
|
||||
|
||||
/**
|
||||
* 고객센터/무료수신거부 조회
|
||||
*/
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value = "/selectShopNb")
|
||||
public ResponseEntity<?> selectShopNb(MssageVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
if(StringUtil.isEmpty(vo.getSopmalCd())){
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
}
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/mssage/selectBOShopNb", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 회원 팝업 폼
|
||||
* @param mbrSrchVO
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value="/selectMbrSrchPopupRForm")
|
||||
public String selectMbrSrchPopupRForm(ModelMap model, MbrSrchVO mbrSrchVO,
|
||||
@CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
mbrSrchVO.setSopmalCd(authSopmalCd);
|
||||
|
||||
mbrSrchVO.setPopDv("Y");
|
||||
//페이징값 가져오기
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/mssage/selectBOMbrListInqireForm", mbrSrchVO),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/ntcn/mssage/MssageMbrSrchPopupRForm";
|
||||
}
|
||||
|
||||
/*****************************************************
|
||||
공통 END
|
||||
*****************************************************/
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.wb.domainserver.domain.mngr.ntcn.mssage.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class ItrntMssageFileVO extends AbstractVO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* FM_INTRANET_SMS_FILE 매장 SMS 첨부파일
|
||||
*/
|
||||
|
||||
/** 고유번호 */
|
||||
private Integer fSeq;
|
||||
/** 매장 고유번호 */
|
||||
private Integer providerSeq;
|
||||
/** 파일순번 */
|
||||
private BigDecimal fIdx;
|
||||
/** 원래파일명 */
|
||||
private String fNameOrg;
|
||||
/** 저장파일명 */
|
||||
private String fName;
|
||||
/** 파일용량 */
|
||||
private Integer fSize;
|
||||
/** 넓이 */
|
||||
private Integer fWidth;
|
||||
/** 높이 */
|
||||
private Integer fHeight;
|
||||
/** 파일타입 */
|
||||
private String fType;
|
||||
/** 파일경로*/
|
||||
private String fCourse;
|
||||
/** 등록일 */
|
||||
private Date fRegdate;
|
||||
|
||||
/** 파일정보 */
|
||||
private List<HashMap<String, Object>> fileInfo;
|
||||
|
||||
/** 쇼핑몰 코드 */
|
||||
private String sopmalCd;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
package com.wb.domainserver.domain.mngr.ntcn.mssage.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class MbrSrchVO extends AbstractVO {
|
||||
private static final long serialVersionUID = 1L;
|
||||
/**검색어 구분*/
|
||||
private String srchKywordDv;
|
||||
|
||||
/**검색어 키워드*/
|
||||
private String srchKyword;
|
||||
|
||||
/*검색어 이름*/
|
||||
private String srchMbrNm;
|
||||
|
||||
/*검색어 아이디*/
|
||||
private String srchKywordID;
|
||||
|
||||
/*검색어 이메일*/
|
||||
private String srchKywordEmail;
|
||||
|
||||
/*검색어 휴대폰번호*/
|
||||
private String srchKywordMb;
|
||||
|
||||
/**정렬 방식*/
|
||||
private String sortDv;
|
||||
|
||||
/**쇼핑몰코드*/
|
||||
private String sopmalCd;
|
||||
|
||||
/*회원 구분 코드*/
|
||||
private String srchMbrDvCd;
|
||||
|
||||
/*팝업 리스트 구분*/
|
||||
private String popDv;
|
||||
|
||||
/*검색 주체가 email인지 sms인지 구분*/
|
||||
private String actionDv;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.wb.domainserver.domain.mngr.ntcn.mssage.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 MssageAlbumVO extends AbstractVO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 앨범 시퀀스 번호 */
|
||||
private Integer smsAlbumInnb;
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
/** 카테고리 */
|
||||
@NotBlank(message = "카테고리")
|
||||
private String category;
|
||||
/** 메세지 */
|
||||
@NotBlank(message = "메세지")
|
||||
private String msg;
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
package com.wb.domainserver.domain.mngr.ntcn.mssage.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 MssageSrchVO extends AbstractVO {
|
||||
private static final long serialVersionUID = 1L;
|
||||
/**검색어타입*/
|
||||
public String srchType;
|
||||
/**검색어*/
|
||||
public String srchStr;
|
||||
/**쇼핑몰코드*/
|
||||
private String sopmalCd;
|
||||
/**검색 시작 발송 날짜 */
|
||||
private String srchStrtSndngDt;
|
||||
/**검색 종료 발송 날짜 */
|
||||
private String srchEndSndngDt ;
|
||||
/**검색 쇼핑몰 코드*/
|
||||
private String srchSopmalCd;
|
||||
/**검색 sms 고유번호 */
|
||||
private String srchSmsInnb ;
|
||||
/**검색 sms 대상 고유번호 */
|
||||
private String srchSmsToInnb;
|
||||
/**검색 sms 수신번호 */
|
||||
private String srchRecptnNb ;
|
||||
/**검색 수신/발신 번호 구분 */
|
||||
private String srchNbDv ;
|
||||
/**검색 조회기간 구분 */
|
||||
private String srchDtDv ;
|
||||
/**검색 발송유형 */
|
||||
private List<String> srchDv;
|
||||
/**검색 현재상태*/
|
||||
private List<String> srchSttus;
|
||||
|
||||
/** 검색 회원번호 */
|
||||
private String srchMbrInnb;
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,135 @@
|
||||
package com.wb.domainserver.domain.mngr.ntcn.mssage.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import com.wb.domainserver.util.dataaccess.DataMap;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigInteger;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class MssageVO extends AbstractVO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** SMS 고유번호 */
|
||||
private Integer smsInnb;
|
||||
|
||||
/**
|
||||
* FM_SMS SMS 발송내역(메시지 발송내역)
|
||||
*/
|
||||
/** (STO:매장, ADM:관리자, SYS:시스템) */
|
||||
private String regusrDv;
|
||||
/** 매장 고유번호 */
|
||||
private Integer strInnb;
|
||||
/** 입점사명 */
|
||||
private String strNm;
|
||||
/** 매장구분(G:가맹, J:직영, O:유통) */
|
||||
private String strDv;
|
||||
/** 문자상태(REG:등록, WAIT:대기 ,SEND:발송, END:발송완료) */
|
||||
private String chrSttus;
|
||||
/** 예약일시 */
|
||||
private Date resveDt;
|
||||
/** 발송일시 */
|
||||
private Date sndngDt;
|
||||
/** 발송 식별번호 */
|
||||
private Integer sndngIdnb;
|
||||
/** HEAD */
|
||||
private String head;
|
||||
/** 내용 */
|
||||
private String cn;
|
||||
/** TAIL */
|
||||
private String tail;
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
/** 발송번호 */
|
||||
private String sndngNb;
|
||||
/** (SMS,LMS,MMS) */
|
||||
private String dv;
|
||||
/** 대상자 수 */
|
||||
private Integer trgterCnt;
|
||||
/** 불량 수 */
|
||||
private Integer badnCnt;
|
||||
/** 대기 수 */
|
||||
private Integer waitCnt;
|
||||
/** (미확인+실패+성공) */
|
||||
private Integer trnsmisCnt;
|
||||
/** 실패 수 */
|
||||
private Integer failrCnt;
|
||||
/** (과금 대상) */
|
||||
private Integer succesCnt;
|
||||
/** 정산 식별번호 */
|
||||
private Integer stlIdnb;
|
||||
/** SMS 이름 */
|
||||
private String smsNm;
|
||||
/** 등록자 이름*/
|
||||
private String regusrNm;
|
||||
|
||||
|
||||
/**
|
||||
* FM_SMS_TO SMS 대상(메시지 대상)
|
||||
*/
|
||||
/** SMS 대상 고유번호 */
|
||||
private BigInteger smsToInnb;
|
||||
/** 대상 순번 */
|
||||
private Integer trgetSnb;
|
||||
/** 구분 */
|
||||
// private String dv;
|
||||
/** 상태 */
|
||||
private String sttus;
|
||||
/** 발송 식별번호 */
|
||||
// private long sndngIdnb;
|
||||
/** 발송일시 */
|
||||
// private Date sndngDt;
|
||||
/** 결과코드 */
|
||||
private String rsltCd;
|
||||
/** 수신번호 */
|
||||
@NotEmpty(message = "수신번호")
|
||||
private String recptnNb;
|
||||
/** 고객 식별번호 */
|
||||
private Integer cstmrIdnb;
|
||||
/** 고객이름 */
|
||||
private String cstmrNm;
|
||||
/** 치환 단어1 */
|
||||
private String substWrd1;
|
||||
/** 치환 단어2 */
|
||||
private String substWrd2;
|
||||
/** 치환 단어3 */
|
||||
private String substWrd3;
|
||||
/** 치환 단어4 */
|
||||
private String substWrd4;
|
||||
/** 치환 단어5 */
|
||||
private String substWrd5;
|
||||
|
||||
/** 치환 데이터 */
|
||||
private DataMap sndngData;
|
||||
|
||||
|
||||
/** 메시지 대상자 리스트 */
|
||||
private String recptnTrgtList;
|
||||
|
||||
/**
|
||||
* 회원 목록 -> 메시지 발송
|
||||
*/
|
||||
/** 발송 건수 */
|
||||
private String sndngCnt;
|
||||
/** 회원 정보 */
|
||||
private String mbrInfo;
|
||||
|
||||
/** 파일정보 */
|
||||
private List<HashMap<String, Object>> fileInfo;
|
||||
|
||||
|
||||
/** 파일 고유번호*/
|
||||
private Integer fSeq;
|
||||
|
||||
/** 메세지 취소 구분코드 */
|
||||
private String cancelDvCd;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,257 @@
|
||||
package com.wb.domainserver.domain.mngr.ntcn.tmplt.controller;
|
||||
|
||||
import com.wb.domainserver.common.msg.GconeMessageSource;
|
||||
import com.wb.domainserver.domain.mngr.ntcn.tmplt.vo.TmpltVO;
|
||||
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.communicate.ValidateResultConverter;
|
||||
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.CookieValue;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
|
||||
/*
|
||||
* 템플릿 관리 Controller
|
||||
* @author 리브가
|
||||
* @since 2024-02-21
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2024-02-21 리브가 최초 생성
|
||||
* 2024-04-17 이대환 내용 수정
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Slf4j
|
||||
@Controller
|
||||
@RequestMapping("/mngr/ntcn/tmplt")
|
||||
public class TmpltController {
|
||||
|
||||
/** WebClient 호출을 위한 wrapper */
|
||||
@Autowired
|
||||
private WnbtWebClientResponseHandler responseHandler;
|
||||
|
||||
/** WebClient 호출을 위한 wrapper */
|
||||
@Autowired
|
||||
private SendToResrc sendToResrc;
|
||||
/** 공통 메시지 처리를 위한 메시지 객체 */
|
||||
@Autowired
|
||||
private GconeMessageSource gconeMessageSource;
|
||||
|
||||
/**
|
||||
* 템플릿 관리 페이지
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectAtmcSndngTmplatManage")
|
||||
public String selectEmailPassivSndngManage(){
|
||||
return "mngr/ntcn/tmplt/AtmcSndngTmplatManage";
|
||||
}
|
||||
|
||||
/**
|
||||
* 템플릿 관리 > 이메일 템플릿 폼
|
||||
* @param model
|
||||
* @param tmpltVO
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectEmailAtmcSndngTmplatOneInqireForm")
|
||||
public String selectEmailAtmcSndngTmplatOneInqireForm(ModelMap model, TmpltVO tmpltVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
tmpltVO.setSopmalCd(authSopmalCd);
|
||||
try {
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/tmplt/selectBOEmailAtmcSndngTmplatOneInqireForm", tmpltVO),
|
||||
model,
|
||||
"resultListMap"
|
||||
);
|
||||
|
||||
model.addAttribute("tmpltVO",tmpltVO);
|
||||
} catch (WnbtRestException wre){
|
||||
throw new WnbtRestException(wre.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
|
||||
return "mngr/ntcn/tmplt/EmailAtmcSndngTmplatU";
|
||||
}
|
||||
|
||||
/**
|
||||
* 템플릿 관리 > 이메일 템플릿 폼 > 이메일 템플릿
|
||||
* @return
|
||||
* @author 이대환
|
||||
*/
|
||||
@Policy(AuthPolicy.PUBLIC)
|
||||
@RequestMapping(value="/selectEmailAtmcSndngTmplatOne")
|
||||
public ResponseEntity<WnbtResponse> selectEmailAtmcSndngTmplatOne(TmpltVO tmpltVO, @CookieValue(value = "authSopmalCd") String authSopmalCd){
|
||||
tmpltVO.setSopmalCd(authSopmalCd);
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/tmplt/selectBOEmailAtmcSndngTmplatOneInqireForm", tmpltVO),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 템플릿 관리 > 이메일 템플릿 - 이메일 템플릿 수정
|
||||
* @param tmpltVO
|
||||
* @param bindingResult 바인딩 및 정합성 점검결과 객체
|
||||
* @return ResponseEntity<WnbtResponse>
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateEmailAtmcSndngTmplatUpdt", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateEmailAtmcSndngTmplatUpdt(TmpltVO tmpltVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
tmpltVO.setSopmalCd(authSopmalCd);
|
||||
if(bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/tmplt/updateBOEmailAtmcSndngTmplatUpdt", tmpltVO),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 템플릿 관리 > SMS 템플릿 폼
|
||||
* @param model
|
||||
* @param tmpltVO
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectMssageAtmcSndngTmplatInqireForm")
|
||||
public String selectMssageAtmcSndngTmplatInqireForm(ModelMap model, TmpltVO tmpltVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
tmpltVO.setSopmalCd(authSopmalCd);
|
||||
try {
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/tmplt/selectBOMssageAtmcSndngTmplatInqireForm", tmpltVO),
|
||||
model,
|
||||
"resultListMap"
|
||||
);
|
||||
|
||||
model.addAttribute("tmpltVO",tmpltVO);
|
||||
} catch (WnbtRestException wre){
|
||||
throw new WnbtRestException(wre.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
|
||||
return "mngr/ntcn/tmplt/MssageAtmcSndngTmplatU";
|
||||
}
|
||||
|
||||
/**
|
||||
* 템플릿 관리 > SMS 템플릿 - SMS 템플릿 수정
|
||||
* @param tmpltVO
|
||||
* @param bindingResult 바인딩 및 정합성 점검결과 객체
|
||||
* @return ResponseEntity<WnbtResponse>
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateMssageAtmcSndngTmplatUpdt", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateMssageAtmcSndngTmplatUpdt(TmpltVO tmpltVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
tmpltVO.setSopmalCd(authSopmalCd);
|
||||
if(bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/tmplt/updateBOMssageAtmcSndngTmplatUpdt", tmpltVO),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 템플릿 관리 > 알림톡 템플릿 폼
|
||||
* @param model
|
||||
* @param tmpltVO
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectNtcntalkAtmcSndngTmplatInqireForm")
|
||||
public String selectNtcntalkAtmcSndngTmplatInqireForm(ModelMap model, TmpltVO tmpltVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
tmpltVO.setSopmalCd(authSopmalCd);
|
||||
try {
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/tmplt/selectBONtcntalkAtmcSndngTmplatInqireForm", tmpltVO),
|
||||
model,
|
||||
"resultListMap"
|
||||
);
|
||||
|
||||
model.addAttribute("tmpltVO",tmpltVO);
|
||||
} catch (WnbtRestException wre){
|
||||
throw new WnbtRestException(wre.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
|
||||
return "mngr/ntcn/tmplt/NtcntalkAtmcSndngTmplatU";
|
||||
}
|
||||
|
||||
/**
|
||||
* 템플릿 관리 > 알림톡 템플릿 > 알림톡 탬플릿 수정 팝업 폼
|
||||
* @param model
|
||||
* @param tmpltVO
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectNtcntalkAtmcSndngTmplatUpdtPopupForm")
|
||||
public String selectNtcntalkAtmcSndngTmplatUpdtPopupForm(TmpltVO tmpltVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
tmpltVO.setSopmalCd(authSopmalCd);
|
||||
try {
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/tmplt/selectBONtcntalkAtmcSndngTmplatUpdtPopupForm", tmpltVO),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
|
||||
model.addAttribute("tmpltVO",tmpltVO);
|
||||
} catch (WnbtRestException wre){
|
||||
throw new WnbtRestException(wre.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
|
||||
return "mngr/ntcn/tmplt/NtcntalkAtmcSndngTmplatUpdtPopupU";
|
||||
}
|
||||
|
||||
/**
|
||||
* 템플릿 관리 > 알림톡 템플릿 - 알림톡 템플릿 수정
|
||||
* @param tmpltVO
|
||||
* @param bindingResult 바인딩 및 정합성 점검결과 객체
|
||||
* @return ResponseEntity<WnbtResponse>
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateNtcntalkAtmcSndngTmplatUpdt", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateNtcntalkAtmcSndngTmplatUpdt(@Validated TmpltVO tmpltVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
tmpltVO.setSopmalCd(authSopmalCd);
|
||||
if(bindingResult.hasErrors()) {
|
||||
throw new WnbtRestException(ValidateResultConverter.convert(bindingResult, gconeMessageSource));
|
||||
}
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ntcn/tmplt/updateBONtcntalkAtmcSndngTmplatUpdt", tmpltVO),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
package com.wb.domainserver.domain.mngr.ntcn.tmplt.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 TmpltVO extends AbstractVO {
|
||||
|
||||
/** 템플릿 공통 */
|
||||
/** 쇼핑몰 코드 */
|
||||
private String sopmalCd;
|
||||
/** 양식구분 */
|
||||
private String formDvCd;
|
||||
/** 양식상세구분 */
|
||||
private String formDtlDvCd;
|
||||
|
||||
|
||||
/** 이메일 템플릿 */
|
||||
/** 고유번호 */
|
||||
private Integer emailSndngFormInnb;
|
||||
/** 이메일 제목 */
|
||||
private String emailSj;
|
||||
/** 이메일 내용 */
|
||||
private String emailCn;
|
||||
|
||||
/** 메시지 템플릿 */
|
||||
/** 고유번호*/
|
||||
private Integer smsSndngFormInnb;
|
||||
/** SMS 내용*/
|
||||
private String smsCn;
|
||||
|
||||
|
||||
/** 카카오 알림톡 템플릿 내용 */
|
||||
/** 알림톡 발송양식 고유번호 */
|
||||
private Integer ntcntalkSndngFormInnb;
|
||||
/** 템플릿내용 */
|
||||
private String msg;
|
||||
/** 템플릿코드 */
|
||||
private String templatecode;
|
||||
/** SMS대체여부 */
|
||||
private String smsRplcAt;
|
||||
|
||||
/** 카카오 알림톡_버튼 */
|
||||
/** 버튼타입1 */
|
||||
private String btnType01;
|
||||
/** 버튼명1 */
|
||||
private String btnNm01;
|
||||
/** 링크주소1(mobile) */
|
||||
private String btn01Url01;
|
||||
/** 링크주소1(pc) */
|
||||
private String btn01Url02;
|
||||
/** 버튼타입2 */
|
||||
private String btnType02;
|
||||
/** 버튼명2 */
|
||||
private String btnNm02;
|
||||
/** 링크주소2(mobile) */
|
||||
private String btn02Url01;
|
||||
/** 링크주소2(pc) */
|
||||
private String btn02Url02;
|
||||
/** 버튼타입3 */
|
||||
private String btnType03;
|
||||
/** 버튼명3 */
|
||||
private String btnNm03;
|
||||
/** 링크주소3(mobile) */
|
||||
private String btn03Url01;
|
||||
/** 링크주소3(pc) */
|
||||
private String btn03Url02;
|
||||
/** 버튼타입4 */
|
||||
private String btnType04;
|
||||
/** 버튼명4 */
|
||||
private String btnNm04;
|
||||
/** 링크주소4(mobile) */
|
||||
private String btn04Url01;
|
||||
/** 링크주소4(pc) */
|
||||
private String btn04Url02;
|
||||
/** 버튼타입5 */
|
||||
private String btnType05;
|
||||
/** 버튼명5 */
|
||||
private String btnNm05;
|
||||
/** 링크주소5(mobile) */
|
||||
private String btn05Url01;
|
||||
/** 링크주소5(pc) */
|
||||
private String btn05Url02;
|
||||
|
||||
/** 템플릿 정보 목록 */
|
||||
private String tmplatList;
|
||||
/** 버튼타입 리스트 */
|
||||
private List<String> btnType;
|
||||
/** 버튼명 리스트 */
|
||||
private List<String> btnNm;
|
||||
/** 링크주소(mobile) 리스트 */
|
||||
private List<String> btnMUrl;
|
||||
/** 링크주소(pc) 리스트 */
|
||||
private List<String> btnPcUrl;
|
||||
}
|
||||
@@ -0,0 +1,187 @@
|
||||
package com.wb.domainserver.domain.mngr.ordr.atmcrmy.controller;
|
||||
|
||||
import com.wb.domainserver.domain.mngr.ordr.atmcrmy.vo.AtmcRcpmnyCnfirmMemoVO;
|
||||
import com.wb.domainserver.domain.mngr.ordr.atmcrmy.vo.AtmcRcpmnyCnfirmVO;
|
||||
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 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.CookieValue;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
|
||||
@Controller
|
||||
@RequestMapping("/mngr/ordr/atmcrmy")
|
||||
@Slf4j
|
||||
public class AtmcrmyController {
|
||||
|
||||
/** WebClient 호출을 위한 wrapper */
|
||||
@Autowired
|
||||
private SendToResrc sendToResrc;
|
||||
|
||||
@Autowired
|
||||
private WnbtWebClientResponseHandler responseHandler;;
|
||||
|
||||
|
||||
/**
|
||||
* 자동입금내역 목록 화면 이동
|
||||
* @param vo
|
||||
* @param model 모델객체
|
||||
* @return String JSP 경로
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectAtmcRcpmnyDtlsListInqireForm")
|
||||
public String selectAtmcRcpmnyDtlsListInqireForm(AtmcRcpmnyCnfirmVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/atmcrcpmny/selectBOAtmcRcpmnyDtlsListInqireForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/ordr/atmcrmy/AtmcRcpmnyListInqireRForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 자동입금내역 목록 조회
|
||||
* @param vo
|
||||
* @param model 모델객체
|
||||
* @return String JSP 경로
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectAtmcRcpmnyDtlsListInqire")
|
||||
public String selectAtmcRcpmnyDtlsListInqire(AtmcRcpmnyCnfirmVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/atmcrcpmny/selectBOAtmcRcpmnyDtlsListInqire", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/ordr/atmcrmy/AtmcRcpmnyListInqireR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 관리자 메모 등록 화면 조회
|
||||
* @param vo
|
||||
* @return String JSP 경로
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectRcpmnyDtlsMngrMemoRegistPopupForm")
|
||||
public String selectRcpmnyDtlsMngrMemoRegistPopupForm(AtmcRcpmnyCnfirmMemoVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
model.addAttribute("resultMap", vo);
|
||||
|
||||
return "mngr/ordr/atmcrmy/RcpmnyDtlsMngrMemoRegistPopupC";
|
||||
}
|
||||
|
||||
/**
|
||||
* 관리자 메모 등록
|
||||
* @param vo
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/insertRcpmnyDtlsMngrMemoRegist")
|
||||
public ResponseEntity<WnbtResponse> insertRcpmnyDtlsMngrMemoRegist(AtmcRcpmnyCnfirmMemoVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/atmcrcpmny/insertBORcpmnyDtlsMngrMemoRegist", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 자동입금내역 주문조회 상세 팝업 이동
|
||||
* @param vo
|
||||
* @param model 모델객체
|
||||
* @return String JSP 경로
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectAtmcRcpmnyDtlsOrdrInqirePopupForm", method = RequestMethod.GET)
|
||||
public String selectAtmcRcpmnyDtlsOrdrInqirePopupForm(AtmcRcpmnyCnfirmVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/atmcrcpmny/selectBOAtmcRcpmnyDtlsOrdrInqirePopupForm", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/ordr/atmcrmy/AtmcRcpmnyDtlsOrdrInqirePopupRForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 자동입금내역 주문조회 팝업 주문조회
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectAtmcRcpmnyOrdrInqire", method = RequestMethod.POST)
|
||||
public String selectAtmcRcpmnyOrdrInqire(AtmcRcpmnyCnfirmVO vo, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/atmcrcpmny/selectBOAtmcRcpmnyOrdrInqire", vo),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/ordr/atmcrmy/AtmcRcpmnyDtlsOrdrInqirePopupR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 자동입금내역 주문조회 입금확인 매칭
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateRcpmnyCnfirmMtchg", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateRcpmnyCnfirmMtchg(AtmcRcpmnyCnfirmVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/atmcrcpmny/updateBORcpmnyCnfirmMtchg", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 수동 실행 버튼 클릭 시
|
||||
* @param vo
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateRcpmnyCnfirmExecut", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateRcpmnyCnfirmExecut(AtmcRcpmnyCnfirmVO vo, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
vo.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/atmcrcpmny/updateBORcpmnyCnfirmExecut", vo),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
package com.wb.domainserver.domain.mngr.ordr.atmcrmy.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* 해당 클래스에 대한 설명을 입력하세요.
|
||||
* @author 임수영
|
||||
* @since 2024-05-17
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2024-05-17 임수영 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class AtmcRcpmnyCnfirmMemoVO extends AbstractVO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 입금내역 메모
|
||||
*/
|
||||
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
|
||||
/** 뱅크다 일련번호 */
|
||||
private String bkcode;
|
||||
|
||||
/** 메모내용 */
|
||||
private String memoCn;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,200 @@
|
||||
package com.wb.domainserver.domain.mngr.ordr.atmcrmy.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* 해당 클래스에 대한 설명을 입력하세요.
|
||||
* @author 임수영
|
||||
* @since 2024-05-09
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2024-05-09 임수영 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class AtmcRcpmnyCnfirmVO extends AbstractVO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 쇼핑몰코드*/
|
||||
private String sopmalCd;
|
||||
|
||||
/** 주문고유번호 */
|
||||
private String ordrInnb;
|
||||
|
||||
/**
|
||||
* 입금내역
|
||||
*/
|
||||
|
||||
/** 일련번호 */
|
||||
private Integer bkid;
|
||||
|
||||
/** 계좌번호 */
|
||||
private String bkacctno;
|
||||
|
||||
/** 거래일자 */
|
||||
private String bkdate;
|
||||
|
||||
/** 입금자명 */
|
||||
private String bkjukyo;
|
||||
|
||||
/** 입금액 */
|
||||
private String bkinput;
|
||||
|
||||
/** 출금액 */
|
||||
private String bkoutput;
|
||||
|
||||
/** 주문결제고유번호 */
|
||||
private String ordrSetleInnb;
|
||||
|
||||
/** 뱅크다 일련번호 */
|
||||
private String bkcode;
|
||||
|
||||
/** 회원ID */
|
||||
private String mid;
|
||||
|
||||
/** 은행명 */
|
||||
private String bkname;
|
||||
|
||||
/** 거래시간 */
|
||||
private String bktime;
|
||||
|
||||
/** 내용 */
|
||||
private String bkcontent;
|
||||
|
||||
/** 기타 */
|
||||
private String bketc;
|
||||
|
||||
/** 잔액 */
|
||||
private String bkjango;
|
||||
|
||||
/** 거래내역수집일시 */
|
||||
private String bkxferdatetime;
|
||||
|
||||
|
||||
/**
|
||||
* 주문결재
|
||||
*/
|
||||
|
||||
/** 결제금액 */
|
||||
private String setleAmt;
|
||||
|
||||
/** 결제유형코드 */
|
||||
private String setleTyCd;
|
||||
|
||||
/** 결제일시 */
|
||||
private String setleDt;
|
||||
|
||||
/** 은행명 */
|
||||
private String bnnkNm;
|
||||
|
||||
/** 예금주명 */
|
||||
private String dpstrNm;
|
||||
|
||||
/** 입금계좌번호 */
|
||||
private String rcpmnyAcntnb;
|
||||
|
||||
/** 입금자명 */
|
||||
private String rcpmnyerNm;
|
||||
|
||||
/** 수기결제여부 */
|
||||
private String memorSetleAt;
|
||||
|
||||
|
||||
/**
|
||||
* 주문
|
||||
*/
|
||||
|
||||
/** 주문상태코드 */
|
||||
private String ordrSttusCd;
|
||||
|
||||
/** 주문상태코드명 */
|
||||
private String ordrSttusCdNm;
|
||||
|
||||
/** 주문자명 */
|
||||
private String ordrrNm;
|
||||
|
||||
/** 자동입금타입 */
|
||||
private String autodepositTy;
|
||||
|
||||
/** 주문접수일시 */
|
||||
private String ordrRceptDt;
|
||||
|
||||
|
||||
/**
|
||||
* 입금메모
|
||||
*/
|
||||
|
||||
/** 메모내용 */
|
||||
private String memoCn;
|
||||
|
||||
|
||||
// 검색조건
|
||||
|
||||
/** 검색_정렬구분 */
|
||||
private String sortDv;
|
||||
|
||||
/** 검색어 */
|
||||
private String searchWord;
|
||||
|
||||
/** 계좌 번호 */
|
||||
private String searchAccount;
|
||||
|
||||
/** 입금일 시작 */
|
||||
private String srchStartDate;
|
||||
|
||||
/** 입금일 종료 */
|
||||
private String srchEndDate;
|
||||
|
||||
/** 입금 확인 */
|
||||
private String[] srchStatus;
|
||||
|
||||
// 주문조회 팝업 검색 조건
|
||||
|
||||
/** 주문고유번호 */
|
||||
private String srchOrdrInnb;
|
||||
|
||||
/** 쇼핑몰 코드 */
|
||||
private String srchSopmalCd;
|
||||
|
||||
/** 결제일시 */
|
||||
private String srchSetleDt;
|
||||
|
||||
/** 은행명 */
|
||||
private String srchBnnkNm;
|
||||
|
||||
/** 계좌번호 */
|
||||
private String srchRcpmnyAcntnb;
|
||||
|
||||
/** 입금자명 */
|
||||
private String srchRcpmnyerNm;
|
||||
|
||||
/** 입금액1 */
|
||||
private String srchSetleAmt1;
|
||||
|
||||
/** 입금액2 */
|
||||
private String srchSetleAmt2;
|
||||
|
||||
/** 입금여부1 */
|
||||
private String srchOrdrSttusCd1;
|
||||
|
||||
/** 입금여부2 */
|
||||
private String srchOrdrSttusCd2;
|
||||
|
||||
/** 입금여부3 */
|
||||
private String srchOrdrSttusCd3;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.wb.domainserver.domain.mngr.ordr.atmcrmy.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class BankdaInfoVO {
|
||||
|
||||
/** 은행명 */
|
||||
private String bkname;
|
||||
|
||||
/** 계좌번호 */
|
||||
private String bkacctno;
|
||||
|
||||
/** 이용자 아이디 */
|
||||
private String userId;
|
||||
|
||||
/** 이용자 비밀번호 */
|
||||
private String userPw;
|
||||
|
||||
/** 수정할 이용자 아이디 */
|
||||
private String updtUserId;
|
||||
|
||||
/** 수정할 이용자 비밀번호 */
|
||||
private String updtUserPw;
|
||||
|
||||
/** 이용자 이름 */
|
||||
private String userName;
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,552 @@
|
||||
package com.wb.domainserver.domain.mngr.ordr.dlivy.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.mngr.ordr.dlivy.vo.DlivySrchVO;
|
||||
import com.wb.domainserver.domain.mngr.ordr.dlivy.vo.DlivyVO;
|
||||
import com.wb.domainserver.domain.mngr.ordr.ordrmngr.vo.DwldItmVO;
|
||||
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 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.CookieValue;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
|
||||
/*
|
||||
* 통합관리자 > 출고 FO Controller
|
||||
* @author 김혜인
|
||||
* @since 2024-02-19
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2024-02-19 김혜인. 최초 생성
|
||||
* 2024-03-19 추지훈 수정
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Controller
|
||||
@RequestMapping("/mngr/ordr/dlivy")
|
||||
@Slf4j
|
||||
public class DlivyController {
|
||||
|
||||
/** WebClient 호출을 위한 wrapper */
|
||||
@Autowired
|
||||
private WnbtWebClientResponseHandler responseHandler;
|
||||
|
||||
/** WebClient 호출을 위한 wrapper */
|
||||
@Autowired
|
||||
private SendToResrc sendToResrc;
|
||||
/** 공통 메시지 처리를 위한 메시지 객체 */
|
||||
@Autowired
|
||||
private GconeMessageSource gconeMessageSource;
|
||||
|
||||
/**
|
||||
* 출고 목록 조회 폼
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectDlivyListInqireForm")
|
||||
public String selectDlivyListInqireForm(ModelMap model, DlivySrchVO dlivySrchVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) throws Exception {
|
||||
dlivySrchVO.setSopmalCd(authSopmalCd);
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/dlivy/selectBODlivyListInqireForm", dlivySrchVO),
|
||||
model,
|
||||
"cond"
|
||||
);
|
||||
model.addAttribute("paramVO", new ObjectMapper().writeValueAsString(dlivySrchVO));
|
||||
|
||||
return "mngr/ordr/dlivy/DlivyListInqireRForm";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 출고 목록 조회
|
||||
* @param DlivySrchVO
|
||||
* @return ResponseEntity<WnbtResponse>
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectDlivyListInqireAjax")
|
||||
public ResponseEntity<WnbtResponse> selectDlivyListInqireAjax(DlivySrchVO dlivySrchVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
dlivySrchVO.setSopmalCd(authSopmalCd);
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/dlivy/selectBODlivyListInqire", dlivySrchVO),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 출고 목록 상세 조회 ajax
|
||||
* @return ResponseEntity
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectDlivyListDtlAjax")
|
||||
public ResponseEntity<WnbtResponse> selectDlivyListDtlAjax(DlivySrchVO dlivySrchVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
dlivySrchVO.setSopmalCd(authSopmalCd);
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/dlivy/selectBODlivyListDtlAjax", dlivySrchVO),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 출고 상태 변경 팝업 폼
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectDlivySttusChngPopupForm")
|
||||
public String selectDlivySttusChngPopupForm(ModelMap model, DlivySrchVO dlivySrchVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
dlivySrchVO.setSopmalCd(authSopmalCd);
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/dlivy/selectBODlivyListInqireForm", dlivySrchVO),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
model.addAttribute("paramVO", dlivySrchVO);
|
||||
|
||||
return "mngr/ordr/dlivy/DlivySttusChngUForm";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 출고 상태 변경 팝업 목록 조회
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectDlivySttusChngPopup")
|
||||
public String selectDlivySttusChngPopup(ModelMap model, DlivySrchVO dlivySrchVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
dlivySrchVO.setSopmalCd(authSopmalCd);
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/dlivy/selectBODlivyListInqirePage", dlivySrchVO),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
model.addAttribute("paramVO", dlivySrchVO);
|
||||
|
||||
return "mngr/ordr/dlivy/DlivySttusChngU";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 출고 다운로드
|
||||
* @param DlivySrchVO
|
||||
* @return String
|
||||
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectDlivyDtstmnDwldPopupForm")
|
||||
public String selectDlivyDtstmnDwldPopupForm(ModelMap model, DlivyVO dlivyVO) {
|
||||
|
||||
|
||||
|
||||
//모델 객체에 결과 담음
|
||||
model.addAttribute("resultMap", BoResultMapConverter.convert(new ObjectMapper(), reply.getReply()));
|
||||
return "mngr/ordr/dlivy/DlivyDtstmnDwldPopupR";
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* 출고 상세 조회
|
||||
* @param DlivyVO
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectDlivyDtlInqire")
|
||||
public String selectDlivyDtlInqire(ModelMap model, DlivyVO dlivyVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) throws JsonProcessingException {
|
||||
dlivyVO.setSopmalCd(authSopmalCd);
|
||||
// WnbtResponse response = WnbtResponse.builder().resBody(new WnbtResponseBody(reply.getReply())).build();
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/dlivy/selectBODlivyDtlInqire", dlivyVO),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOOrdrDtlInqire", dlivyVO),
|
||||
model,
|
||||
"data"
|
||||
);
|
||||
// model.addAttribute("paramVO", new ObjectMapper().writeValueAsString(refndSrchVO));
|
||||
model.addAttribute("paginationInfo", dlivyVO.getPaginationInfo());
|
||||
|
||||
return "mngr/ordr/dlivy/DlivyDtlInqireR";
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 출고 상태변경 > 출고 상세 상품 목록 조회
|
||||
* @param DlivyVO
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectDlivyDtlGoodsListInqire")
|
||||
public ResponseEntity<WnbtResponse> selectDlivyDtlGoodsListInqire(ModelMap model, DlivyVO dlivyVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
dlivyVO.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/dlivy/selectBODlivyDtlGoodsListInqire", dlivyVO),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 관리자 > 출고 목록 > 출고 상세 펼치기
|
||||
* @param DlivyVO
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectDlivyDtlInfoAndGoodsListInqire")
|
||||
public ResponseEntity<WnbtResponse> selectDlivyDtlInfoAndGoodsListInqire(ModelMap model, DlivyVO dlivyVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
dlivyVO.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/dlivy/selectBODlivyDtlInqire", dlivyVO),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 출고내역서 팝업 화면 이동
|
||||
* @param model
|
||||
* @param ordrVO
|
||||
* @return OrdrDtstmnDwldPopupR.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectDlivyDtstmnDwldPopupForm")
|
||||
public String selectDlivyDtstmnDwldPopupForm(ModelMap model, DlivyVO dlivyVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) throws Exception {
|
||||
dlivyVO.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/dlivy/selectBODlivyDtstmnDwldPopupForm", dlivyVO),
|
||||
model,
|
||||
"data"
|
||||
);
|
||||
|
||||
return "mngr/ordr/dlivy/DlivyDtstmnDwldPopupR";
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 출고 정보 수정
|
||||
* @param DlivyVO
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateDlivyInfoUpdt")
|
||||
public ResponseEntity<WnbtResponse> updateDlivyInfoUpdt(DlivyVO dlivyVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
dlivyVO.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/dlivy/updateBODlivyInfoUpdt", dlivyVO),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 관리자 > 출고 목록, 출고상태변경 팝업 > 출고 상태 변경 ( 배송중, 배송완료 )
|
||||
* @param DlivyVO
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateDlivySttusGetbackUpdt")
|
||||
public ResponseEntity<WnbtResponse> updateDlivySttusGetbackUpdt(DlivyVO dlivyVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
dlivyVO.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/dlivy/updateBODlivySttusGetbackUpdt", dlivyVO),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 다운로드 항목 조회
|
||||
* @param DlivyVO
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectDlivyDwldItmSetupPopupForm")
|
||||
public String selectDlivyDwldItmSetupPopupForm(ModelMap model, DwldItmVO dwldItmVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
dwldItmVO.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBODwldForm", dwldItmVO),
|
||||
model,
|
||||
"data"
|
||||
);
|
||||
|
||||
return "mngr/ordr/dlivy/DlivyDwldItmSetupPopupR";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 다운로드 항목 수정
|
||||
* @param DwldItmVO
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateDlivyDwldItmSetup", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateDlivyDwldItmSetup(DwldItmVO dwldItmVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
dwldItmVO.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/updateBODwldFormUpdt", dwldItmVO),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 중요출고여부 수정
|
||||
* @param DwldItmVO
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateImprtncdlivyAt", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateImprtncdlivyAt(DlivyVO dlivyVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
dlivyVO.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/dlivy/updateBOImprtncdlivyAt", dlivyVO),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 주문, 출고 윈도우 팝업 이동
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectOrdrDlivyPopupForm")
|
||||
public String selectOrdrDlivyPopupForm(DlivySrchVO dlivySrchVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
dlivySrchVO.setSopmalCd(authSopmalCd);
|
||||
|
||||
log.debug("dlivySrchVO 조건 확인",dlivySrchVO);
|
||||
|
||||
|
||||
//모델 객체에 결과 담음
|
||||
// model.addAttribute("resultMap", BoResultMapConverter.convert(new ObjectMapper(), reply.getReply()));
|
||||
|
||||
return "mngr/ordr/dlivy/OrdrDlivyPopupForm";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 출고 처리 윈도우 팝업 이동
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectDlivyProcsPopupForm")
|
||||
public String selectDlivyProcsPopupForm(DlivySrchVO dlivySrchVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
dlivySrchVO.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/dlivy/selectBODlivyListInqireForm", dlivySrchVO),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
model.addAttribute("paramVO", dlivySrchVO);
|
||||
|
||||
return "mngr/ordr/dlivy/DlivyProcsPopupUForm";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 출고 처리 윈도우 팝업 목록 조회
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectDlivyProcsPopupListInqire")
|
||||
public String selectDlivyProcsPopupListInqire(DlivySrchVO dlivySrchVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
dlivySrchVO.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/dlivy/selectBODlivyProcsPopupForm", dlivySrchVO),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
model.addAttribute("paramVO", dlivySrchVO);
|
||||
|
||||
return "mngr/ordr/dlivy/DlivyProcsPopupU";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 주문 -> 출고처리 팝업 > 주문배송 상품 목록 조회
|
||||
* @param DlivyVO
|
||||
* @return String
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectOrdrDlvyDtlGoodsListInqire")
|
||||
public ResponseEntity<WnbtResponse> selectOrdrDlvyDtlGoodsListInqire(ModelMap model, DlivyVO dlivyVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
dlivyVO.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/dlivy/selectBOOrdrDlvyDtlGoodsListInqire", dlivyVO),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 주문 출고 처리 팝업 이동
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectOrdrDlivyProcsRegistForm")
|
||||
public String selectOrdrDlivyProcsRegistForm(DlivyVO dlivyVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
dlivyVO.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/dlivy/selectBOOrdrDlivyProcsRegistForm", dlivyVO),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
model.addAttribute("paramVO", dlivyVO);
|
||||
|
||||
return "mngr/ordr/dlivy/OrdrDlivyProcsPopupC";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 주문 출고 처리 등록
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/insertOrdrDlivyProcsRegist", method = RequestMethod.POST)
|
||||
public String insertOrdrDlivyProcsRegist(DlivyVO dlivyVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
dlivyVO.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/dlivy/updateBOOrdrDlivyProcsUpdt", dlivyVO),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/ordr/dlivy/OrdrDlivyProcsRsltPopupR";
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 배송 그룹 방법 변경 팝업 이동
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectDlvyGroupMthChngPopupForm")
|
||||
public String selectDlvyGroupMthChngPopupForm(DlivyVO dlivyVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
dlivyVO.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/dlivy/selectBODlvyGroupDtlForm", dlivyVO),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
|
||||
return "mngr/ordr/dlivy/DlvyGroupMthChngPopupU";
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 배송 그룹 방법 변경 수정
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateDlvyGroupMthChngUpdt", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updateDlvyGroupMthChngUpdt(@Validated DlivyVO dlivyVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
dlivyVO.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/dlivy/updateBODlvyGroupMthChngUpdt", dlivyVO),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 주문 배송 내역 조회 팝업
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectOrdrDlvyDtlsInqire")
|
||||
public String selectOrdrDlvyDtlsInqire(DlivyVO dlivyVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
dlivyVO.setSopmalCd(authSopmalCd);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/dlivy/selectBOOrdrDlvyDtlsInqire", dlivyVO),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
model.addAttribute("paramVO", dlivyVO);
|
||||
|
||||
return "mngr/ordr/dlivy/OrdrDlvyDtlsInqireR";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 구매 확정 상태 수정
|
||||
* @param dlivyVO
|
||||
* @param bindingResult
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updatePurchsDcsnSttusUpdt", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> updatePurchsDcsnSttusUpdt(@Validated DlivyVO dlivyVO, BindingResult bindingResult, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
dlivyVO.setSopmalCd(authSopmalCd);
|
||||
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/dlivy/updateBOPurchsDcsnSttusUpdt", dlivyVO),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 구매 확정 처리 로그 내역 팝업
|
||||
* @return
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectPurchsDcsnProcsLogDtlsPopupForm")
|
||||
public String selectPurchsDcsnProcsLogDtlsPopupForm(DlivyVO dlivyVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
dlivyVO.setSopmalCd(authSopmalCd);
|
||||
log.debug("구매 확정 상태 수정 vo 확인 {}", dlivyVO);
|
||||
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/dlivy/selectBOPurchsDcsnLog", dlivyVO),
|
||||
model,
|
||||
"resultMap"
|
||||
);
|
||||
model.addAttribute("paramVO", dlivyVO);
|
||||
|
||||
return "mngr/ordr/dlivy/PurchsDcsnProcsLogDtlsPopupR";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,142 @@
|
||||
package com.wb.domainserver.domain.mngr.ordr.dlivy.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class DlivySrchVO extends AbstractVO{
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
||||
/** 출고 고유번호 목록 */
|
||||
private String[] dlivyInnbArr;
|
||||
|
||||
private String dlivyInnbs;
|
||||
|
||||
private String[] ordrInnbArr;
|
||||
|
||||
/** 주문 고유번호들 */
|
||||
private String ordrInnbs;
|
||||
|
||||
private String popupDvCd;
|
||||
|
||||
/**상세 내용*/
|
||||
public String dtlCn;
|
||||
/**주문 배송 추적 고유번호*/
|
||||
public String ordrDlvyTraceInnb;
|
||||
/**쇼핑몰 코드*/
|
||||
public String sopmalCd;
|
||||
/**검색어*/
|
||||
public String srchStr;
|
||||
/**검색구분*/
|
||||
public String srchDv;
|
||||
/**검색시작일*/
|
||||
public String srchStrtDt;
|
||||
/**검색종료일*/
|
||||
public String srchEndDt;
|
||||
/**주문상태코드*/
|
||||
public String srchOrdrSttus;
|
||||
/**구매확정여부*/
|
||||
public String[] srchPurchAt;
|
||||
|
||||
|
||||
//택배정보
|
||||
private String srchDlvyGroupCd;
|
||||
//운송장번호
|
||||
private String srchInvcnb;
|
||||
|
||||
|
||||
// 검색 조건
|
||||
|
||||
/** 검색_검색어 */
|
||||
private String srchKeyword;
|
||||
/** 검색_날짜_구분 */
|
||||
private String srchDtDv;
|
||||
/** 검색_시작일 */
|
||||
private String srchStartDate;
|
||||
/** 검색_종료일 */
|
||||
private String srchEndDate;
|
||||
/** 검색_주문_상태 */
|
||||
private String[] srchStatus;
|
||||
/** 검색_배송방법 */
|
||||
private String[] srchDlvyMth;
|
||||
/** 검색_택배사코드 */
|
||||
private String srchHdrycpnCd;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
|
||||
|
||||
|
||||
/**검색 목록*/
|
||||
private String srchList;
|
||||
|
||||
/**검색어*/
|
||||
private String srchwrd;
|
||||
|
||||
/**날짜 검색 목록*/
|
||||
private String srchDate;
|
||||
|
||||
|
||||
|
||||
/** 주문상태코드리스트
|
||||
* 주문접수(15), 결제확인(25), 상품준비(35),
|
||||
* 배송중(65), 배송완료(75),
|
||||
* 결제취소(85), 주문무효(95), 결제실패(99) */
|
||||
private String[] srchOrdrSttusCds;
|
||||
|
||||
/** 주문 상태 코드 */
|
||||
private String srchOrdrSttusCd;
|
||||
|
||||
/** 주문타입코드 일반주문, 관리자주문, 개인결제, 선물하기 */
|
||||
private String ordrTyCd;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
####################################
|
||||
전체 주문 조회 검색 추가 조건 시작
|
||||
####################################
|
||||
*/
|
||||
private String srchwrdDv; // 검색어 구분
|
||||
|
||||
private String srchStrInnb; // 매장 고유번호
|
||||
|
||||
private String srchDateDv; // 일자구분
|
||||
|
||||
private String srchImprtncOrdr; // 중요여부(중요)
|
||||
|
||||
private String srchNonImprtncOrdr; // 중요여부(비중요)
|
||||
|
||||
private String[] srchOrdrEnvrnCds; // 주문환경 코드
|
||||
|
||||
private String srchResveSndngDvCd; // 예약배송구분
|
||||
|
||||
private String srchHopDlvyStartDate; // 희망배송일 시작일자
|
||||
|
||||
private String srchHopDlvyEndDate; // 희망배송일 종료일자
|
||||
|
||||
private String[] srchDlvyMthCds; // 배송방법 코드
|
||||
|
||||
private String[] srchOrdrTyCds; // 주문유형 코드
|
||||
|
||||
private long srchExcelDwldFormSnb; // 엑셀다운로드양식순번
|
||||
|
||||
private String srchExcelDwldDvCd; // 엑셀다운로드 대상 구분 코드
|
||||
|
||||
private String[] srchOrdrInnbs; // 주문번호 배열
|
||||
|
||||
private String srchDatePeriod; // 날짜구간코드
|
||||
|
||||
|
||||
private String srchPurchsSttusC;// 구매 확정 상태
|
||||
|
||||
private String srchPurchsSttusS;// 구매 확정 상태
|
||||
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.wb.domainserver.domain.mngr.ordr.dlivy.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class DlivyUpdtItemVO extends AbstractVO{
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
||||
private String ordrGoodsOptnInnb;
|
||||
|
||||
private String optnTy;
|
||||
|
||||
private String sopmalCd;
|
||||
|
||||
private String ordrDlvyInnb;
|
||||
|
||||
private String dlivyInnb;
|
||||
|
||||
private String qy;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
package com.wb.domainserver.domain.mngr.ordr.dlivy.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 DlivyUpdtVO extends AbstractVO{
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
||||
/** 출고고유번호 배열 */
|
||||
private String[] dlivyInnbArr;
|
||||
|
||||
|
||||
private String[] ordrDlvyInnbArr;
|
||||
|
||||
/** 주문 배송 고유번호 */
|
||||
private String ordrDlvyInnb;
|
||||
|
||||
/** 보낼 수량 */
|
||||
private String sndngQy;
|
||||
|
||||
|
||||
/**출고고유번호*/
|
||||
private String dlivyInnb;
|
||||
/**주문고유번호*/
|
||||
private String ordrInnb;
|
||||
|
||||
private String sopmalCd;
|
||||
/**출고준비(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;
|
||||
|
||||
|
||||
/** 출고 처리할 주분 배송 상품 옵션 VO */
|
||||
private List<DlivyUpdtItemVO> dlivyUpdtItemVOList;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
package com.wb.domainserver.domain.mngr.ordr.dlivy.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 DlivyVO extends AbstractVO{
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
||||
/** 출고고유번호 배열 */
|
||||
private String[] dlivyInnbArr;
|
||||
|
||||
|
||||
/** 주문 고유번호들 */
|
||||
private String[] ordrInnbs;
|
||||
|
||||
|
||||
/**쇼핑몰코드*/
|
||||
private String sopmalCd;
|
||||
/**출고고유번호*/
|
||||
private String dlivyInnb;
|
||||
/**주문고유번호*/
|
||||
private String ordrInnb;
|
||||
/**주문배송고유번호*/
|
||||
private String ordrDlvyInnb;
|
||||
/**출고코드번호*/
|
||||
private String dlivyCdNb;
|
||||
/**출고준비(45), 출고완료(55), 배송중(65), 배송완료(75)*/
|
||||
private String dlivySttusCd;
|
||||
/**상태변경일시*/
|
||||
private String sttusUpdtDt;
|
||||
/**택배사코드*/
|
||||
private String hdrycpnCd;
|
||||
/**송장번호*/
|
||||
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 recpntNm;
|
||||
/** 주문자명 */
|
||||
private String ordrrNm;
|
||||
|
||||
|
||||
/** 배송방법코드 */
|
||||
private String dlvyMthCd;
|
||||
|
||||
|
||||
|
||||
List<DlivyUpdtVO> dlivyUpdtVOList;
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
package com.wb.domainserver.domain.mngr.ordr.dlivy.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 ReqVO extends AbstractVO{
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
||||
/** 출고고유번호 배열 */
|
||||
private String[] dlivyInnbArr;
|
||||
|
||||
|
||||
/** 주문 고유번호들 */
|
||||
private String[] ordrInnbs;
|
||||
|
||||
|
||||
/**쇼핑몰코드*/
|
||||
private String sopmalCd;
|
||||
/**출고고유번호*/
|
||||
private String dlivyInnb;
|
||||
/**주문고유번호*/
|
||||
private String ordrInnb;
|
||||
/**주문배송고유번호*/
|
||||
private String ordrDlvyInnb;
|
||||
/**출고코드번호*/
|
||||
private String dlivyCdNb;
|
||||
/**출고준비(45), 출고완료(55), 배송중(65), 배송완료(75)*/
|
||||
private String dlivySttusCd;
|
||||
/**상태변경일시*/
|
||||
private String sttusUpdtDt;
|
||||
/**택배사코드*/
|
||||
private String hdrycpnCd;
|
||||
/**송장번호*/
|
||||
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 recpntNm;
|
||||
/** 주문자명 */
|
||||
private String ordrrNm;
|
||||
|
||||
|
||||
/** 배송방법코드 */
|
||||
private String dlvyMthCd;
|
||||
|
||||
|
||||
|
||||
List<DlivyUpdtVO> dlivyUpdtVOList;
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,215 @@
|
||||
package com.wb.domainserver.domain.mngr.ordr.indvdlSetle.controller;
|
||||
|
||||
import com.wb.domainserver.common.msg.GconeMessageSource;
|
||||
import com.wb.domainserver.domain.mngr.ordr.indvdlSetle.vo.IndvdlSetleSrchVO;
|
||||
import com.wb.domainserver.domain.mngr.ordr.indvdlSetle.vo.IndvdlSetleVO;
|
||||
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 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.CookieValue;
|
||||
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;
|
||||
|
||||
/*
|
||||
* 통합관리자 > 개인결제 FO Controller
|
||||
* @author 김혜인
|
||||
* @since 2024-02-19
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2024-02-19 김혜인. 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Controller
|
||||
@RequestMapping("/mngr/ordr/indvdlSetle")
|
||||
@Slf4j
|
||||
public class IndvdlSetleController {
|
||||
|
||||
|
||||
/** WebClient 호출을 위한 wrapper */
|
||||
@Autowired
|
||||
private WnbtWebClientResponseHandler responseHandler;
|
||||
|
||||
/** WebClient 호출을 위한 wrapper */
|
||||
@Autowired
|
||||
private SendToResrc sendToResrc;
|
||||
|
||||
/** 공통 메시지 처리를 위한 메시지 객체 */
|
||||
@Autowired
|
||||
private GconeMessageSource gconeMessageSource;
|
||||
|
||||
/**
|
||||
* 관리자 > 주문 > 개인결제관리 > 개인 결제 목록 화면 이동
|
||||
* @return IndvdlSetleListInqireRForm.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectIndvdlSetleListInqireForm")
|
||||
public String selectIndvdlSetleListInqireForm(ModelMap model, IndvdlSetleSrchVO indvdlSetleSrchVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
model.addAttribute("sopmalCd", authSopmalCd);
|
||||
|
||||
return "mngr/ordr/indvdlSetle/IndvdlSetleListInqireRForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 관리자 > 주문 > 개인결제관리 > 개인 결제 목록
|
||||
* @param model
|
||||
* @return IndvdlSetleListInqireR.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectIndvdlSetleListInqire")
|
||||
public String selectIndvdlSetleListInqireModelMap(ModelMap model, IndvdlSetleSrchVO indvdlSetleSrchVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
indvdlSetleSrchVO.setSopmalCd(authSopmalCd);
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOIndvdlSetleListInqire", indvdlSetleSrchVO),
|
||||
model,
|
||||
"data"
|
||||
);
|
||||
|
||||
return "mngr/ordr/indvdlSetle/IndvdlSetleListInqireR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 관리자 > 주문 > 개인결제관리 > 개인 결제 상세 팝업
|
||||
* @param model
|
||||
* @return IndvdlSetleDtlInqirePopupR.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectIndvdlSetleDtlInqire")
|
||||
public String selectIndvdlSetleDtlInqire(ModelMap model, IndvdlSetleSrchVO indvdlSetleVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
indvdlSetleVO.setSopmalCd(authSopmalCd);
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOIndvdlSetleDtlInqire", indvdlSetleVO),
|
||||
model,
|
||||
"data"
|
||||
);
|
||||
|
||||
return "mngr/ordr/indvdlSetle/IndvdlSetleDtlInqirePopupR";
|
||||
}
|
||||
|
||||
/**
|
||||
* 관리자 > 주문 > 개인결제관리 > 개인 결제 등록 화면 이동
|
||||
* @param model
|
||||
* @return IndvdlSetleRegistFormC.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectIndvdlSetleRegistForm")
|
||||
public String selectIndvdlSetleRegistForm(ModelMap model, IndvdlSetleVO indvdlSetleVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
indvdlSetleVO.setSopmalCd(authSopmalCd);
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/insertBOIndvdlSetleRegistForm", indvdlSetleVO),
|
||||
model,
|
||||
"data"
|
||||
);
|
||||
model.addAttribute("paramVO", indvdlSetleVO);
|
||||
|
||||
return "mngr/ordr/indvdlSetle/IndvdlSetleRegistFormC";
|
||||
}
|
||||
|
||||
/**
|
||||
* 관리자 > 주문 > 개인결제관리 > 개인 결제 등록
|
||||
* @param param
|
||||
* @return ResponseEntity<WnbtResponse>
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/insertIndvdlSetleRegist", method = RequestMethod.POST)
|
||||
public ResponseEntity<WnbtResponse> insertIndvdlSetleRegist(@RequestBody HashMap<String, Object> param, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
param.put("sopmalCd", authSopmalCd);
|
||||
//결제플랫폼 구분코드
|
||||
param.put("deviceType", "P");
|
||||
log.debug("param.get(deviceType) {}", param.get("deviceType"));
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/insertBOIndvdlSetleRegist", param),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 관리자 > 주문 > 개인결제관리 > 개인 결제 수정 화면 이동
|
||||
* @param indvdlSetleVO
|
||||
* @return IndvdlSetleUpdateFormU.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectIndvdlSetleUpdateForm")
|
||||
public String selectIndvdlSetleUpdateForm(ModelMap model, IndvdlSetleVO indvdlSetleVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
indvdlSetleVO.setSopmalCd(authSopmalCd);
|
||||
responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/selectBOIndvdlSetleUpdateForm", indvdlSetleVO),
|
||||
model,
|
||||
"data"
|
||||
);
|
||||
|
||||
return "mngr/ordr/indvdlSetle/IndvdlSetleUpdateFormU";
|
||||
}
|
||||
|
||||
/**
|
||||
* 관리자 > 주문 > 개인결제관리 > 개인 결제 수정
|
||||
* @param param
|
||||
* @return ResponseEntity<WnbtResponse>
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/updateIndvdlSetleUpdt")
|
||||
public ResponseEntity<WnbtResponse> updateIndvdlSetleUpdt(@RequestBody HashMap<String, Object> param, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
param.put("sopmalCd", authSopmalCd);
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/updateBOIndvdlSetleUpdt",param),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 관리자 > 주문 > 개인결제관리 > 개인 결제 삭제
|
||||
* @param indvdlSetleVO
|
||||
* @return ResponseEntity<WnbtResponse>
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/deleteIndvdlSetle")
|
||||
public ResponseEntity<WnbtResponse> updateImprtncOrdrAt(IndvdlSetleVO indvdlSetleVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
indvdlSetleVO.setSopmalCd(authSopmalCd);
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/deleteBOIndvdlSetle",indvdlSetleVO),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 관리자 > 주문 > 개인결제관리 > 개인 결제 링크 발송
|
||||
* @param indvdlSetleVO
|
||||
* @return ResponseEntity<WnbtResponse>
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/insertSetleLinkMsg")
|
||||
public ResponseEntity<WnbtResponse> insertSetleLinkMsg(IndvdlSetleVO indvdlSetleVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
|
||||
indvdlSetleVO.setSopmalCd(authSopmalCd);
|
||||
return responseHandler.handleResponse(
|
||||
sendToResrc.ofPost(RESRC.GCONEBO, "/gcone/ordr/ordr/insertBOSetleLinkMsg",indvdlSetleVO),
|
||||
ReplyFromResrc::getReply
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.wb.domainserver.domain.mngr.ordr.indvdlSetle.vo;
|
||||
|
||||
import com.wb.domainserver.domain.comm.vo.AbstractVO;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
public class IndvdlSetleSrchVO extends AbstractVO {
|
||||
private static final long serialVersionUID = 1L;
|
||||
/** 쇼핑몰 코드*/
|
||||
private String sopmalCd;
|
||||
|
||||
/** 주문 고유번호 */
|
||||
private String ordrInnb;
|
||||
|
||||
/** 검색 구분*/
|
||||
private String srchDvCd;
|
||||
|
||||
/** 검색어 */
|
||||
private String srchStr;
|
||||
|
||||
/** 등록일 검색 시작일*/
|
||||
private String srchStrtRegDt;
|
||||
|
||||
/** 등록일 검색 종료일*/
|
||||
private String srchEndRegDt;
|
||||
|
||||
/** 유효기간 검색 시작일*/
|
||||
private String srchStrtValidDt;
|
||||
|
||||
/** 유효기간 검색 종료일*/
|
||||
private String srchEndValidDt;
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user