Procházet zdrojové kódy

Merge branch 'develop' of http://112.172.147.34:4936/style24/style24.admin.git into develop

eskim před 5 roky
rodič
revize
0d7e45ea92

+ 35 - 3
src/main/java/com/style24/admin/biz/web/TsaOcmController.java

@@ -2,7 +2,6 @@ package com.style24.admin.biz.web;
 
 import java.util.Collection;
 
-import com.style24.persistence.domain.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -12,16 +11,20 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
 
+import com.gagaframework.web.rest.server.GagaResponse;
 import com.style24.admin.biz.service.TsaOcmService;
 import com.style24.admin.biz.service.TsaRendererService;
 import com.style24.admin.support.controller.TsaBaseController;
+import com.style24.admin.support.env.TsaConstants;
 import com.style24.admin.support.security.session.TsaSession;
 import com.style24.core.support.message.TscMessageByLocale;
+import com.style24.persistence.domain.Extmall;
+import com.style24.persistence.domain.ExtmallNoti;
+import com.style24.persistence.domain.ExtmallOrigin;
+import com.style24.persistence.domain.ExtmallPriceSync;
 
 import lombok.extern.slf4j.Slf4j;
 
-import com.gagaframework.web.rest.server.GagaResponse;
-
 /**
  * 영업망관리 Controller
  *
@@ -223,4 +226,33 @@ public class TsaOcmController extends TsaBaseController {
 		return super.ok(message.getMessage("SUCC_0001"));
 	}
 
+	/**
+	 * 주문업로드 화면
+	 * @param
+	 * @return
+	 * @author jmh
+	 * @since 2021. 06. 15
+	 */
+	@GetMapping("/extmall/order/upload/form")
+	public ModelAndView extmallOrderUploadForm() {
+		ModelAndView mav = new ModelAndView();
+
+		// 제휴몰벤더
+		mav.addObject("vendorList", rendererService.getCommonCodeList("G003", "Y", TsaSession.getInfo().getSupplyCompCd()));
+
+		// 제휴몰
+		Extmall extmall = new Extmall();
+		extmall.setVendorId(TsaConstants.VendorId.SHOPLINKER.value()); // 샵링커
+		mav.addObject("extmallList", ocmService.getExtmallList(extmall));
+
+		// 업로드상태 콤보박스 목록
+		mav.addObject("uploadStatList", rendererService.getCommonCodeList("G021"));
+
+		// 업로드실패사유 콤보박스 목록
+		mav.addObject("uploadFailList", rendererService.getCommonCodeList("G022"));
+
+		mav.setViewName("ocm/ExtmallOrderRegisterForm");
+
+		return mav;
+	}
 }

+ 1 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsaCustomer.xml

@@ -412,6 +412,7 @@
 		      , CPH.OCCUR_GB
 		      , CPH.OCCUR_DTL_DESC
 		      , CPH.PNT_AMT
+		      , CPH.ORD_NO
 		      , CPH.ORD_DTL_NO
 		      , CPH.REVIEW_SQ
 		      , DATE_FORMAT(CPH.SWITCH_DUE_DT, '%Y%m%d%H%i%S')  AS SWITCH_DUE_DT

+ 14 - 13
src/main/webapp/WEB-INF/views/customer/CustomerDetailForm.html

@@ -572,14 +572,14 @@
 		{headerName: "주문자전화번호", field: "ordTelno", width: 120, cellClass: 'text-center'},
 		{headerName: "주문자휴대폰", field: "ordPhnno", width: 130, cellClass: 'text-center'},
 		{
-			headerName: "주문상세상태", field: "ordDtlStat", width: 100, cellClass: 'text-center',
+			headerName: "주문상세상태", field: "ordDtlStat", width: 130, cellClass: 'text-center',
 			valueFormatter: function (params) {
 				return gagaAgGrid.lookupValue(orderDtlStatList, params.value);
 			}
 		},
 		{headerName: "수령인", field: "recipNm", width: 100, cellClass: 'text-center'},
 		{
-			headerName: "상품코드", field: "goodsCd", width: 100, cellClass: 'text-center',
+			headerName: "상품코드", field: "goodsCd", width: 150, cellClass: 'text-center',
 			cellRenderer: function (params) {
 				return '<a href="javascript:void(0);">' + params.value + '</a>';
 			}
@@ -594,7 +594,7 @@
 	// 1:1문의 내역 그리드
 	const columnCounselDefs = [
 		{
-			headerName: "상담분류", field: "counselClsf", width: 100, cellClass: 'text-center',
+			headerName: "상담분류", field: "counselClsf", width: 150, cellClass: 'text-center',
 			valueFormatter: function (params) {
 				return gagaAgGrid.lookupValue(counselClsfList, params.value);
 			}
@@ -714,7 +714,7 @@
 			}
 		},
 		{
-			headerName: "포인트사유", field: "occurGb", width: 100, cellClass: 'text-center',
+			headerName: "포인트사유", field: "occurGb", width: 150, cellClass: 'text-center',
 			valueFormatter: function (params) {
 				return gagaAgGrid.lookupValue(pntOccurGbList, params.value);
 			}
@@ -751,7 +751,7 @@
 			}
 		},
 		{
-			headerName: "발생구분", field: "occurGb", width: 100, cellClass: 'text-center',
+			headerName: "발생구분", field: "occurGb", width: 150, cellClass: 'text-center',
 			valueFormatter: function (params) { return gagaAgGrid.lookupValue(giftCardOccurGbList, params.value); }
 		},
 		{
@@ -865,7 +865,7 @@
 	//회원접촉이력 그리드
 	const columnContactDefs = [
 		{
-			headerName: "접촉유형", field: "contactType", width: 150, cellClass: 'text-center',
+			headerName: "접촉유형", field: "contactType", width: 180, cellClass: 'text-center',
 			valueFormatter: function (params) {
 				return gagaAgGrid.lookupValue(contactTypeList, params.value);
 			}
@@ -1148,6 +1148,14 @@
 		}
 	};
 
+	// 상품평내역 셀 클릭 이벤트
+	gridReviewOptions.onCellClicked = function (event) {
+		if (event.colDef.field === 'reviewContent') {
+			let reviewSq = event.data.reviewSq;
+			cfnOpenReviewDetailPopup(reviewSq);
+		}
+	};
+
 	// 1:1문의 내역 셀 클릭 이벤트
 	gridCounselOptions.onCellClicked = function (event) {
 		if (event.colDef.field === 'questTitle') {
@@ -1164,13 +1172,6 @@
 		}
 	};
 
-	// 상품평내역 셀 클릭 이벤트
-	gridReviewOptions.onCellClicked = function (event) {
-		if (event.colDef.field === 'reviewTitle') {
-			let reviewSq = event.data.reviewSq;
-			cfnOpenReviewDetailPopup(reviewSq);
-		}
-	};
 
 	// 주소지 셀 클릭 이벤트
 	gridAddrOptions.onCellClicked = function (event) {

+ 159 - 0
src/main/webapp/WEB-INF/views/ocm/ExtmallOrderRegisterForm.html

@@ -0,0 +1,159 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : ExtmallOrderRegisterForm.html
+ * @desc    : 제휴몰 주문업로드 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2021.05.20   jmh     	 최초 작성
+ *******************************************************************************
+ -->
+	<div id="main">
+		<!-- 메인타이틀 영역 -->
+		<div class="main-title">
+		</div>
+		<!-- //메인타이틀 영역 -->
+
+		<!-- 메뉴 설명 -->
+		<div class="infoBox menu-desc">
+		</div>
+		<!-- //메뉴 설명 -->
+
+
+		<form id="searchForm" name="searchForm" action="#" th:action="@{'/shoplinker/order/collection/list'}" onsubmit="$('#btnSearch').trigger('click'); return false;">
+			<!-- 검색조건 영역 -->
+			<div class="panelStyle">
+				<ul class="lrStyle">
+					<li>
+						<p class="dot">주문등록샘플 엑셀파일을 다운로드 할 경우 <font color="red">[샘플다운로드]</font> 버튼을 클릭한다.</p>
+						<p class="dot"><font color="red">[엑셀업로드]</font> 버튼을 눌러 데이터를 업로드 한다. 업로드 된 데이터가 목록에 나타난다.</p>
+						<p class="dot"><font color="red">[주문등록]</font> 버튼을 눌러 주문등록을 완료한다.</p>
+						<p class="dot"><font color="red">주문등록 처리는 몇 분이 소요되기도 하며</font> 결과는 <font color="red">[결과확인]</font> 버튼을 눌러 확인할 수 있다.</p>
+					</li>
+				</ul>
+
+				<ul class="panelBar padT20">
+					<li class="center">
+						<input type="button" class="btn btn-default btn-lg" id="btnExcelDown" onclick="cfnDownloadSampleFile('SF003');" value="외부몰 주문등록양식 다운로드" />
+						<input type="button" class="btn btn-primary btn-lg" id="btnExcelUpload" value="엑셀업로드"/>
+						<input type="button" class="btn btn-success btn-lg" id="btnSaveExtmallOrderUpload" value="주문등록"/>
+						<input type="button" class="btn btn-danger btn-lg" id="btnSearchExtmallOrderUpload" value="결과확인"/>
+					</li>
+				</ul>
+			</div>
+			<!-- 검색조건 영역 -->
+
+			<!-- 리스트 영역 -->
+			<div class="panelStyle">
+
+				<div id="gridList" style="width: 100%; height: 470px" class="ag-theme-balham"></div>
+			</div>
+			<!-- //리스트 영역 -->
+
+		</form>
+
+	</div>
+
+<script type="text/javascript" src="/ux/plugins/gaga/gaga.paging.js?v=20210114"></script>
+<script th:inline="javascript">
+/*<![CDATA[*/
+	var sessRoleCd 		= [[${sessionInfo.roleCd}]];
+
+	var statusValue = {"Y":"판매중", "N":"판매중지"};
+	var apiGbValue = {"10":"상품등록", "11":"상품수정"};
+	var procGbValue = {"1":"전송완료", "0":"전송실패"};
+
+	let vendorList = gagajf.convertToArray([[${vendorList}]]);
+	let extmallList = gagajf.convertToArray([[${extmallList}]]);
+	let uploadStatList = gagajf.convertToArray([[${uploadStatList}]]);
+	let uploadFailList = gagajf.convertToArray([[${uploadFailList}]]);
+
+	var columnDefs = [
+		{headerName: "업로드상태",			field: "uploadStat",			width: 150, cellClass: 'text-center'},
+		{headerName: "업로드실패사유",		field: "uploadFailCd",			width: 150, cellClass: 'text-center'},
+		{headerName: "업로드실패사유상세",	field: "uploadFailReason",		width: 200, cellClass: 'text-center'},
+		{headerName: "샵링커주문번호",		field: "agentOrderId", 			width: 150, cellClass: 'text-center'},
+		{headerName: "쇼핑몰주문번호",		field: "extmallOrderId",		width: 150, cellClass: 'text-center'},
+		{headerName: "쇼핑몰주문일련번호",	field: "extmallOrderDtlId",		width: 150, cellClass: 'text-center'},
+		{headerName: "수집일시",			field: "regDt",					width: 150, cellClass: 'text-center'},
+		{headerName: "주문일시",			field: "ordDt",					width: 150, cellClass: 'text-center'},
+		{headerName: "결제일시",			field: "payDt",					width: 150, cellClass: 'text-center'},
+		{headerName: "외부몰벤더ID",		field: "vendorId",				width: 100, cellClass: 'text-center'},
+		{headerName: "외부몰ID",			field: "extmallId",				width: 100, cellClass: 'text-center'},
+		{headerName: "외부몰사용자ID",		field: "extmallUserId",			width: 100, cellClass: 'text-center'},
+		{headerName: "외부몰명",			field: "extmallNm",				width: 130, cellClass: 'text-center'},
+		{headerName: "상품코드",			field: "goodsCd",				width: 150, cellClass: 'text-center'},
+		{headerName: "사이즈코드",			field: "sizeCd",				width: 150, cellClass: 'text-center'},
+		{headerName: "주문수량",			field: "ordQty",				width: 100, cellClass: 'text-center'},
+		{headerName: "판매금액",			field: "ordAmt",				width: 100, cellClass: 'text-center'},
+		{headerName: "실판매금액",			field: "realOrdAmt",			width: 100, cellClass: 'text-center'},
+		{headerName: "배송비",			field: "delvFee",				width: 200, cellClass: 'text-center'},
+		{headerName: "주문자명",			field: "orderNm",				width: 200, cellClass: 'text-center'},
+		{headerName: "주문자핸드폰번호",		field: "orderPhnno",			width: 200, cellClass: 'text-center'},
+		{headerName: "주문자전화번호",		field: "orderTelno",			width: 200, cellClass: 'text-center'},
+		{headerName: "주문자이메일",		field: "orderEmail",			width: 200, cellClass: 'text-center'},
+		{headerName: "수령자명",			field: "recipNm",				width: 200, cellClass: 'text-center'},
+		{headerName: "수령자핸드폰번호",		field: "recipPhnno",			width: 200, cellClass: 'text-center'},
+		{headerName: "수령자전화번호",		field: "recipTelno",			width: 200, cellClass: 'text-center'},
+		{headerName: "수령자이메일",		field: "recipEmail",			width: 200, cellClass: 'text-center'},
+		{headerName: "수령자우편번호",		field: "recipPostNo",			width: 200, cellClass: 'text-center'},
+		{headerName: "수령자기본주소",		field: "recipBaseAddr",			width: 300, cellClass: 'text-center'},
+		{headerName: "수령자상세주소",		field: "recipDtlAddr",			width: 200, cellClass: 'text-center'},
+		{headerName: "배송메모",			field: "delvMemo",				width: 200, cellClass: 'text-center'},
+		{headerName: "주문번호",			field: "ordNo",					width: 200, cellClass: 'text-center'}
+	];
+
+
+	let gridOptions = gagaAgGrid.getGridOptions(columnDefs);
+
+	// Cell click
+	gridOptions.onCellClicked = function(event) {
+		if (event.colDef.field != 'extmallId')
+			return;
+
+		$('#detailForm select[name=vendorId]').val(event.data.vendorId);
+		$('#detailForm input[name=extmallId]').val(event.data.extmallId);
+		$('#detailForm input[name=extmallUserId]').val(event.data.extmallUserId);
+		$('#detailForm input[name=extmallNm]').val(event.data.extmallNm);
+		$('#detailForm select[name=supplyCompCd]').val(event.data.supplyCompCd);
+		$('#detailForm input[name=sellStoreCd]').val(event.data.sellStoreCd);
+		$('#detailForm input[name=stockSellRate]').val(event.data.stockSellRate);
+		$('#detailForm input[name=priceAcceptRate]').val(event.data.priceAcceptRate);
+
+		if (event.data.dwdpYn == 'Y') {
+			$('#detailForm input:radio[name=dwdpYn]').eq(0).trigger('click');
+		} else {
+			$('#detailForm input:radio[name=dwdpYn]').eq(1).trigger('click');
+		}
+
+		if (event.data.cnclsmsSendYn == 'Y') {
+			$('#detailForm input:radio[name=cnclsmsSendYn]').eq(0).trigger('click');
+		} else {
+			$('#detailForm input:radio[name=cnclsmsSendYn]').eq(1).trigger('click');
+		}
+
+		if (event.data.useYn == 'Y') {
+			$('#detailForm input:radio[name=useYn]').eq(0).trigger('click');
+		} else {
+			$('#detailForm input:radio[name=useYn]').eq(1).trigger('click');
+		}
+	}
+
+	$(document).ready(function() {
+
+		// Create a agGrid
+		gagaAgGrid.createGrid('gridList', gridOptions);
+
+	});
+
+
+/*]]>*/
+</script>
+
+</html>