fix : 관리자 구독서비스 상품준비 관리
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
package com.wb.domainserver.domain.gcone.ordr.subsvc.mapper;
|
||||
|
||||
import com.wb.domainserver.domain.gcone.ordr.subsvc.vo.BOSubsvcOrderVO;
|
||||
import com.wb.domainserver.util.dataaccess.DataMap;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* 구독서비스 주문 BO mapper
|
||||
* @author jazz
|
||||
* @since 2026-02-04
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2026-02-04 jazz 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Mapper
|
||||
@Repository
|
||||
public interface BOSubsvcOrdrMapper {
|
||||
|
||||
/** 구독서비스 상품준비 관리 목록*/
|
||||
List<DataMap> selectBOSubsvcOrderList(BOSubsvcOrderVO vo);
|
||||
/** 구독서비스 상품준비 관리 목록 배송내역 팝업 배송내역목록*/
|
||||
List<DataMap> selectBOSubsvcOrderDlvyList(BOSubsvcOrderVO vo);
|
||||
/** 구독서비스 상품준비 관리 상품매칭 - 1. GC_ORDER update*/
|
||||
int updateBOSubsvcGoodsMappgOrdr(BOSubsvcOrderVO vo);
|
||||
/** 구독서비스 상품준비 관리 상품매칭 - 2. GC_ORDER_ITEM update*/
|
||||
int updateBOSubsvcGoodsMappgOrdrItem(BOSubsvcOrderVO vo);
|
||||
/** 구독서비스 상품준비 관리 상품매칭 - 3. GC_ORDER_ITEM_OPTION update*/
|
||||
int updateBOSubsvcGoodsMappgOrdrItemOptn(BOSubsvcOrderVO vo);
|
||||
/** 구독서비스 상품준비 관리 상품매칭 - 4. GC_ORDER_SHIPPING update*/
|
||||
int updateBOSubsvcGoodsMappgShipping(BOSubsvcOrderVO vo);
|
||||
/** 구독서비스 상품준비 관리 상품매칭 - 5. GC_SUBSVC update*/
|
||||
int updateBOSubsvcGoodsMappgSubsvc(BOSubsvcOrderVO vo);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,169 @@
|
||||
package com.wb.domainserver.domain.gcone.ordr.subsvc.service;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.nimbusds.jose.shaded.gson.Gson;
|
||||
import com.wb.domainserver.common.prop.PropertyService;
|
||||
import com.wb.domainserver.domain.admin.instcSle.mtng.mapper.BOMaMtngMapper;
|
||||
import com.wb.domainserver.domain.admin.store.sopmal.mapper.BOMaSopmalMapper;
|
||||
import com.wb.domainserver.domain.admin.sys.comncd.service.BOMaComncdService;
|
||||
import com.wb.domainserver.domain.admin.sys.comncd.vo.BOMaComncdVO;
|
||||
import com.wb.domainserver.domain.gcone.goods.goods.service.BOGoodsService;
|
||||
import com.wb.domainserver.domain.gcone.goods.purchs.mapper.BOPurchsMapper;
|
||||
import com.wb.domainserver.domain.gcone.goods.purchs.service.BOOrderNoService;
|
||||
import com.wb.domainserver.domain.gcone.goods.purchs.service.BOOrderService;
|
||||
import com.wb.domainserver.domain.gcone.goods.purchs.service.BOPurchsService;
|
||||
import com.wb.domainserver.domain.gcone.goods.purchs.vo.*;
|
||||
import com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO;
|
||||
import com.wb.domainserver.domain.gcone.mbr.mbr.mapper.BOMbrMapper;
|
||||
import com.wb.domainserver.domain.gcone.mbr.mbr.service.BOMbrService;
|
||||
import com.wb.domainserver.domain.gcone.mbr.mbr.vo.BOMbrAppnVO;
|
||||
import com.wb.domainserver.domain.gcone.mbr.mbr.vo.BOMbrVO;
|
||||
import com.wb.domainserver.domain.gcone.mbr.mlg.service.BOMlgService;
|
||||
import com.wb.domainserver.domain.gcone.mbr.mlg.vo.BOCashVO;
|
||||
import com.wb.domainserver.domain.gcone.mbr.mlg.vo.BOMlgVO;
|
||||
import com.wb.domainserver.domain.gcone.ntcn.mssage.service.BOMssageService;
|
||||
import com.wb.domainserver.domain.gcone.ordr.ordr.mapper.BOOrdrMapper;
|
||||
import com.wb.domainserver.domain.gcone.ordr.ordr.service.BOOrderCommonService;
|
||||
import com.wb.domainserver.domain.gcone.ordr.ordr.service.BOOrdrLogService;
|
||||
import com.wb.domainserver.domain.gcone.ordr.ordr.vo.*;
|
||||
import com.wb.domainserver.domain.gcone.ordr.pay.service.BOPayService;
|
||||
import com.wb.domainserver.domain.gcone.ordr.pay.vo.BOPayVO;
|
||||
import com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.mapper.BORtngudrefndMapper;
|
||||
import com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.service.BORtngudrefndService;
|
||||
import com.wb.domainserver.domain.gcone.ordr.rtngudrefnd.vo.BORtngudrefndVO;
|
||||
import com.wb.domainserver.domain.gcone.ordr.selngpruf.service.BOSelngprufService;
|
||||
import com.wb.domainserver.domain.gcone.ordr.selngpruf.vo.BOSelngprufVO;
|
||||
import com.wb.domainserver.domain.gcone.ordr.subsvc.mapper.BOSubsvcOrdrMapper;
|
||||
import com.wb.domainserver.domain.gcone.ordr.subsvc.vo.BOSubsvcOrderVO;
|
||||
import com.wb.domainserver.domain.gcone.promtn.coupon.service.BOCouponService;
|
||||
import com.wb.domainserver.domain.gcone.promtn.coupon.vo.BODwldCouponVO;
|
||||
import com.wb.domainserver.domain.gcone.setup.site.service.BOSiteService;
|
||||
import com.wb.domainserver.domain.gcone.setup.site.vo.BOGoodsgrpVO;
|
||||
import com.wb.domainserver.domain.gcone.setup.site.vo.BOSiteVO;
|
||||
import com.wb.domainserver.exception.WnbtException;
|
||||
import com.wb.domainserver.exception.WnbtRestException;
|
||||
import com.wb.domainserver.security.authentication.AnonymousUser;
|
||||
import com.wb.domainserver.security.authentication.MemberJwtContextHolder;
|
||||
import com.wb.domainserver.util.dataaccess.DataMap;
|
||||
import com.wb.domainserver.util.string.StringUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Propagation;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.ObjectUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigInteger;
|
||||
import java.math.RoundingMode;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.OffsetDateTime;
|
||||
import java.time.ZoneOffset;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.format.DateTimeParseException;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
*
|
||||
* 구독서비스주문 BO service
|
||||
* @author jazz
|
||||
* @since 2026-02-05
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2026-02-05 jazz 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class BOSubsvcOrdrService {
|
||||
@Autowired
|
||||
private BOSubsvcOrdrMapper mapper;
|
||||
|
||||
/**
|
||||
* 구독서비스 상품준비 관리 목록
|
||||
* @param
|
||||
* @return List<DataMap>
|
||||
*/
|
||||
public List<DataMap> selectBOSubsvcOrderList(BOSubsvcOrderVO vo) {
|
||||
List<DataMap> dataList = new ArrayList<>();
|
||||
|
||||
try {
|
||||
dataList = mapper.selectBOSubsvcOrderList(vo);
|
||||
}catch(Exception e){
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
if(dataList == null || dataList.isEmpty()){
|
||||
vo.getPaginationInfo().setTotalRecordCount(0);
|
||||
}else{
|
||||
vo.getPaginationInfo().setTotalRecordCount(((Long)dataList.get(0).get("totCnt")).intValue());
|
||||
}
|
||||
|
||||
return dataList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 구독서비스 상품준비 관리 목록 배송내역 팝업 배송내역목록
|
||||
* @param
|
||||
* @return List<DataMap>
|
||||
*/
|
||||
public List<DataMap> selectBOSubsvcOrderDlvyList(BOSubsvcOrderVO vo) {
|
||||
List<DataMap> dataList = new ArrayList<>();
|
||||
dataList = mapper.selectBOSubsvcOrderDlvyList(vo);
|
||||
return dataList;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 선택대상 상품준비 일괄처리
|
||||
* 구독서비스 상품준비 일괄처리
|
||||
* 1. GC_ORDER 주문상태를 결제확인(25)만 상품준비중(35)로 변경(25가 아니면 UPDT_DT만 변경)
|
||||
* 2. GC_ORDER_ITEM의 상품고유번호(GOODS_INNB), 상품이지지경로(GOODS_IMG_COURS), 상품명(GOODS_NM)를 변경
|
||||
* 3. GC_ORDER_ITEM_OPTION의 상품옵셥 고유번호(GOODS_OPTN_INNB), 주문상태(GOODS_STTUS_CD)를 결제확인(25)=>상품준비중(35), 옵션명1(OPTN_NM_1) 부터 GC_GOODS_OPTION과 동일한 컬럼 매칭
|
||||
* 4. GC_ORDER_SHIPPING의 주문배송고유번호(ORDR_DLVY_INNB)가 같은 대상의 주문상태(GOODS_STTUS_CD)를 결제확인(25)=>상품준비중(35)
|
||||
* 5. GC_SUBSVC의 최종처리차수(LAST_PROCS_DGR)를 수정 (주문상품옵션에 주문별 처리차수중 가능 큰처리차수(35~75까지 COUNT해서 가장 큰수)를 등록)
|
||||
* */
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public String updateSubsvcOrdrReady(BOSubsvcOrderVO vo) {
|
||||
String message = "success";
|
||||
/*1. GC_ORDER*/
|
||||
int result = mapper.updateBOSubsvcGoodsMappgOrdr(vo);
|
||||
if (!(result > 0)) {
|
||||
log.error("GC_ORDER UPDATE 오류");
|
||||
throw new WnbtException("500","GC_ORDER UPDATE 오류");
|
||||
}
|
||||
result = mapper.updateBOSubsvcGoodsMappgOrdrItem(vo);
|
||||
if (!(result > 0)) {
|
||||
log.error("GC_ORDER_ITEM UPDATE 오류");
|
||||
throw new WnbtException("500","GC_ORDER_ITEM UPDATE 오류");
|
||||
}
|
||||
result = mapper.updateBOSubsvcGoodsMappgOrdrItemOptn(vo);
|
||||
if (!(result > 0)) {
|
||||
log.error("GC_ORDER_ITEM_OPTION UPDATE 오류");
|
||||
throw new WnbtException("500","GC_ORDER_ITEM_OPTION UPDATE 오류");
|
||||
}
|
||||
result = mapper.updateBOSubsvcGoodsMappgShipping(vo);
|
||||
if (!(result > 0)) {
|
||||
log.error("GC_ORDER_SHIPPING UPDATE 오류");
|
||||
throw new WnbtException("500","GC_ORDER_SHIPPING UPDATE 오류");
|
||||
}
|
||||
result = mapper.updateBOSubsvcGoodsMappgSubsvc(vo);
|
||||
if (!(result > 0)) {
|
||||
log.error("GC_SUBSVC 처리중 오류");
|
||||
throw new WnbtException("500","GC_SUBSVC 처리중 오류");
|
||||
}
|
||||
return message;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
package com.wb.domainserver.domain.gcone.ordr.subsvc.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 BOSubsvcOrderVO extends AbstractVO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 구독서비스고유번호 */
|
||||
private String subsvcInnb;
|
||||
/** 쇼핑몰코드 */
|
||||
private String sopmalCd;
|
||||
/** 구독서비스명 */
|
||||
private String subsvcNm;
|
||||
/** 구독기간 */
|
||||
private String subPd;
|
||||
/** 구독서비스기수 */
|
||||
private String subsvcGnr;
|
||||
/** 구독서비스명 다음기수 */
|
||||
private String subsvcNextGnr;
|
||||
/** 구독서비스기수명 */
|
||||
private String subsvcGnrNm;
|
||||
/** 주문고유번호 */
|
||||
private String ordrInnb;
|
||||
/** 주문상품고유번호 */
|
||||
private String ordrGoodsInnb;
|
||||
/** 주문상품옵션고유번호 */
|
||||
private String ordrGoodsOptnInnb;
|
||||
|
||||
|
||||
/** 출고상품고유번호*/
|
||||
private String goodsInnb;
|
||||
/** 출고상품옵션고유번호*/
|
||||
private String goodsOptnInnb;
|
||||
/** 출고상품옵션구분*/
|
||||
private String optnTy;
|
||||
|
||||
/** 상품준비대상*/
|
||||
private List<String> arrCheck;
|
||||
/** 상품준비대상 주문고유번호*/
|
||||
private List<String> arrOrdrInnb;
|
||||
/** 상품준비대상 주문상품고유번호*/
|
||||
private List<String> arrOrdrGoodsInnb;
|
||||
/** 상품준비대상 주문상품옵션고유번호*/
|
||||
private List<String> arrOrdrGoodsOptnInnb;
|
||||
/** 상품준비대상 주문고유번호*/
|
||||
private List<String> arrOrdrDlvyInnb;
|
||||
|
||||
/** 검색조건 */
|
||||
/** 구독서비스명 selectbox*/
|
||||
private String srchSelSubsvcNm;
|
||||
/** 구독서비스명 */
|
||||
private String srchSubsvcNm;
|
||||
/** 구독서비스기수 select */
|
||||
private String srchSelSubsvcGnr;
|
||||
/** 구독서비스기수명 */
|
||||
private String srchSubsvcGnrNm;
|
||||
/** 정렬구분 */
|
||||
private String sortDv;
|
||||
/** 배열 구독서비스고유번호 */
|
||||
private List<String> arrSubsvcInnb;
|
||||
/**당월제외*/
|
||||
private String srchCurMonExclude;
|
||||
}
|
||||
@@ -86,7 +86,7 @@ public class SubsvcController {
|
||||
@Value("${mngrfo.common.subsvc.dft-goods-optn-innb}")
|
||||
private String dftGoodsOptnInnb;
|
||||
@Autowired
|
||||
private BOSubsvcService service;
|
||||
private BOSubsvcService boSubsvcService;
|
||||
@Autowired
|
||||
private BOCommonService commonService;
|
||||
@Autowired
|
||||
@@ -112,7 +112,7 @@ public class SubsvcController {
|
||||
content.put("paramVO", vo);
|
||||
|
||||
// 조회조건 구독서비스
|
||||
List<?> SrchSubsvcList = service.selectBOMngrSrchSubsvcList(vo);
|
||||
List<?> SrchSubsvcList = boSubsvcService.selectBOMngrSrchSubsvcList(vo);
|
||||
content.put("srchSubsvcList", SrchSubsvcList);
|
||||
|
||||
//조회조건 판매상태
|
||||
@@ -148,7 +148,7 @@ public class SubsvcController {
|
||||
content.put("paramVO", vo);
|
||||
|
||||
// 구독서비스 상세조회
|
||||
DataMap subsvcDtl = service.selectBOSubsvcDetail(vo);
|
||||
DataMap subsvcDtl = boSubsvcService.selectBOSubsvcDetail(vo);
|
||||
content.put("subsvcDtl", subsvcDtl);
|
||||
|
||||
//판매상태
|
||||
@@ -210,7 +210,7 @@ public class SubsvcController {
|
||||
//파일 업로드 관련 END
|
||||
|
||||
Map<String, Object> message = new HashMap<>();
|
||||
String result = service.updateBOMngrSubsvc(vo);
|
||||
String result = boSubsvcService.updateBOMngrSubsvc(vo);
|
||||
message.put("message",result);
|
||||
|
||||
return ResponseEntity.ok(
|
||||
@@ -238,7 +238,7 @@ public class SubsvcController {
|
||||
content.put("paramVO", vo);
|
||||
|
||||
// 구독서비스 상세조회
|
||||
DataMap subsvcDtl = service.selectBOSubsvcDetail(vo);
|
||||
DataMap subsvcDtl = boSubsvcService.selectBOSubsvcDetail(vo);
|
||||
content.put("subsvcDtl", subsvcDtl);
|
||||
|
||||
//판매상태
|
||||
@@ -303,7 +303,7 @@ public class SubsvcController {
|
||||
vo.setDftGoodsOptnInnb(dftGoodsOptnInnb);
|
||||
|
||||
Map<String, Object> message = new HashMap<>();
|
||||
String result = service.insertBOMngrSubsvc(vo);
|
||||
String result = boSubsvcService.insertBOMngrSubsvc(vo);
|
||||
message.put("message",result);
|
||||
|
||||
return ResponseEntity.ok(
|
||||
@@ -345,7 +345,7 @@ public class SubsvcController {
|
||||
}
|
||||
|
||||
// 목록 조회
|
||||
List<DataMap> list = service.selectBOMngrSubsvcList(vo);
|
||||
List<DataMap> list = boSubsvcService.selectBOMngrSubsvcList(vo);
|
||||
|
||||
Map<String, Object> content = new HashMap<>();
|
||||
content.put("paramVO", vo);
|
||||
@@ -373,7 +373,7 @@ public class SubsvcController {
|
||||
}
|
||||
|
||||
DataMap message = new DataMap();
|
||||
String result = service.selectBOMngrSubsvcNmDupCheck(vo);
|
||||
String result = boSubsvcService.selectBOMngrSubsvcNmDupCheck(vo);
|
||||
message.put("message", result);
|
||||
|
||||
return ResponseEntity.ok(
|
||||
@@ -401,7 +401,7 @@ public class SubsvcController {
|
||||
}
|
||||
|
||||
DataMap message = new DataMap();
|
||||
String result = service.deleteBOMngrSubsvc(vo);
|
||||
String result = boSubsvcService.deleteBOMngrSubsvc(vo);
|
||||
message.put("message", result);
|
||||
|
||||
return ResponseEntity.ok(
|
||||
@@ -429,7 +429,7 @@ public class SubsvcController {
|
||||
Map<String, Object> content = new HashMap<>();
|
||||
|
||||
// 조회조건 구독서비스
|
||||
List<DataMap> SrchSubsvcGnrList = service.selectBOMngrSrchSubsvcGnrList(vo);
|
||||
List<DataMap> SrchSubsvcGnrList = boSubsvcService.selectBOMngrSrchSubsvcGnrList(vo);
|
||||
content.put("srchSubsvcGnrList", SrchSubsvcGnrList);
|
||||
|
||||
return ResponseEntity.ok(
|
||||
|
||||
@@ -0,0 +1,251 @@
|
||||
package com.wb.domainserver.domain.mngr.ordr.subsvc.controller;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.wb.domainserver.common.msg.GconeMessageSource;
|
||||
import com.wb.domainserver.common.mvc.tags.ui.pagination.PaginationInfo;
|
||||
import com.wb.domainserver.common.prop.PaginationProperties;
|
||||
import com.wb.domainserver.domain.admin.store.sopmal.service.BOMaSopmalService;
|
||||
import com.wb.domainserver.domain.admin.sys.comncd.service.BOMaComncdService;
|
||||
import com.wb.domainserver.domain.admin.sys.comncd.vo.BOMaComncdVO;
|
||||
import com.wb.domainserver.domain.gcone.common.service.BOCommonService;
|
||||
import com.wb.domainserver.domain.gcone.goods.purchs.service.BOOrderService;
|
||||
import com.wb.domainserver.domain.gcone.goods.purchs.vo.BOOrderLogVO;
|
||||
import com.wb.domainserver.domain.gcone.goods.subsvc.service.BOSubsvcService;
|
||||
import com.wb.domainserver.domain.gcone.goods.subsvc.vo.BOSubsvcVO;
|
||||
import com.wb.domainserver.domain.gcone.ordr.ordr.service.BOOrdrService;
|
||||
import com.wb.domainserver.domain.gcone.ordr.ordr.vo.*;
|
||||
import com.wb.domainserver.domain.gcone.ordr.pay.vo.BOPayVO;
|
||||
import com.wb.domainserver.domain.gcone.ordr.subsvc.service.BOSubsvcOrdrService;
|
||||
import com.wb.domainserver.domain.gcone.ordr.subsvc.vo.BOSubsvcOrderVO;
|
||||
import com.wb.domainserver.domain.gcone.setup.dlvygrp.service.BODlvygrpService;
|
||||
import com.wb.domainserver.domain.gcone.setup.nbkk.service.BONbkkService;
|
||||
import com.wb.domainserver.domain.gcone.setup.nbkk.vo.BOSetupNbkkVO;
|
||||
import com.wb.domainserver.domain.mngr.ordr.ordrmngr.vo.DwldItmVO;
|
||||
import com.wb.domainserver.domain.mngr.ordr.ordrmngr.vo.OrdrShippingVO;
|
||||
import com.wb.domainserver.domain.mngr.ordr.ordrmngr.vo.OrdrSrchVO;
|
||||
import com.wb.domainserver.exception.WnbtRestException;
|
||||
import com.wb.domainserver.exception.code.ErrorCode;
|
||||
import com.wb.domainserver.response.WnbtResponse;
|
||||
import com.wb.domainserver.response.WnbtResponseBody;
|
||||
import com.wb.domainserver.response.WnbtWebClientResponseHandler;
|
||||
import com.wb.domainserver.security.authentication.AnonymousUser;
|
||||
import com.wb.domainserver.security.authentication.MemberJwtContextHolder;
|
||||
import com.wb.domainserver.security.authorization.annotation.AuthPolicy;
|
||||
import com.wb.domainserver.security.authorization.annotation.Policy;
|
||||
import com.wb.domainserver.util.communicate.SendToResrc;
|
||||
import com.wb.domainserver.util.communicate.ValidateResultConverter;
|
||||
import com.wb.domainserver.util.dataaccess.DataMap;
|
||||
import com.wb.domainserver.util.excel.ExcelDownloadUtil;
|
||||
import io.micrometer.common.util.StringUtils;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.ModelMap;
|
||||
import org.springframework.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 java.io.IOException;
|
||||
import java.math.BigInteger;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 구독서비스 주문 관리 Controller
|
||||
*
|
||||
* @author jazz
|
||||
* @since 2026-02-05
|
||||
* @version 1.0
|
||||
* @see
|
||||
*
|
||||
* <pre>
|
||||
* == (Modification Information) == 개정이력
|
||||
*
|
||||
* 수정일 수정자 수정내용
|
||||
* ------- -------- ---------------------------
|
||||
* 2026-02-05 jazz 최초 생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
|
||||
@Controller
|
||||
@RequestMapping("/mngr/ordr/subsvc")
|
||||
@Slf4j
|
||||
public class SubsvcOrdrController {
|
||||
|
||||
/** WebClient 호출을 위한 wrapper */
|
||||
@Autowired
|
||||
private WnbtWebClientResponseHandler responseHandler;
|
||||
|
||||
/** WebClient 호출을 위한 wrapper */
|
||||
@Autowired
|
||||
private SendToResrc sendToResrc;
|
||||
/** 공통 메시지 처리를 위한 메시지 객체 */
|
||||
@Autowired
|
||||
private GconeMessageSource gconeMessageSource;
|
||||
|
||||
@Autowired
|
||||
private BOSubsvcOrdrService boSubsvcOrdrService;
|
||||
|
||||
@Autowired
|
||||
private BOSubsvcService boSubsvcService;
|
||||
|
||||
@Autowired
|
||||
private PaginationProperties paginationProperties;
|
||||
|
||||
|
||||
/**
|
||||
* 구독서비스 상품준비 조회 폼
|
||||
* @param subsvcVO,subsvcOrderVO,model,authSopmalCd
|
||||
* @return SubsvcOrdrListForm.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value="/selectSubsvcOrdrListForm")
|
||||
public String selectSubsvcListForm(BOSubsvcVO subsvcVO, BOSubsvcOrderVO subsvcOrderVO, ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
subsvcVO.setSopmalCd(authSopmalCd);
|
||||
subsvcOrderVO.setSopmalCd(authSopmalCd);
|
||||
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
||||
if("01".equals(user.getSysDvCd())){
|
||||
subsvcVO.setSopmalCd(user.getSopmalCd());
|
||||
subsvcOrderVO.setSopmalCd(user.getSopmalCd());
|
||||
}
|
||||
|
||||
Map<String, Object> content = new HashMap<>();
|
||||
content.put("paramVO", subsvcOrderVO);
|
||||
|
||||
// 조회조건 구독서비스
|
||||
List<?> SrchSubsvcList = boSubsvcService.selectBOMngrSrchSubsvcList(subsvcVO);
|
||||
content.put("srchSubsvcList", SrchSubsvcList);
|
||||
|
||||
model.addAttribute("resultMap", content);
|
||||
return "mngr/ordr/subsvc/SubsvcOrdrListForm";
|
||||
}
|
||||
|
||||
/**
|
||||
* 구독서비스 상품준비 목록 조회 리스트
|
||||
* @param subsvcOrderVO
|
||||
* @param model
|
||||
* @return SubsvcOrdrList.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectSubsvcOrdrList")
|
||||
public String selectSubsvcList(BOSubsvcOrderVO subsvcOrderVO,ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
subsvcOrderVO.setSopmalCd(authSopmalCd);
|
||||
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
||||
if("01".equals(user.getSysDvCd())){
|
||||
subsvcOrderVO.setSopmalCd(user.getSopmalCd());
|
||||
}
|
||||
|
||||
// 페이징 객체 생성 & 페이징정보 할당
|
||||
PaginationInfo paginationInfo = new PaginationInfo();
|
||||
paginationInfo.setCurrentPageNo(subsvcOrderVO.getPageIndex());
|
||||
paginationInfo.setRecordCountPerPage(subsvcOrderVO.getPageUnit());
|
||||
paginationInfo.setPageSize(paginationProperties.getPageSize());
|
||||
|
||||
subsvcOrderVO.setPaginationInfo(paginationInfo);
|
||||
subsvcOrderVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
|
||||
subsvcOrderVO.setLastIndex(paginationInfo.getLastRecordIndex());
|
||||
subsvcOrderVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
|
||||
if(StringUtils.isEmpty(subsvcOrderVO.getSortDv())){
|
||||
//정렬기준 초기값 셋팅
|
||||
subsvcOrderVO.setSortDv("subsvcGnrAsc");
|
||||
}
|
||||
|
||||
// 목록 조회
|
||||
List<DataMap> list = boSubsvcOrdrService.selectBOSubsvcOrderList(subsvcOrderVO);
|
||||
|
||||
Map<String, Object> content = new HashMap<>();
|
||||
content.put("paramVO", subsvcOrderVO);
|
||||
|
||||
content.put("list", list);
|
||||
content.put("paginationInfo", subsvcOrderVO.getPaginationInfo());
|
||||
|
||||
model.addAttribute("resultMap", content);
|
||||
|
||||
return "mngr/ordr/subsvc/SubsvcOrdrList";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 구독서비스 상품준비 일괄처리
|
||||
* @param subsvcOrderVO
|
||||
* @return ResponseEntity<WnbtResponse>
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/updateSubsvcOrdrReady", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
public ResponseEntity<WnbtResponse> updateSubsvcOrdrReady(BOSubsvcOrderVO subsvcOrderVO, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
subsvcOrderVO.setSopmalCd(authSopmalCd);
|
||||
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
||||
|
||||
if("01".equals(user.getSysDvCd())){
|
||||
subsvcOrderVO.setSopmalCd(user.getSopmalCd());
|
||||
}
|
||||
/**
|
||||
* 체크대상정보 파싱
|
||||
* 형태 : 주문고유번호@주문상품고유번호@주문상품옵션고유번호@주문배송고유번호
|
||||
* */
|
||||
subsvcOrderVO.setArrOrdrInnb(new ArrayList<String>());
|
||||
subsvcOrderVO.setArrOrdrGoodsInnb(new ArrayList<String>());
|
||||
subsvcOrderVO.setArrOrdrGoodsOptnInnb(new ArrayList<String>());
|
||||
subsvcOrderVO.setArrOrdrDlvyInnb(new ArrayList<String>());
|
||||
ArrayList<String> arrCheck = (ArrayList<String>)subsvcOrderVO.getArrCheck();
|
||||
|
||||
((ArrayList<String>)subsvcOrderVO.getArrCheck()).forEach(check -> {
|
||||
String[] innb = check.split("@");
|
||||
subsvcOrderVO.getArrOrdrInnb().add(innb[0]);
|
||||
subsvcOrderVO.getArrOrdrGoodsInnb().add(innb[1]);
|
||||
subsvcOrderVO.getArrOrdrGoodsOptnInnb().add(innb[2]);
|
||||
subsvcOrderVO.getArrOrdrDlvyInnb().add(innb[3]);
|
||||
});
|
||||
|
||||
DataMap message = new DataMap();
|
||||
String result = "";
|
||||
|
||||
try{
|
||||
result = boSubsvcOrdrService.updateSubsvcOrdrReady(subsvcOrderVO);
|
||||
}catch(Exception e){
|
||||
log.error(e.getMessage());
|
||||
result = "fail";
|
||||
}
|
||||
|
||||
message.put("message", result);
|
||||
|
||||
return ResponseEntity.ok(
|
||||
WnbtResponse.builder()
|
||||
.resBody(new WnbtResponseBody(message))
|
||||
.build()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 구독서비스 상품준비 배송내역 목록 팝업
|
||||
* @param subsvcOrderVO
|
||||
* @param model
|
||||
* @return SubsvcOrdrList.jsp
|
||||
*/
|
||||
@Policy(AuthPolicy.RESTRICTED)
|
||||
@RequestMapping(value = "/selectSubsvcOrdrDlvyListPop")
|
||||
public String selectSubsvcOrdrDlvyListPop(BOSubsvcOrderVO subsvcOrderVO,ModelMap model, @CookieValue(value = "authSopmalCd") String authSopmalCd) {
|
||||
subsvcOrderVO.setSopmalCd(authSopmalCd);
|
||||
AnonymousUser user = MemberJwtContextHolder.getMemberInfo();
|
||||
if("01".equals(user.getSysDvCd())){
|
||||
subsvcOrderVO.setSopmalCd(user.getSopmalCd());
|
||||
}
|
||||
// 목록 조회
|
||||
List<DataMap> list = boSubsvcOrdrService.selectBOSubsvcOrderDlvyList(subsvcOrderVO);
|
||||
|
||||
Map<String, Object> content = new HashMap<>();
|
||||
content.put("paramVO", subsvcOrderVO);
|
||||
|
||||
content.put("list", list);
|
||||
|
||||
model.addAttribute("resultMap", content);
|
||||
|
||||
return "mngr/ordr/subsvc/SubsvcOrdrDlvyListPop";
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user