moon 5 éve
szülő
commit
e4695cf170

+ 151 - 0
src/main/java/com/style24/core/biz/service/TscDeliveryService.java

@@ -0,0 +1,151 @@
+package com.style24.core.biz.service;
+
+import java.text.NumberFormat;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.env.Environment;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.gagaframework.excel.env.GagaExcelConstants;
+import com.gagaframework.excel.xssf.GagaExcelResultHandler;
+import com.gagaframework.web.parameter.GagaMap;
+import com.gagaframework.web.rest.server.GagaResponseStatus;
+import com.style24.core.biz.dao.TscOrderChangeDao;
+import com.style24.core.biz.dao.TscOrderDao;
+import com.style24.core.biz.dao.TscScmDao;
+import com.style24.core.support.env.TscConstants;
+import com.style24.core.support.message.TscMessageByLocale;
+import com.style24.core.support.util.CryptoUtils;
+import com.style24.persistence.domain.Order;
+import com.style24.persistence.domain.OrderChange;
+import com.style24.persistence.domain.Point;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 주문관리 Service
+ *
+ * @author moon
+ * @since 2021. 04. 23
+ */
+@Service
+@Slf4j
+public class TscDeliveryService {
+
+	@Autowired
+	private TscMessageByLocale message;
+
+	@Autowired
+	private Environment env;
+
+	@Autowired
+	private TscOrderDao orderDao;
+
+	@Autowired
+	private TscScmDao scmDao;
+	
+	@Autowired
+	private TscOrderChangeDao orderChangeDao;
+
+	@Autowired
+	private TscOrderChangeService orderChangeService;
+	
+	@Autowired
+	private TscPointService pointService;
+
+	@Autowired
+	private ObjectMapper mapper;
+
+	
+	/**
+	 * 품절취소
+	 *
+	 * @param  
+	 * @return void
+	 * @author moon
+	 * @since 2020. 04. 23
+	 */
+	@Transactional("shopTxnManager")
+	public void cancelSoldout(Collection<Order> soldoutList, Integer userNo) {
+	
+		
+		List<OrderChange> cancelDataList = new ArrayList<OrderChange>();
+		
+		for(Order param : soldoutList) {
+			if(param.getCnclRtnQty() > 0) {
+				boolean chkOrd = true;
+
+				for(OrderChange cancelData : cancelDataList) {
+					if(param.getOrdNo().equals(cancelData.getOrdNo())) {
+						chkOrd = false;
+						cancelData.getOrdDtlNoList().add(param.getOrdDtlNo());
+						cancelData.getCnclRtnReqQtyList().add(param.getCnclRtnQty());
+					}
+				}
+
+				if(chkOrd) {
+					OrderChange change = new OrderChange();
+					change.setOrdNo(param.getOrdNo());
+					change.setCustNo(param.getCustNo());
+					change.setOrderNm(param.getOrdNm());
+					change.setPgGb(param.getPgGb());
+					change.setPayMeans(param.getPayMeans());
+					change.setBankCd(param.getBankCd());
+					change.setAccountNm(param.getAccountNm());
+					change.setAccountNo(CryptoUtils.decryptAES(param.getAccountNo()));
+					change.getOrdDtlNoList().add(param.getOrdDtlNo());
+					change.getCnclRtnReqQtyList().add(param.getCnclRtnQty());
+					change.setChgReason(TscConstants.OrderCancelReason.SOLDOUT_CANCEL.value());
+					change.setChgReasonNm("품절취소");
+					cancelDataList.add(change);
+				}
+			}
+		}
+		
+		// 리스트로 지정된 주문상세번호와 취소수량 배열로 변경 후 취소
+		for(OrderChange change : cancelDataList) {
+			change.setOrdDtlNoArr(change.getOrdDtlNoList().stream().mapToInt(i->i).toArray());
+			change.setCnclRtnReqQtyArr(change.getCnclRtnReqQtyList().stream().mapToInt(i->i).toArray());
+
+			// 무통장입금 주문 중 환불계좌정보 없을 경우 취소신청
+			if(TscConstants.PgGb.KCP.value().equals(change.getPgGb()) && TscConstants.PayMeans.BANK_DEPOSIT.value().equals(change.getPayMeans()) && StringUtils.isEmpty(change.getAccountNo())) {
+				// TODO: 취소신청
+				log.info("CHECK IN PART CANCEL ORD_DTL_NO_ARR ::::: {} / {} / {}", change.getOrdNo(), change.getOrdDtlNoArr(), change.getAccountNo());
+			} else {		// 무통장입금 주문 중 환불계좌정보 없을 경우 제외는 취소처리
+				// 취소완료
+				log.info("CHECK IN PART CANCEL ORD_DTL_NO_ARR ::::: {} / {} / {}", change.getOrdNo(), change.getOrdDtlNoArr(), change.getAccountNo());
+				GagaMap cancelInfo = orderChangeService.orderCancelPreInfo(change,userNo);
+
+				// TODO: 품절취소 알림톡 발송 예정 
+				//
+			}
+		}
+		
+	}	
+	
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+