Explorar el Código

다다익선 추가 수정중

bin2107 hace 5 años
padre
commit
fd4c385fc3

+ 4 - 4
src/main/java/com/style24/admin/biz/dao/TsaMorebetterDao.java

@@ -1,10 +1,9 @@
 package com.style24.admin.biz.dao;
 
+import com.gagaframework.excel.xssf.GagaExcelResultHandler;
 import com.style24.core.support.annotation.ShopDs;
-import com.style24.persistence.domain.MoreBetter;
-import com.style24.persistence.domain.MoreBetterBurden;
-import com.style24.persistence.domain.MoreBetterGoods;
-import com.style24.persistence.domain.MoreBetterSection;
+import com.style24.persistence.domain.*;
+import org.apache.ibatis.session.ResultHandler;
 import org.springframework.stereotype.Component;
 
 import java.util.Collection;
@@ -222,5 +221,6 @@ public interface TsaMorebetterDao {
      * @since 2021. 1. 12
      */
     Collection<MoreBetterGoods> getMorebetterDuplicateList(MoreBetterGoods moreBetterGoods);
+
     /* // CSB 진행 */
 }

+ 48 - 2
src/main/java/com/style24/admin/biz/web/TsaMarketingController.java

@@ -6,11 +6,15 @@ import java.util.List;
 
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.gagaframework.web.util.GagaDateUtil;
+import com.gagaframework.web.util.GagaFileUtil;
 import com.style24.persistence.TscPageRequest;
 import com.style24.persistence.domain.*;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.env.Environment;
+import org.springframework.core.io.InputStreamResource;
+import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -37,6 +41,8 @@ import lombok.extern.slf4j.Slf4j;
 import com.gagaframework.web.parameter.GagaMap;
 import com.gagaframework.web.rest.server.GagaResponse;
 
+import javax.servlet.http.HttpServletRequest;
+
 /**
  * 마케팅 Controller
  * @author xodud1202
@@ -574,10 +580,50 @@ public class TsaMarketingController extends TsaBaseController {
 	 * @author bin2107
 	 * @since 2021. 1. 5
 	 */
-
 	@PostMapping("/morebetter/save")
 	@ResponseBody
-	public GagaResponse saveMorebetterDetail(@RequestBody MoreBetter moreBetter){
+	public GagaMap saveMorebetterDetail(@RequestBody MoreBetter moreBetter){
+		String result = "";
+		GagaMap map = new GagaMap();
+
+		String[] multiSupplyCompCd = moreBetter.getSupplyCompArr().split(",");
+		String[] multiBrand = moreBetter.getBrandArr().split(",");
+		String[] multiGoods = moreBetter.getGoodsArr().split(",");
+
+		MoreBetterGoods moreBetterGoods = new MoreBetterGoods();
+
+		moreBetterGoods.setMultiSupplyCompCd(multiSupplyCompCd);
+		moreBetterGoods.setMultiBrand(multiBrand);
+		moreBetterGoods.setMultiGoods(multiGoods);
+		log.info("[1 saveMorebetterDetail moreBetterGoods]{}",moreBetterGoods);
+
+		// TMTB_GOODS_TEMP TABLE TRUNCATE -> 다른 다다에서 사용중인 상품 조회 -> INSERT
+		morebetterService.createMorebetterGoodsTemp(moreBetterGoods);
+		//log.info("[saveMorebetterDetail createMorebetterGoodsTemp a]{}");
+		// 다른 다다에서 사용중인 상품 조회
+		Collection<MoreBetterGoods> duplicateGoodsList = morebetterService.getMorebetterDuplicateList(moreBetterGoods);
+
+		log.info("[1 duplicateGoodsList size]{}",duplicateGoodsList.size());
+
+		// SELECT -> 지금 내가 선택한 업체&브랜드 + 적용상품에 해당하는 상품 조회 MINUS TMTB_GOODS_TEMP 상품
+		// 조회 건수 있으면 -> 해당 상품코드 엑셀로 던져주기
+		if(duplicateGoodsList.size() > 0){
+			map.set("duplicateYn","Y");
+			map.set("msg", result);
+			map.set("duplicateGoodsList",duplicateGoodsList);
+		}else{
+			// 조회 건수 없으면 -> 저장으로 넘어감
+			//morebetterService.saveMoreBetterDetail(moreBetter);
+			map.set("duplicateYn","N");
+			map.set("msg", message.getMessage("SUCC_0001"));
+		}
+
+		return map;
+	}
+
+	@PostMapping("/morebetter/save2")
+	@ResponseBody
+	public GagaResponse saveMorebetterDetail2(@RequestBody MoreBetter moreBetter){
 		String[] multiSupplyCompCd = moreBetter.getSupplyCompArr().split(",");
 		String[] multiBrand = moreBetter.getBrandArr().split(",");
 		String[] multiGoods = moreBetter.getGoodsArr().split(",");

+ 4 - 0
src/main/java/com/style24/persistence/mybatis/shop/TsaMorebetter.xml

@@ -495,9 +495,12 @@
 		INSERT INTO TB_TMTB_USING_GOODS_TEMP
 			SELECT 	#{regNo} AS REG_NO
 			        ,B.GOODS_CD
+					,G.GOODS_NM
 			  FROM 	TB_TMTB A
 		INNER JOIN  TB_TMTB_APPLY_GOODS B
 				ON  A.TMTB_SQ = B.TMTB_SQ
+		INNER JOIN  TB_GOODS G
+				ON  B.GOODS_CD = G.GOODS_CD
 			WHERE 1=1
 			  AND NOW() BETWEEN DATE_FORMAT(A.TMTB_ST_DT, '%Y-%m-%d %H:%i:%S') AND DATE_FORMAT(A.TMTB_ED_DT, '%Y-%m-%d %H:%i:%S')
 			  AND A.TMTB_STAT = 'G232_11'
@@ -515,6 +518,7 @@
 	<select id="getMorebetterDuplicateList" parameterType="MoreBetterGoods" resultType="MoreBetterGoods">
 		/* TsaMarketing.getMorebetterDuplicateList */
 		SELECT TMP.GOODS_CD
+			  ,TMP.GOODS_NM
 		  FROM TB_TMTB_USING_GOODS_TEMP TMP
 		 WHERE 1=1
 		   AND TMP.REG_NO = #{regNo}

+ 34 - 3
src/main/webapp/WEB-INF/views/marketing/MorebetterPopupForm.html

@@ -155,6 +155,14 @@
 									</div>
 								</td>
 							</tr>
+							<tr > <!--class="off"-->
+								<th>업체&브랜드상품</th>
+								<td>
+									<div class="padding10" > <!--style="display: none;"-->
+										<div id="gridDuplicateGoodsList" style="width:100%; height:200px;" class="ag-theme-balham"></div>
+									</div>
+								</td>
+							</tr>
 						</table>
 					</div>
 				</div>
@@ -399,6 +407,12 @@
 		{headerName: "구간시퀀스", field: "tmtbSectionSq", width: 150, cellClass: 'text-center', hide: true},
 		{headerName: "할인값시퀀스", field: "tmtbValSq", width: 150, cellClass: 'text-center', hide: true}
 	];
+	// 다른 다다익선 사용중인 중복상품 엑셀 리스트 설정
+	var columnDuplicateGoodsList = [
+		{width: 40, minWidth: 40, cellClass: 'text-center', headerCheckboxSelection: true, checkboxSelection: true, filter: false},
+		{headerName: "상품코드", field: "goodsCd", width: 120, cellClass: 'text-center'},
+		{headerName: "상품명", field: "goodsNm", width: 120, cellClass: 'text-center'}
+	];
 
 	// 공급업체 리스트 설정
 	var gridOptionsFGCompanyList = gagaAgGrid.getGridOptions(columnFGCompanyList);
@@ -427,6 +441,10 @@
 	gridOptionsSectionGbList.rowSelection = "multiple";
 	gridOptionsSectionGbList.stopEditingWhenGridLosesFocus = true;
 
+	// 다른 다다익선 사용중인 중복상품 엑셀 리스트 설정
+	var gridOptionsDuplicateGoodsList = gagaAgGrid.getGridOptions(columnDuplicateGoodsList);
+	gridOptionsDuplicateGoodsList.rowSelection = "multiple";
+
 	$(document).ready(function() {
 		// 1.그리드 그리기
 		gagaAgGrid.createGrid("gridFGPromotionCompanyList", gridOptionsFGCompanyList);
@@ -435,6 +453,7 @@
 		gagaAgGrid.createGrid("gridFGExceptGoodsList", gridOptionsFGExceptGoodsList);
 		gagaAgGrid.createGrid("gridApplyBurdenList", gridOptionsApplyBurdenList);
 		gagaAgGrid.createGrid("gridSectionGbList", gridOptionsSectionGbList);
+		gagaAgGrid.createGrid("gridDuplicateGoodsList", gridOptionsDuplicateGoodsList);
 
 		// 2. 그리드 데이터 바인딩
 		if(mode == "U"){
@@ -548,12 +567,24 @@
 		$('#moreBetterForm input[name=goodsArr]').val(multiGoods.join(','));
 
 		var jsonData = JSON.stringify($('#moreBetterForm').serializeObject());
-		gagajf.ajaxJsonSubmit($('#moreBetterForm').prop('action'), jsonData, function() {
+		gagajf.ajaxJsonSubmit($('#moreBetterForm').prop('action'), jsonData, fnMorebetterSaveCollback);
+	});
+
+	var fnMorebetterSaveCollback = function(result){
+		console.log('duplicateYn::::'+result.duplicateYn);
+		if(result.duplicateYn == "Y"){
+			console.log('duplicateGoodsList Size::'+ result.duplicateGoodsList.length);
+			for(let i=0; i<result.duplicateGoodsList.length; i++){
+				gagaAgGrid.addRowData(gridOptionsDuplicateGoodsList, {"goodsCd" : result.duplicateGoodsList[i].goodsCd, "goodsNm" : result.duplicateGoodsList[i].goodsNm});
+			}
+			gagaAgGrid.exportToExcel('다다익선 중복상품 목록', gridOptionsDuplicateGoodsList);
+		}else{
+			mcxDialog.alert(result.msg);
 			fnMorebetterFormClose();
 			$('#btnInit').trigger('click');
 			$('#btnSearch').trigger('click');
-		});
-	});
+		}
+	}
 
 	// 저장 버튼 클릭시
 	$('#btnMorebetterSave2').on('click', function() {