Преглед изворни кода

업체/ 브랜드 조회 관련 수정

eskim пре 5 година
родитељ
комит
5b8a54390c

+ 2 - 2
src/main/java/com/style24/admin/biz/service/TsaGoodsService.java

@@ -2375,8 +2375,8 @@ public class TsaGoodsService {
 				//log.info("saveGoodsNaverLowestPrice  22 =  {}", GagaDateUtil.getTodayDateTime());
 				NaverLowestPrice naverLowestPrice = naverLowestPriceApi.getLowestPrice(goodsCd);
 
-				//log.info("[saveGoodsNaverLowestPrice] naverLowestPrice= {}", naverLowestPrice);
-				if (naverLowestPrice != null) {
+				log.info("[saveGoodsNaverLowestPrice] naverLowestPrice= {}", naverLowestPrice);
+				if (naverLowestPrice != null && naverLowestPrice.getTotal() > 0) {
 					GoodsNaverLowestPrice goodsNaverLowestPrice = new GoodsNaverLowestPrice();
 					goodsNaverLowestPrice.setReqYmd(GagaDateUtil.getToday());
 					goodsNaverLowestPrice.setGoodsCd(goodsCd);

+ 4 - 1
src/main/java/com/style24/admin/biz/web/TsaBusinessController.java

@@ -164,7 +164,10 @@ public class TsaBusinessController extends TsaBaseController {
 	@PostMapping("/supply/company/list")
 	@ResponseBody
 	public Collection<SupplyCompany> getSupplyCompanyList(@RequestBody SupplyCompany supplyComp) {
-		log.info("supplyComp={}", supplyComp);
+		// multi row 검색관련 처리
+		if (!StringUtils.isBlank(supplyComp.getSearchSupplyCompCd())) supplyComp.setMultiSupplyCompCd(supplyComp.getSearchSupplyCompCd().replaceAll("\r", "").split("\n"));
+		if (!StringUtils.isBlank(supplyComp.getSearchSupplyCompNm())) supplyComp.setMultiSupplyCompNm(supplyComp.getSearchSupplyCompNm().replaceAll("\r", "").split("\n"));
+		log.info("supplyComp  {}", supplyComp);
 		return businessService.getSupplyCompanyList(supplyComp);
 	}
 

+ 23 - 1
src/main/java/com/style24/admin/biz/web/TsaGoodsController.java

@@ -103,6 +103,9 @@ public class TsaGoodsController extends TsaBaseController {
 	@Autowired
 	private TsaSystemService systemService;
 
+	@Autowired
+	private ObjectMapper mapper;
+
 	/**
 	 * 품목관리 화면
 	 *
@@ -510,7 +513,26 @@ public class TsaGoodsController extends TsaBaseController {
 				goodsSearch.setSearchGb("MASTER");
 			}
 		}
-		//log.info("[getGoodsList] goodsSearch=>{}", goodsSearch);
+		if (!StringUtils.isBlank(goodsSearch.getBrandList())) {
+			try {
+				String [] aa = mapper.readValue(goodsSearch.getBrandList(), String[].class);
+				goodsSearch.setMultiBrand(aa);
+			} catch (Exception e) {
+				e.printStackTrace();
+				throw new IllegalStateException(message.getMessage("딜상품 저장 중 오류로 인해 저장되지 않았습니다."));
+			}
+		}
+
+		if (!StringUtils.isBlank(goodsSearch.getBrandList())) {
+			try {
+				String [] aa = mapper.readValue(goodsSearch.getBrandList(), String[].class);
+				goodsSearch.setMultiBrand(aa);
+			} catch (Exception e) {
+				e.printStackTrace();
+				throw new IllegalStateException(message.getMessage("딜상품 저장 중 오류로 인해 저장되지 않았습니다."));
+			}
+		}
+
 		goodsSearch.setRegNo(TsaSession.getInfo().getUserNo()); // 엑셀조회시 로그인 사용자의 엑셀 상품조회시 사용
 		goodsSearch.setPageable(new TscPageRequest(goodsSearch.getPageNo() - 1, goodsSearch.getPageSize()));
 		goodsSearch.getPageable().setTotalCount(goodsService.getGoodsListCount(goodsSearch));

+ 2 - 0
src/main/java/com/style24/persistence/domain/GoodsSearch.java

@@ -86,6 +86,8 @@ public class GoodsSearch extends TscBaseDomain {
 	private String noticeTitle;
 	private Integer rinbdInfoSq;
 	private String callbackFn;
+	private String brandList;
+	private String supplyCompList;
 
 	//@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
 	//private String[] siteCd;

+ 13 - 0
src/main/java/com/style24/persistence/domain/SupplyCompany.java

@@ -1,5 +1,6 @@
 package com.style24.persistence.domain;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.style24.persistence.TscBaseDomain;
 
 import lombok.Data;
@@ -60,4 +61,16 @@ public class SupplyCompany extends TscBaseDomain {
 	private String searchTxt;			// 검색어
 	private String callbackFn;			// 콜백함수
 	private String multiGb;
+	private String searchSupplyCompCd;
+	private String searchSupplyCompNm;
+
+	/* 업체검색 Multi CheckBox 항목*/
+	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
+	private String[] multiSupplyCompCd;
+
+	@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
+	private String[] multiSupplyCompNm;
+	/* 업체검색 Multi CheckBox 항목*/
+
+
 }

+ 16 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsaBusiness.xml

@@ -163,6 +163,19 @@
 		<if test="supplyCompCd != null and supplyCompCd != ''"> <!-- 브랜드관리 화면에서 사용 -->
 		AND    SC.SUPPLY_COMP_CD = #{supplyCompCd}
 		</if>
+		<if test="multiSupplyCompCd != null and multiSupplyCompCd.length > 0">
+		AND    A.BRAND_CD IN
+		    <foreach collection="multiSupplyCompCd" item="item" index="index"  open="(" close=")" separator=",">
+		UPPER(#{item})
+		    </foreach>
+		</if>
+		<if test="multiSupplyCompNm != null and multiSupplyCompNm.length > 0">
+		AND (
+		    <foreach collection="multiSupplyCompNm" item="item" index="index" separator="or">
+		    UPPER(SC.SUPPLY_COMP_NM) LIKE CONCAT('%',UPPER(#{item}),'%')
+		  </foreach>
+		 )
+		</if>
 		<if test='selfYn != null and (selfYn == "Y" or selfYn == "N")'>
 		<choose>
 		    <when test='selfYn  == "Y"'>
@@ -527,6 +540,9 @@
 		<if test='useYn != null and useYn != ""'>
 		AND    A.USE_YN = #{useYn}
 		</if>
+		<if test='selfYn != null and selfYn != ""'>
+		AND    A.SELF_YN = #{selfYn}
+		</if>
 		ORDER  BY A.SELF_YN DESC,  A.DISP_ORD
 	</select>
 	

+ 10 - 0
src/main/webapp/WEB-INF/views/business/BrandPopupForm.html

@@ -34,6 +34,16 @@
 						<col/>
 					</colgroup>
 					<tbody>
+						<tr>
+							<th>자사/입점</th>
+							<td colspan="3">
+								<select name="selfYn" id="selfYn">
+									<option value="">전체</option>
+									<option value="Y">자사</option>
+									<option value="N">입점</option>
+								</select>
+							</td>
+						</tr>
 						<tr>
 							<th>브랜드코드</th>
 							<td>

+ 23 - 8
src/main/webapp/WEB-INF/views/business/SupplyCompanyPopupForm.html

@@ -27,19 +27,34 @@
 		<div class="panelContent">
 			<form id="searchCompanyListForm" name="searchCompanyListForm" action="#" th:action="@{'/business/supply/company/list'}" onsubmit="$('#btnSearchCompanyList').trigger('click'); return false;">
 				<input type="hidden" name="searchGb" value="NAME" />		<!-- 공급업체 목록 검색 조건은 업체명으로만 -->
-				<input type="hidden" name="selfYn" th:value="${params.selfYn}" />
 				<table class="frmStyle" aria-describedby="검색조건">
 					<colgroup>
+						<col style="width:15%;"/>
+						<col style="width:35%;"/>
 						<col style="width:15%;"/>
 						<col/>
 					</colgroup>
 					<tbody>
-					<tr>
-						<th>공급업체명</th>
-						<td>
-							<input type="text" name="searchTxt" th:value="${params.searchTxt}" maxlength="20" onkeypress="if (event.keyCode == 13) { $('#btnSearchCompanyList').trigger('click'); }"/>
-						</td>
-					</tr>
+						<tr>
+							<th>자사/입점</th>
+							<td colspan="3">
+								<select name="selfYn" id="selfYn">
+									<option value="">전체</option>
+									<option value="Y">자사</option>
+									<option value="N">입점</option>
+								</select>
+							</td>
+						</tr>
+						<tr>
+							<th>업체코드</th>
+							<td>
+								<textarea class="textareaR3" name="searchSupplyCompCd" id="searchSupplyCompCd"></textarea>
+							</td>
+							<th>업체명</th>
+							<td>
+								<textarea class="textareaR3" name="searchSupplyCompNm" id="searchSupplyCompNm"></textarea>
+							</td>
+						</tr>
 					</tbody>
 				</table>
 				<ul class="panelBar">
@@ -124,7 +139,7 @@
 			gagaAgGrid.createGrid('gridComapanyPopupList', gridOptionsCompanyPopupList);
 
 			//  조회
-			$('#btnSearchCompanyList').trigger('click');
+			//$('#btnSearchCompanyList').trigger('click');
 		});
 		/*]]>*/
 	</script>

+ 65 - 10
src/main/webapp/WEB-INF/views/goods/GoodsListForm.html

@@ -54,19 +54,26 @@
 					<tr>
 						<th>업체/브랜드<em class="required" title="필수"></em></th>
 						<td colspan="3">
-							<label class="rdoBtn"><input type="radio" name="selfYn" id="selfYnY" value="Y"  checked/>자사</label>
+							<input type="text" class="w100" name="supplyCompSearchTxt" id="supplyCompSearchTxt" maxlength="20" />
+							<button type="button" class="btn icn" id="btnSearchSupplyComp"><i class="fa fa-search"></i></button>
+							<span id="supplyCompText"></span>
+							<input type="hidden" name="supplyCompList"/>
+							
+							<!-- <label class="rdoBtn"><input type="radio" name="selfYn" id="selfYnY" value="Y"  checked/>자사</label>
 							<label class="rdoBtn"><input type="radio" name="selfYn" id="selfYnN" value="N"/>입점</label>
 							<select name="supplyCompCd" id="supplyCompCd">
 								<option value="" th:if="${sessionInfo.roleCd} != 'G001_B000'">[전체]</option>
 								<option th:if="${supplyCompList}" th:each="oneData, status : ${supplyCompList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
 							</select>
-							<span id="multiBrand"></span>
+							<span id="multiBrand"></span> -->
 						</td>
 						<th>브랜드<em class="required" title="필수"></em></th>
 						<td>
 							<input type="text" class="w100" name="searchTxt" id="searchTxt" maxlength="20" />
 							<button type="button" class="btn icn" id="btnSearchBrand"><i class="fa fa-search"></i></button>
-							<input type="text" class="w100" name="brandCd" readonly="readonly"/>
+							<!-- <input type="text" class="w100" name="brandCd" readonly="readonly"/> -->
+							<span id="brandText"></span>
+							<input type="hidden" name="brandList"/>
 						</td>
 						<th rowspan="4">키워드<em class="required" title="필수"></em></th>
 						<td rowspan="4">
@@ -549,6 +556,9 @@
 		$("#searchForm input[type=checkbox]").parent("label").removeClass("checked");
 		$("#searchForm input[type=radio][checked]").parent("label").addClass("checked");
 		$("#multiBrand").empty();
+		$('#searchForm input[name=brandList]').val('');
+		$('#searchForm input[name=supplyCompList]').val('');
+		$('#searchForm').find('#brandText').html('');
 	});
 
 	// 조회클릭시
@@ -584,11 +594,11 @@
 		var searchFlag = false;
 		var cnt = 0;
 
-		if( !gagajf.isNull($("#searchForm select[name=supplyCompCd]").val()) 
+		if( !gagajf.isNull($("#searchForm input[name=supplyCompList]").val()) 
 				|| !gagajf.isNull($("#searchForm select[name=statSupplyCompCd]").val()) 
 				|| !gagajf.isNull($("#searchForm textarea[name=condition]").val())
 				|| (!gagajf.isNull($("#searchForm input[name=stDate]").val()) && !gagajf.isNull($("#searchForm input[name=edDate]").val()))
-				|| !gagajf.isNull($("#searchForm input[name=brandCd]").val())
+				|| !gagajf.isNull($("#searchForm input[name=brandList]").val())
 			){
 			searchFlag = true;
 		}else{
@@ -1074,23 +1084,68 @@
 		cfnCreateCombo('/renderer/delvFee/list/' + $('#searchForm select[name=statSupplyCompCd]').val(), $('#searchForm select[name=delvFeeCdC]'), "[선택]");
 	});
 	
+	// 업체 조회 선택시
+	$('#btnSearchSupplyComp').on('click', function() {
+		cfnOpenCompanyListPopup('fnSetSupplyCompInfo', 'M');
+	});
+	
+	// 업체 조회 팝업에서 호출
+	var fnSetSupplyCompInfo = function(result) {
+		var arrSupplyComp = [];
+		var supplyCompText = "";
+		var sIndex = 0;
+		$('#searchForm').find('#supplyCompText').html('');
+		$('#searchForm input[name=supplyCompSearchTxt]').val('');
+		result.forEach(function(supplyComp){
+			sIndex++; 
+			arrSupplyComp.push(supplyComp.supplyCompCd);
+		});
+
+		// 조회값이 하나일 경우 화면에 코드 노출 그외는 갯수 처리 
+		if (sIndex == 1) {
+			$('#searchForm input[name=supplyCompSearchTxt]').val(arrSupplyComp[0]);
+		}else{
+			supplyCompText = sIndex + " 개";
+			$('#searchForm').find('#supplyCompText').html(supplyCompText);	
+		}
+		var jsonData = JSON.stringify(arrSupplyComp);
+		$("#searchForm input[name=supplyCompList]").val(jsonData);
+	}
+	
 	// 브랜드 조회 팝업에서 호출
 	var fnSetBrandInfo = function(result) {
-		$("#searchForm input[name=brandCd]").val(result[0].brandCd);
+		var arrbrandCd = [];
+		var brandText = "";
+		var bIndex = 0;
+		$('#searchForm').find('#brandText').html('');
+		$('#searchForm input[name=searchTxt]').val('');
+		result.forEach(function(brand){
+			bIndex++; 
+			arrbrandCd.push(brand.brandCd);
+		});
+
+		// 조회값이 하나일 경우 화면에 코드 노출 그외는 갯수 처리 
+		if (bIndex == 1) {
+			$('#searchForm input[name=searchTxt]').val(arrbrandCd[0]);
+		}else{
+			brandText = bIndex + " 개";
+			$('#searchForm').find('#brandText').html(brandText);	
+		}
+		var jsonData = JSON.stringify(arrbrandCd);
+		$("#searchForm input[name=brandList]").val(jsonData);
 	}
 	
 	// 브랜드 조회 선택시
 	$('#btnSearchBrand').on('click', function() {
-
 		/* if (gagajf.isNull($("#searchForm input[name=searchTxt]").val())){
 			mcxDialog.alert('브랜드 검색어를 입력하세요.');
 			return false;
 		} */
-		
-		cfnOpenBrandListPopup('fnSetBrandInfo', 'M', $("#searchForm input[name=searchTxt]").val());
-		
+		cfnOpenBrandListPopup('fnSetBrandInfo', 'M');
 	});
 	
+	
+	
 	// 상품이미지 미리보기 레이어에서 창 종료 이벤트
 	$(document).on("mouseleave","#goodsImgView",function(){
 		$("#goodsImgView").remove();