Browse Source

Merge branch 'develop' into bin2107

bin2107 5 years ago
parent
commit
092e26d1f0

+ 66 - 0
src/main/java/com/style24/front/biz/dao/TsfDeliveryDao.java

@@ -0,0 +1,66 @@
+package com.style24.front.biz.dao;
+
+import java.util.Collection;
+
+import com.style24.core.support.annotation.ShopDs;
+import com.style24.persistence.domain.SweetTracker;
+
+/**
+ * 배송 Dao
+ *
+ * @author moon
+ * @since 2021. 04. 25
+ */
+@ShopDs
+public interface TsfDeliveryDao {
+
+	
+	/**
+	 * 배송완료 상태값 변경 
+	 * @param SweetTracker
+	 * @return
+	 * @author moon
+	 * @since 2021. 04. 14
+	 */
+	void updateTbOrderDtlStat(SweetTracker sweetTracker);	
+	
+	/**
+	 * 스윗트래커 배송상태 등록 
+	 * @param SweetTracker
+	 * @return
+	 * @author moon
+	 * @since 2021. 04. 14
+	 */
+	void insertTbSweetTracker(SweetTracker sweetTracker);
+	
+	/**
+	 * 주문상세번호 조회  
+	 * @param SweetTracker
+	 * @return Collection<SweetTracker>
+	 * @author moon
+	 * @since 2021. 04. 14
+	 */	
+	Collection<SweetTracker> getOrdDtlNoList(SweetTracker sweetTracker);
+	
+	/**
+	 * 주문변경번호 조회  
+	 * @param SweetTracker
+	 * @return Collection<SweetTracker>
+	 * @author moon
+	 * @since 2021. 04. 14
+	 */	
+	Collection<SweetTracker> getOrdChgSqList(SweetTracker sweetTracker);
+	
+	/**
+	 * 주문변경 상태값 변경 
+	 * @param SweetTracker
+	 * @return
+	 * @author moon
+	 * @since 2021. 04. 14
+	 */
+	void updateOrdChgSqStat(SweetTracker sweetTracker);		
+	
+
+	int saveTemp(SweetTracker sweetTracker);			
+	
+}

+ 115 - 0
src/main/java/com/style24/front/biz/service/TsfDeliveryService.java

@@ -0,0 +1,115 @@
+package com.style24.front.biz.service;
+
+import java.util.Collection;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.style24.core.biz.dao.TscOrderChangeDao;
+import com.style24.core.biz.dao.TscOrderDao;
+import com.style24.core.support.message.TscMessageByLocale;
+import com.style24.core.support.env.TscConstants.OrderDetailStat;
+import com.style24.core.support.env.TscConstants.OrderChangeStat;
+
+import com.style24.front.biz.dao.TsfDeliveryDao;
+import com.style24.persistence.domain.Order;
+import com.style24.persistence.domain.SweetTracker;
+import com.style24.persistence.domain.OrderChange;
+
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 배송 Service
+ *
+ * @author moon
+ * @since 2021. 04. 13
+ */
+@Service
+@Slf4j
+public class TsfDeliveryService {
+
+	@Autowired
+	private TscMessageByLocale message;
+
+	@Autowired
+	private TscOrderChangeDao orderChangeDao;
+	
+	@Autowired
+	private TsfDeliveryDao deliveryDao;
+
+	@Autowired
+	private TscOrderDao orderDao;	
+	
+	/**
+	 * 스윗트래커 배송상태 등록 및 주문상세상태 변경 
+	 * @param  SweetTracker
+	 * @return 
+	 * @author moon
+	 * @since  2021. 04. 13
+	 */
+	@Transactional("shopTxnManager")
+	public void saveDelvStat(SweetTracker sweetTracker) {
+
+		// 배송완료건 상태값 변경   
+		if(6 == sweetTracker.getLevel()) {
+			// 주문상세번호 조회 
+			Collection<SweetTracker> list = deliveryDao.getOrdDtlNoList(sweetTracker);
+			for(SweetTracker data : list) {
+				// 주문상태값 변경
+				data.setUpdNo(0);
+				data.setRegNo(0);
+				data.setOrdDtlStat(OrderDetailStat.DELIVERY_COMPLETE.value());  // 배송완료 G013_60
+				deliveryDao.updateTbOrderDtlStat(data);
+				// 주문상세이력
+				Order order = new Order();
+				order.setOrdDtlNo(data.getOrdDtlNo());
+				order.setUpdNo(0);
+				order.setRegNo(0);
+				orderDao.createOrderDetailHst(order);				
+			}
+			
+			// 주문변경번호 조회 
+			Collection<SweetTracker> chgList = deliveryDao.getOrdChgSqList(sweetTracker);
+			for(SweetTracker chgSq : chgList ) {
+				
+				// 주문상세변경 상태값 변경 
+				chgSq.setUpdNo(0);
+				chgSq.setRegNo(0);
+				chgSq.setChgStat(OrderChangeStat.WITHDRAW_GOODS_CHECK.value());  // 상품검수중  G685_31
+				deliveryDao.updateOrdChgSqStat(chgSq);
+				
+				// 주문상세변경 이력 
+				OrderChange ordChg = new OrderChange();
+				ordChg.setRegNo(0);
+				ordChg.setUpdNo(0);
+				ordChg.setOrdChgSq(chgSq.getOrdChgSq()); 
+				ordChg.setOrdDtlNo(chgSq.getOrdDtlNo()); 
+				orderChangeDao.createOrderChangeDetailHst(ordChg);
+			}
+		}
+		
+		// 	TB_SWEET_TRACKER 등록 
+		sweetTracker.setDelvLevel(sweetTracker.getLevel()+"");
+		sweetTracker.setDelvWhere(sweetTracker.getWhere());
+		deliveryDao.insertTbSweetTracker(sweetTracker);
+	}
+	
+	/**
+	 * 스윗트래커 배송상태 등록 및 주문상세상태 변경 
+	 * @param  SweetTracker
+	 * @return 
+	 * @author moon
+	 * @since  2021. 04. 13
+	 */
+	@Transactional("shopTxnManager")
+	public int saveTemp(String msg) {
+		int rtn=0;
+		SweetTracker tmp = new SweetTracker();
+		tmp.setMan(msg);
+		deliveryDao.saveTemp(tmp);
+		return rtn;
+	}
+
+}

+ 122 - 0
src/main/java/com/style24/front/biz/web/TsfDeliveryController.java

@@ -0,0 +1,122 @@
+package com.style24.front.biz.web;
+
+import javax.servlet.http.HttpServletResponse;
+
+import java.nio.charset.StandardCharsets;
+import java.util.Enumeration;
+import javax.servlet.ServletInputStream;
+import javax.servlet.http.HttpServletRequest;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.util.StreamUtils;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import com.gagaframework.web.parameter.GagaMap;
+import com.gagaframework.web.parameter.GagaMapList;
+import com.style24.persistence.domain.SweetTracker;
+import com.style24.front.biz.service.TsfDeliveryService;
+import com.style24.front.support.controller.TsfBaseController;
+import com.google.gson.JsonObject;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 배송 Controller
+ *
+ * @author moon
+ * @since 2021. 04. 25
+ */
+@Controller
+@RequestMapping("/delivery")
+@Slf4j
+public class TsfDeliveryController extends TsfBaseController {
+
+
+	@Autowired
+	private TsfDeliveryService deliveryService;
+
+	/**
+	 * 스윗트래커 
+	 *
+	 * @param String
+	 * @return  
+	 * @author moon
+	 * @since 2021. 04. 13
+	 */
+	@PostMapping(value = "/sweettracker/response" )
+	@ResponseBody
+	public String sweetTrackerResponse(SweetTracker  sweetTracker) throws Exception {
+		
+		deliveryService.saveTemp("들어옴");
+		
+		String msg = "";
+//		Enumeration  enums = request.getParameterNames();
+//		while (enums.hasMoreElements()) {
+//			String name = (String) enums.nextElement();
+//			log.info("name: "+name);
+//			msg = msg+ name+": "+request.getParameter(name)+" ";
+//		}
+//		
+//		deliveryService.saveTemp(msg);
+//		
+//		String fid  = request.getParameter("fid");
+//		String courier_code  = request.getParameter("courier_code");
+//		String invoice_no  = request.getParameter("invoice_no");
+//		String level  = request.getParameter("level");
+//		String time_trans  = request.getParameter("time_trans");
+//		String time_sweet  = request.getParameter("time_sweet");
+//		String where  = request.getParameter("where");
+//		String telno_office  = request.getParameter("telno_office");
+//		String telno_man  = request.getParameter("telno_man");
+//		String details  = request.getParameter("details");
+//		String recv_addr  = request.getParameter("recv_addr");
+//		String recv_name  = request.getParameter("recv_name");
+//		String send_name  = request.getParameter("send_name");
+//		String man  = request.getParameter("man");
+//		String estmate  = request.getParameter("estmate");
+//		
+//		String msg2 = "fid: "+fid+" courier_code:"+courier_code+" invoice_no:"+invoice_no+" level:"+level+" time_trans:"+time_trans;
+//		
+//		deliveryService.saveTemp(msg2);
+//		
+//		
+//		
+//		SweetTracker  sweetTracker = new SweetTracker();
+//		sweetTracker.setFid(request.getParameter("fid"));
+//		sweetTracker.setCourier_code(request.getParameter("courier_code"));
+//		sweetTracker.setInvoice_no(request.getParameter("invoice_no"));
+//		sweetTracker.setLevel(Integer.parseInt(request.getParameter("level")));
+//		sweetTracker.setTime_trans(request.getParameter("time_trans"));
+//		sweetTracker.setTime_sweet(request.getParameter("time_sweet"));
+//		sweetTracker.setWhere(request.getParameter("where"));
+//		sweetTracker.setTelno_office(request.getParameter("telno_office"));
+//		sweetTracker.setTelno_man(request.getParameter("telno_man"));
+//		sweetTracker.setDetails(request.getParameter("details"));
+//		sweetTracker.setRecv_addr(request.getParameter("recv_addr"));
+//		sweetTracker.setRecv_name(request.getParameter("recv_name"));
+//		sweetTracker.setSend_name(request.getParameter("send_name"));
+//		sweetTracker.setMan(request.getParameter("man"));
+//		sweetTracker.setEstmate(request.getParameter("estmate"));
+//		
+		
+		deliveryService.saveTemp(sweetTracker.toString());
+		
+		JsonObject rtn = new JsonObject();
+		
+		
+		try {
+			deliveryService.saveDelvStat(sweetTracker);
+			
+			rtn.addProperty("code", true); 
+			rtn.addProperty("message", "success"); 
+		} catch(Exception e) {
+			rtn.addProperty("code", false); 
+			rtn.addProperty("message", "fail - invalid fid"); 
+		}
+		
+		return rtn.toString();
+	}	
+}

+ 44 - 0
src/main/java/com/style24/persistence/domain/SweetTracker.java

@@ -0,0 +1,44 @@
+package com.style24.persistence.domain;
+
+import com.style24.persistence.TscBaseDomain;
+
+import lombok.Data;
+
+/**
+ * 스윗트래커 Domain
+ * 
+ * @author moon
+ * @since 2021. 04. 13
+ */
+@SuppressWarnings("serial")
+@Data
+public class SweetTracker extends TscBaseDomain {
+
+	private String fid;            // 식별값
+	private String invoice_no;	   // 운송장번호
+	private String time_trans; 	   // 택배사 처리시간
+	private String time_sweet; 	   // 스윗트래커 등록시간
+	private String where; 		   // 택배 위치
+	private String telno_office;   // 사업소 기반 전화번호
+	private String telno_man; 	   // 배송기사 전화번호
+	private String details; 	   // 배송상세 정보
+	private String recv_addr; 	   // 수취인 주소
+	private String recv_name; 	   // 수취인 이름
+	private String send_name; 	   // 발신인 이름
+	private String man; 		   // 배송기사 이름
+	private String estmate;        // 배송예정 시간
+	private String delvLevel;
+	private String delvWhere; 
+	private String chgStat;
+	private String ordDtlStat; 
+	private String courier_code;
+	private String secret_value;
+	
+	
+	private Integer level; 	  // 배송단계(1~6단계)
+	private Integer ordDtlNo;
+	private Integer ordChgSq;
+	private Integer tmp_sq;
+	
+
+}

+ 104 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsfDelivery.xml

@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.style24.front.biz.dao.TsfDeliveryDao">
+
+	<!-- 스윗트래커정보 등록   -->
+	<insert id="insertTbSweetTracker" parameterType="SweetTracker" >
+		/*TssDelivery.insertTbSweetTracker*/
+		INSERT INTO TB_SWEET_TRACKER 
+		(
+			  SHIP_COMP_CD		-- 택배사코드
+			, INVOICE_NO		-- 운송장번호			
+			, DELV_LEVEL		-- 배송단계  			
+			, TIME_TRANS		-- 택배사 처리시간		
+			, TIME_SWEET		-- 스윗트래커 등록시간	
+			, DELV_WHERE		-- 택배 위치			
+			, TELNO_OFFICE		-- 사업소 기반 전화번호	
+			, TELNO_MAN			-- 배송기사 전화번호		
+			, DETAILS			-- 배송상세 정보		
+			, RECV_ADDR			-- 수취인 주소			
+			, RECV_NAME			-- 수취인 이름			
+			, SEND_NAME			-- 발신인 이름			
+			, MAN				-- 배송기사 이름		
+			, ESTMATE			-- 배송예정 시간		
+			, REG_DT			-- 등록일시
+		)
+		VALUES
+		(
+			  #{courier_code}
+			, #{invoice_no}		-- 운송장번호			
+			, #{delvLevel}		-- 배송단계  			
+			, #{time_trans}		-- 택배사 처리시간		
+			, #{time_sweet}		-- 스윗트래커 등록시간	
+			, #{delvWhere}		-- 택배 위치			
+			, #{telno_office}	-- 사업소 기반 전화번호	
+			, #{telno_man}		-- 배송기사 전화번호		
+			, #{details}		-- 배송상세 정보		
+			, #{recv_addr}		-- 수취인 주소			
+			, #{recv_name}		-- 수취인 이름			
+			, #{send_name}		-- 발신인 이름			
+			, #{man}			-- 배송기사 이름		
+			, #{estmate}		-- 배송예정 시간		
+			, NOW()
+		) ON DUPLICATE KEY
+		  UPDATE
+		  REG_DT = NOW()
+	</insert>
+
+	<!-- 주문상세번호 조회 -->	
+	<select id="getOrdDtlNoList" resultType="SweetTracker">
+		/*TssDelivery.getOrdDtlNoList*/
+		SELECT ORD_DTL_NO FROM TB_ORDER_DETAIL WHERE INVOICE_NO = #{invoice_no}
+		
+	</select>
+	
+	<!-- 주문상세 상태값 변경    -->
+	<update id="updateTbOrderDtlStat" parameterType="SweetTracker" >
+		/*TssDelivery.updateTbOrderDtlStat*/
+		UPDATE TB_ORDER_DETAIL SET
+			  ORD_DTL_STAT = #{ordDtlStat}
+			, UPD_NO       = #{regNo}
+			, UPD_DT       = NOW()
+		WHERE ORD_DTL_NO   = #{ordDtlNo}
+	</update>	
+	
+	
+	<!-- 주문변경번호 조회 -->	
+	<select id="getOrdChgSqList" resultType="SweetTracker">
+		/*TssDelivery.getOrdChgSqList*/
+		SELECT A.ORD_CHG_SQ , B.ORD_DTL_NO
+		  FROM TB_ORDER_CHANGE A 
+		  JOIN TB_ORDER_CHANGE_DETAIL B ON A.ORD_CHG_SQ = B.ORD_CHG_SQ 
+		 WHERE A.WD_INVOICE_NO  =  #{invoice_no}
+		   AND B.DEL_YN = 'N'
+	</select>
+	
+	<!-- 주문상세 상태값 변경    -->
+	<update id="updateOrdChgSqStat" parameterType="SweetTracker" >
+		/*TssDelivery.updateOrdChgSqStat*/
+		UPDATE TB_ORDER_CHANGE_DETAIL SET
+			  CHG_STAT = #{chgStat}  -- G685_31
+			, UPD_NO   = #{regNo}
+			, UPD_DT   = NOW()
+		WHERE ORD_CHG_SQ = #{ordChgSq}
+		  AND ORD_DTL_NO = #{ordDtlNo}
+	</update>	
+
+	
+	<!-- 주문상세 상태값 변경    -->
+	<insert id="saveTemp" parameterType="SweetTracker" keyProperty="tmp_sq">
+		/*TssDelivery.saveTemp*/
+		insert into tb_sw_temp 
+		(
+			  msg
+			, reg_dt 
+		)values
+		(
+			#{man}
+			, now()
+		)
+	</insert>	
+	
+	
+
+</mapper>