ソースを参照

환경설정 추가

gagamel 5 年 前
コミット
58756dc617

+ 34 - 46
style24.core/src/main/java/com/style24/core/biz/dao/TscPolicyDao.java → style24.admin/src/main/java/com/style24/admin/biz/dao/TsaEnvsetDao.java

@@ -1,46 +1,34 @@
-package com.style24.core.biz.dao;
-
-import java.util.Collection;
-
-import org.springframework.stereotype.Repository;
-
-import com.style24.core.support.annotation.ShopDs;
-import com.style24.persistence.domain.Envset;
-
-/**
- * 정책 Dao
- *
- * @author gagamel
- * @since 2020. 10. 5
- */
-@ShopDs
-@Repository
-public interface TscPolicyDao {
-
-	/**
-	 * 환경설정 조회
-	 * @param envset - 환경설정 정보
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 10. 5
-	 */
-	Envset getEnvset(Envset envset);
-
-	/**
-	 * 환경설정 저장
-	 * @param envset - 환경설정 정보
-	 * @author gagamel
-	 * @since 2020. 10. 5
-	 */
-	void createEnvset(Envset envset);
-
-	/**
-	 * 환경설정 목록
-	 * @param envset - 환경설정 정보
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 10. 5
-	 */
-	Collection<Envset> getEnvsetList(Envset envset);
-
-}
+package com.style24.admin.biz.dao;
+
+import java.util.Collection;
+
+import com.style24.core.support.annotation.ShopDs;
+import com.style24.persistence.domain.Envset;
+
+/**
+ * 환경설정 Dao
+ * 
+ * @author gagamel
+ * @since 2020. 10. 21
+ */
+@ShopDs
+public interface TsaEnvsetDao {
+
+	/**
+	 * 환경설정 저장
+	 * @param envset - 환경설정 정보
+	 * @author gagamel
+	 * @since 2020. 10. 21
+	 */
+	void createEnvset(Envset envset);
+
+	/**
+	 * 환경설정 목록
+	 * @param envset - 환경설정 정보
+	 * @return
+	 * @author gagamel
+	 * @since 2020. 10. 21
+	 */
+	Collection<Envset> getEnvsetList(Envset envset);
+
+}

+ 74 - 0
style24.admin/src/main/java/com/style24/admin/biz/service/TsaEnvsetService.java

@@ -0,0 +1,74 @@
+package com.style24.admin.biz.service;
+
+import java.util.Collection;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cache.annotation.CacheEvict;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.style24.admin.biz.dao.TsaEnvsetDao;
+import com.style24.admin.support.security.session.TsaSession;
+import com.style24.core.biz.dao.TscEnvsetDao;
+import com.style24.persistence.domain.Envset;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 환경설정 Service
+ *
+ * @author gagamel
+ * @since 2020. 10. 21
+ */
+@Service
+@Slf4j
+public class TsaEnvsetService {
+
+	@Autowired
+	private TscEnvsetDao cenvsetDao;
+
+	@Autowired
+	private TsaEnvsetDao envsetDao;
+
+	/**
+	 * 환경설정정보 저장
+	 * 		정책은 중요한 정보로서 캐싱 문제 발생 시 심각해질 수 있으므로 캐싱처리 안 함
+	 * @param envset - 환경설정 정보
+	 * @author gagamel
+	 * @since 2020. 10. 21
+	 */
+	@Transactional("shopTxnManager")
+	public void createEnvset(Envset envset) {
+		envset.setRegNo(TsaSession.getInfo().getUserNo());
+		envsetDao.createEnvset(envset);
+	}
+
+	/**
+	 * 환경설정정보 - 메타정보 저장. 수정 시 캐싱 삭제
+	 * @param envset - 환경설정 정보
+	 * @author gagamel
+	 * @since 2020. 10. 21
+	 */
+	@Transactional("shopTxnManager")
+	@CacheEvict(value = "metainfo", allEntries = true)
+	public void createEnvsetMetaInfo(Envset envset) {
+		envset.setRegNo(TsaSession.getInfo().getUserNo());
+		envsetDao.createEnvset(envset);
+	}
+
+	/**
+	 * 환경설정이력 목록
+	 * @param siteCd - 사이트코드
+	 * @param envsetType - 환경설정유형
+	 * @return
+	 * @author gagamel
+	 * @since 2020. 10. 21
+	 */
+	public Collection<Envset> getEnvsetHistoryList(String siteCd, String envsetType) {
+		Envset envset = new Envset();
+		envset.setSiteCd(siteCd);
+		envset.setEnvsetType(envsetType);
+		return envsetDao.getEnvsetList(envset);
+	}
+
+}

+ 141 - 0
style24.admin/src/main/java/com/style24/admin/biz/web/TsaEnvsetController.java

@@ -0,0 +1,141 @@
+package com.style24.admin.biz.web;
+
+import java.util.Collection;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.servlet.ModelAndView;
+
+import com.style24.admin.biz.service.TsaEnvsetService;
+import com.style24.admin.biz.service.TsaRendererService;
+import com.style24.admin.support.controller.TsaBaseController;
+import com.style24.core.biz.service.TscEnvsetService;
+import com.style24.core.support.message.TscMessageByLocale;
+import com.style24.persistence.domain.Envset;
+
+import lombok.extern.slf4j.Slf4j;
+
+import com.gagaframework.web.rest.server.GagaResponse;
+
+/**
+ * 환경설정 Controller
+ *
+ * @author jaewonHo
+ * @since 2020. 10. 21
+ */
+@Controller
+@RequestMapping("/envset")
+@Slf4j
+public class TsaEnvsetController extends TsaBaseController {
+
+	@Autowired
+	private TscMessageByLocale message;
+
+	@Autowired
+	private TscEnvsetService cenvsetService;
+
+	@Autowired
+	private TsaEnvsetService envsetService;
+
+	@Autowired
+	private TsaRendererService rendererService;
+
+	/**
+	 * 기본환경설정 화면
+	 * @return
+	 * @author gagamel
+	 * @since 2020. 10. 21
+	 */
+	@GetMapping("/basic/form")
+	public ModelAndView basicSetForm() {
+		ModelAndView mav = new ModelAndView();
+
+		// 사이트 목록
+		mav.addObject("siteList", rendererService.getAvailCommonCodeList("G000"));
+
+		mav.setViewName("envset/BasicEnvsetForm");
+
+		return mav;
+	}
+
+	/**
+	 * 사이트별 환경설정유형에 따른 환경설정 정보
+	 * @param siteCd - 사이트코드
+	 * @param envsetType - 환경설정유형
+	 * @return
+	 * @author gagamel
+	 * @since 2020. 10. 21
+	 */
+	@GetMapping("/{siteCd}/{envsetType}")
+	@ResponseBody
+	public Envset getEnvset(@PathVariable String siteCd, @PathVariable String envsetType) {
+		return cenvsetService.getEnvset(siteCd, envsetType);
+	}
+
+	/**
+	 * 환경설정 정보 저장
+	 * @param envset - 환경설정 정보
+	 * @return
+	 * @author gagamel
+	 * @since 2020. 10. 21
+	 */
+	@PostMapping("/create")
+	@ResponseBody
+	public GagaResponse createEnvset(@RequestBody Envset envset) {
+		if (envset.getEnvsetType().equals("B10")) {
+			// 메타 정보 수정 시는 캐싱 삭제되도록
+			// 중요하지 않은 정보로서 캐싱 삭제해도 됨.
+			envsetService.createEnvsetMetaInfo(envset);
+		} else {
+			// 그 외는 캐싱 삭제 안 함
+			// 정책은 중요한 정보로서 캐싱 문제 발생 시 심각해질 수 있으므로 캐싱처리 안 함(2020.05.14. gagamel)
+			envsetService.createEnvset(envset);
+		}
+
+		return super.ok(message.getMessage("SUCC_0001"));
+	}
+
+	/**
+	 * 사이트별 환경설정유형에 따른 환경설정이력 화면
+	 * @param siteCd - 사이트코드
+	 * @param envsetType - 환경설정유형
+	 * @param envsetTypeNm - 환경설정유형명
+	 * @return
+	 * @author gagamel
+	 * @since 2020. 10. 21
+	 */
+	@GetMapping("/history/form")
+	public ModelAndView basicSetForm(@RequestParam(value = "siteCd", required = true) String siteCd, @RequestParam(value = "envsetType", required = true) String envsetType, @RequestParam(value = "envsetTypeNm", required = true) String envsetTypeNm) {
+		ModelAndView mav = new ModelAndView();
+
+		mav.addObject("siteCd", siteCd);
+		mav.addObject("envsetType", envsetType);
+		mav.addObject("envsetTypeNm", envsetTypeNm);
+
+		mav.setViewName("envset/EnvsetHistoryForm");
+
+		return mav;
+	}
+
+	/**
+	 * 사이트별 환경설정유형에 따른 환경설정이력 목록
+	 * @param siteCd - 사이트코드
+	 * @param envsetType - 환경설정유형
+	 * @return
+	 * @author gagamel
+	 * @since 2020. 10. 21
+	 */
+	@GetMapping("/history/{siteCd}/{envsetType}")
+	@ResponseBody
+	public Collection<Envset> getEnvsetHistoryList(@PathVariable String siteCd, @PathVariable String envsetType) {
+		return envsetService.getEnvsetHistoryList(siteCd, envsetType);
+	}
+
+}

+ 64 - 0
style24.admin/src/main/java/com/style24/persistence/mybatis/shop/TsaEnvset.xml

@@ -0,0 +1,64 @@
+<?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.admin.biz.dao.TsaEnvsetDao">
+
+	<!-- 환경설정 생성 -->
+	<insert id="createEnvset" parameterType="Envset">
+		/* TsaEnvset.createEnvset */
+		INSERT INTO TB_ENVSET (
+		       ENVSET_SQ
+		     , SITE_CD
+		     , ENVSET_TYPE
+		     , ENVSET_NM
+		     , STR_SET_VAL1
+		     , STR_SET_VAL2
+		     , STR_SET_VAL3
+		     , STR_SET_VAL4
+		     , STR_SET_VAL5
+		     , STR_SET_VAL6
+		     , STR_SET_VAL7
+		     , STR_SET_VAL8
+		     , REG_NO
+		     , REG_DT
+		)
+		VALUES (
+		       NULL
+		     , #{siteCd}
+		     , #{envsetType}
+		     , #{envsetNm}
+		     , #{strSetVal1}
+		     , #{strSetVal2}
+		     , #{strSetVal3}
+		     , #{strSetVal4}
+		     , #{strSetVal5}
+		     , #{strSetVal6}
+		     , #{strSetVal7}
+		     , #{strSetVal8}
+		     , #{regNo}
+		     , NOW()
+		)
+	</insert>
+
+	<!-- 환경설정 목록 -->
+	<select id="getEnvsetList" parameterType="Envset" resultType="Envset">
+		/* TsaEnvset.getEnvsetList */
+		SELECT SITE_CD
+		     , ENVSET_TYPE
+		     , ENVSET_NM
+		     , STR_SET_VAL1
+		     , STR_SET_VAL2
+		     , STR_SET_VAL3
+		     , STR_SET_VAL4
+		     , STR_SET_VAL5
+		     , STR_SET_VAL6
+		     , STR_SET_VAL7
+		     , STR_SET_VAL8
+		     , REG_NO
+		     , DATE_FORMAT(REG_DT, '%Y%m%d%H%i%S') AS REG_DT
+		FROM   TB_ENVSET
+		WHERE  SITE_CD = #{siteCd}
+		AND    ENVSET_TYPE = #{envsetType}
+		ORDER  BY ENVSET_SQ DESC
+	</select>
+
+</mapper>

+ 267 - 0
style24.admin/src/main/webapp/WEB-INF/views/envset/BasicEnvsetForm.html

@@ -0,0 +1,267 @@
+<!DOCTYPE html>
+<html lang="ko"
+	xmlns:th="http://www.thymeleaf.org">
+<!--
+ *******************************************************************************
+ * @source  : BasicEnvsetForm.html
+ * @desc    : 기본환경설정 Page
+ *============================================================================
+ * STYLE24
+ * Copyright(C) 2020 TSIT, All rights reserved.
+ *============================================================================
+ * VER  DATE         AUTHOR      DESCRIPTION
+ * ===  ===========  ==========  =============================================
+ * 1.0  2020.10.21   gagamel     최초 작성
+ *******************************************************************************
+ -->
+	<div id="main">
+		<!-- 메인타이틀 영역 -->
+		<div class="main-title">
+		</div>
+		<!-- //메인타이틀 영역 -->
+		
+		<!-- 메뉴 설명 -->
+		<div class="infoBox menu-desc">
+		</div>
+		<!-- //메뉴 설명 -->
+		
+		<!-- 검색조건 영역 -->
+		<div class="panelStyle">
+			<table class="frmStyle" aria-describedby="검색조건">
+				<colgroup>
+					<col style="width:10%;"/>
+					<col/>
+				</colgroup>
+				<tr>
+					<th>사이트</th>
+					<td>
+						<select name="siteCd" class="w150" onchange="fnSearch();">
+							<option th:if="${siteList}" th:each="oneData, status : ${siteList}" th:value="${oneData.cd}" th:text="${'[' + oneData.cd + '] ' + oneData.cdNm}"></option>
+						</select>
+					</td>
+				</tr>
+			</table>
+		</div>
+		<!-- 검색조건 영역 -->
+
+		<div class="panelStyle">
+			<h4>쇼핑몰Meta정보</h4>
+			<button type="button" class="btn btn-success btn-ssm" onclick="fnSave('B10');">저장</button>
+			<button type="button" class="btn btn-info btn-ssm" onclick="fnOpenEnvsetPopup('B10', '쇼핑몰Meta정보');">이력보기</button>
+			
+			<table class="frmStyle" aria-describedby="쇼핑몰Meta정보">
+				<colgroup>
+					<col style="width: 15%;"/>
+					<col/>
+				</colgroup>
+				<tbody>
+					<tr>
+						<th>웹브라우저Title</th>
+						<td>
+							<input name="b10StrSetVal1" type="text" class="w500" maxlength="200"/>
+							<span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>웹 브라우저 상단에 노출되는 사이트 소개 문구입니다.</span>
+						</td>
+					</tr>
+					<tr>
+						<th>쇼핑몰Title(og:title)</th>
+						<td>
+							<input name="b10StrSetVal2" type="text" class="w500" maxlength="200"/>
+							<span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>오픈그래프 Title입니다. 영문/한글/숫자만 입력하세요.</span>
+						</td>
+					</tr>
+					<tr>
+						<th>쇼핑몰설명(og:description)</th>
+						<td>
+							<input name="b10StrSetVal3" type="text" class="w500" maxlength="200"/>
+							<span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>오픈그래프 Description입니다. 200자 이내의 영문/한글/숫자만 입력하세요.</span>
+						</td>
+					</tr>
+					<tr>
+						<th>쇼핑몰이미지(og:image)</th>
+						<td>
+							<div class="uFile w500">
+								<input type="file" id="b10StrSetVal4" name="b10StrSetVal4" class="uFileInput"/>
+								<label for="b10StrSetVal4" class="uFileLabel">쇼핑몰이미지 선택</label>
+								<input type="hidden" name="b10StrSetVal4OrgFileNm"/>
+								<input type="hidden" name="b10StrSetVal4SysFileNm"/>
+							</div>
+							<a id="b10StrSetVal4FileDownload" href="#" style="display: none;" onclick="fnDownloadFile('b10StrSetVal4');"></a>
+							<span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>오픈그래프 Image입니다</span>
+						</td>
+					</tr>
+					<tr>
+						<th>키워드(Keywords)</th>
+						<td>
+							<input name="b10StrSetVal5" type="text" class="w500" maxlength="70"/>
+							<span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>70자 이내로 작성하시고 같은 단어는 3회 이상 반복하시면 안 됩니다.</span>
+						</td>
+					</tr>
+					<tr>
+						<th>파비콘이미지</th>
+						<td>
+							<div class="uFile w500">
+								<input type="file" id="b10StrSetVal6" name="b10StrSetVal6" class="uFileInput"/>
+								<label for="b10StrSetVal6" class="uFileLabel">파비콘이미지 선택</label>
+								<input type="hidden" name="b10StrSetVal6OrgFileNm"/>
+								<input type="hidden" name="b10StrSetVal6SysFileNm"/>
+							</div>
+							<a id="b10StrSetVal6FileDownload" href="#" style="display: none;" onclick="fnDownloadFile('b10StrSetVal6');"></a>
+							<span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>16x16 사이즈의 아이콘 이미지(확장자:ico)</span>
+						</td>
+					</tr>
+				</tbody>
+			</table>
+			
+			<h4>기본설정</h4>
+			<button type="button" class="btn btn-success btn-ssm" onclick="fnSave('B11');">저장</button>
+			<button type="button" class="btn btn-info btn-ssm" onclick="fnOpenEnvsetPopup('B11', '기본설정');">이력보기</button>
+			<table class="frmStyle" aria-describedby="기본설정">
+				<colgroup>
+					<col style="width: 15%;"/>
+					<col/>
+				</colgroup>
+				<tbody>
+					<tr>
+						<th>탈퇴후재가입불가기간(일)</th>
+						<td><input name="b11StrSetVal1" type="text" class="w50 aR" maxlength="3" data-valid-type="integer" data-valid-name="탈퇴후재가입불가기간"/><span class="cRed">개월</span> 동안 탈퇴 후 재가입 불가합니다.</td>
+					</tr>
+					<tr>
+						<th>휴면회원선정기간(일)</th>
+						<td><input name="b11StrSetVal2" type="text" class="w50 aR" maxlength="3" data-valid-type="integer" data-valid-name="휴면회원선정기간"/><span class="cRed">일</span> 동안 사이트에 로그인 하지 않은 회원을 휴면회원으로 선정합니다.</td>
+					</tr>
+					<tr>
+						<th>휴면회원전환기간(일)</th>
+						<td><input name="b11StrSetVal3" type="text" class="w50 aR" maxlength="3" data-valid-type="integer" data-valid-name="휴면회원전환기간"/><span class="cRed">일</span> 동안 사이트에 로그인 하지 않은 회원을 휴면회원으로 전환합니다.</td>
+					</tr>
+					<tr>
+						<th>회원등급산정기간</th>
+						<td>직전월 이전 <input name="b11StrSetVal4" type="text" class="w50 aR" maxlength="3" data-valid-type="integer" data-valid-name="회원등급산정기간"/><span class="cRed">개월</span> 기간동안의 매출금액을 기준으로 월초에 산정합니다. <span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>0으로 설정하면 회원별등급산정을 하지 않습니다.</span></td>
+					</tr>
+					<tr>
+						<th>무료배송비최소주문금액</th>
+						<td>최소주문금액이 <input name="b11StrSetVal5" type="text" class="w100 aR" maxlength="6" data-valid-type="integer" data-valid-name="무료배송비최소주문금액"/> 원 이상이면 배송비가 무료입니다. <span class="infoTxt cBlue marL20"><i class="fa fa-info-circle" aria-hidden="true"></i>이 값은 기본값이며 공급업체별로 다르게 설정할 수도 있습니다.</span></td>
+					</tr>
+				</tbody>
+			</table>
+		</div>
+	</div>
+
+<script th:inline="javascript">
+/*<![CDATA[*/
+	// 조회
+	var fnSearch = function() {
+		var siteCd = $('select[name=siteCd]').val();
+		var actionUrl = '/envset/' + siteCd;
+
+		// 쇼핑몰Meta정보
+		$.getJSON(actionUrl + '/B10'
+				, function(result, status) {
+					if (status === 'success') {
+						if (!gagajf.isNull(result)) {
+							$('input[name=b10StrSetVal1]').val(result.strSetVal1);
+							$('input[name=b10StrSetVal2]').val(result.strSetVal2);
+							$('input[name=b10StrSetVal3]').val(result.strSetVal3);
+							
+							if (!gagajf.isNull(result.strSetVal4)) {
+								$('input[name=b10StrSetVal4SysFileNm]').val(result.strSetVal4);
+								$('#b10StrSetVal4FileDownload').html(result.strSetVal4);
+								$('#b10StrSetVal4FileDownload').show();
+							}
+							
+							$('input[name=b10StrSetVal5]').val(result.strSetVal5);
+							
+							if (!gagajf.isNull(result.strSetVal6)) {
+								$('input[name=b10StrSetVal6SysFileNm]').val(result.strSetVal6);
+								$('#b10StrSetVal6FileDownload').html(result.strSetVal6);
+								$('#b10StrSetVal6FileDownload').show();
+							}
+						}
+					}
+				});
+
+		// 기본설정
+		$.getJSON(actionUrl + '/B11'
+				, function(result, status) {
+					if (status === 'success') {
+						if (!gagajf.isNull(result)) {
+							$('input[name=b11StrSetVal1]').val(result.strSetVal1);
+							$('input[name=b11StrSetVal2]').val(result.strSetVal2);
+							$('input[name=b11StrSetVal3]').val(result.strSetVal3);
+							$('input[name=b11StrSetVal4]').val(result.strSetVal4);
+							$('input[name=b11StrSetVal5]').val(gagajf.isNull(result.strSetVal5) ? result.strSetVal5 : result.strSetVal5.addComma());
+						}
+					}
+				});
+	}
+
+	// 파일첨부 선택 시
+	$('#b10StrSetVal4').on('change', function() { fnChooseFile(this); });
+	$('#b10StrSetVal6').on('change', function() { fnChooseFile(this); });
+
+	var fnChooseFile = function(obj) {
+		// multiple 속성이 있으면 files에는 다수의 객체가 할당됨
+		var file = obj.files[0];
+
+		// 파일 업로드
+		gagajf.ajaxFileUpload('/common/file/upload?subDir=/envset'
+				, file
+				, function(result) {
+					// 업로드한 파일명 설정
+					$('input[name=' + obj.name + 'OrgFileNm]').val(result.oldFileName);
+					$('input[name=' + obj.name + 'SysFileNm]').val(result.newFileName);
+				}
+		);
+	}
+
+	// 파일다운로드
+	var fnDownloadFile = function(id) {
+		$('#' + id + 'FileDownload').attr({
+			href : _uploadDefaultUrl + '/envset/' + $('input[name=' + id + 'SysFileNm]').val(),
+			target: '_blank'
+		}).get(0).click();
+	}
+
+	// 저장 처리
+	var fnSave = function(envsetType) {
+		var params = new Object();
+		params.siteCd = $('select[name=siteCd]').val();
+		params.envsetType = envsetType;
+
+		if (envsetType == 'B10') { // 쇼핑몰Meta정보
+			params.envsetNm = '쇼핑몰Meta정보';
+			params.strSetVal1 = $('input[name=b10StrSetVal1]').val();
+			params.strSetVal2 = $('input[name=b10StrSetVal2]').val();
+			params.strSetVal3 = $('input[name=b10StrSetVal3]').val();
+			params.strSetVal4 = $('input[name=b10StrSetVal4SysFileNm]').val();
+			params.strSetVal5 = $('input[name=b10StrSetVal5]').val();
+			params.strSetVal6 = $('input[name=b10StrSetVal6SysFileNm]').val();
+		} else if (envsetType == 'B11') { // 기본설정
+			params.envsetNm = '기본설정';
+			params.strSetVal1 = $('input[name=b11StrSetVal1]').val();
+			params.strSetVal2 = $('input[name=b11StrSetVal2]').val();
+			params.strSetVal3 = $('input[name=b11StrSetVal3]').val();
+			params.strSetVal4 = $('input[name=b11StrSetVal4]').val();
+			params.strSetVal5 = $('input[name=b11StrSetVal5]').val().removeComma();
+			params.strSetVal6 = $('input[name=b10StrSetVal6SysFileNm]').val();
+		}
+
+		var jsonData = JSON.stringify(params);
+		gagajf.ajaxJsonSubmit('/envset/create', jsonData);
+	}
+
+	// 환경설정 이력보기 팝업
+	var fnOpenEnvsetPopup = function(envsetType, envsetTypeNm) {
+		var actionUrl = '/envset/history/form'
+				+ '?siteCd=' + $('select[name=siteCd]').val()
+				+ '&envsetType=' + envsetType
+				+ '&envsetTypeNm=' + encodeURIComponent(envsetTypeNm);
+		cfnOpenModalPopup(actionUrl, 'popupEnvset');
+	}
+	
+	$(document).ready(function() {
+		$('select[name=siteCd]').trigger('change');
+	});
+/*]]>*/
+</script>
+
+</html>

+ 24 - 0
style24.core/src/main/java/com/style24/core/biz/dao/TscEnvsetDao.java

@@ -0,0 +1,24 @@
+package com.style24.core.biz.dao;
+
+import com.style24.core.support.annotation.ShopDs;
+import com.style24.persistence.domain.Envset;
+
+/**
+ * 환경설정 Dao
+ *
+ * @author gagamel
+ * @since 2020. 10. 5
+ */
+@ShopDs
+public interface TscEnvsetDao {
+
+	/**
+	 * 환경설정 조회
+	 * @param envset - 환경설정 정보
+	 * @return
+	 * @author gagamel
+	 * @since 2020. 10. 5
+	 */
+	Envset getEnvset(Envset envset);
+
+}

+ 52 - 40
style24.core/src/main/java/com/style24/core/biz/service/TscPolicyService.java → style24.core/src/main/java/com/style24/core/biz/service/TscEnvsetService.java

@@ -3,23 +3,23 @@ package com.style24.core.biz.service;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import com.style24.core.biz.dao.TscPolicyDao;
+import com.style24.core.biz.dao.TscEnvsetDao;
 import com.style24.persistence.domain.Envset;
 
 import lombok.extern.slf4j.Slf4j;
 
 /**
- * 정 Service
+ * 환경설정 Service
  * 
  * @author gagamel
  * @since 2020. 10. 5
  */
 @Service
 @Slf4j
-public class TscPolicyService {
+public class TscEnvsetService {
 
 	@Autowired
-	private TscPolicyDao policyDao;
+	private TscEnvsetDao policyDao;
 
 	/**
 	 * 사이트별 환경설정유형에 따른 환경설정 정보
@@ -61,11 +61,11 @@ public class TscPolicyService {
 	 * @param siteCd - 사이트코드
 	 * @return
 	 * @author gagamel
-	 * @since 2020. 10. 5
+	 * @since 2020. 10. 21
 	 */
 	public int getSelfGoodsPcPoint10(String siteCd) {
-		Envset envset = this.getEnvset(siteCd, "P11");
-		return envset.getNumSetVal1();
+		Envset envset = this.getEnvset(siteCd, "C15");
+		return Integer.parseInt(envset.getStrSetVal1());
 	}
 
 	/**
@@ -73,11 +73,11 @@ public class TscPolicyService {
 	 * @param siteCd - 사이트코드
 	 * @return
 	 * @author gagamel
-	 * @since 2020. 10. 5
+	 * @since 2020. 10. 21
 	 */
 	public int getSelfGoodsMobilePoint10(String siteCd) {
-		Envset envset = this.getEnvset(siteCd, "P11");
-		return envset.getNumSetVal2();
+		Envset envset = this.getEnvset(siteCd, "C15");
+		return Integer.parseInt(envset.getStrSetVal2());
 	}
 
 	/**
@@ -85,11 +85,11 @@ public class TscPolicyService {
 	 * @param siteCd - 사이트코드
 	 * @return
 	 * @author gagamel
-	 * @since 2020. 10. 5
+	 * @since 2020. 10. 21
 	 */
 	public int getSelfGoodsPcPoint20(String siteCd) {
-		Envset envset = this.getEnvset(siteCd, "P11");
-		return envset.getNumSetVal3();
+		Envset envset = this.getEnvset(siteCd, "C15");
+		return Integer.parseInt(envset.getStrSetVal3());
 	}
 
 	/**
@@ -97,11 +97,11 @@ public class TscPolicyService {
 	 * @param siteCd - 사이트코드
 	 * @return
 	 * @author gagamel
-	 * @since 2020. 10. 5
+	 * @since 2020. 10. 21
 	 */
 	public int getSelfGoodsMobilePoint20(String siteCd) {
-		Envset envset = this.getEnvset(siteCd, "P11");
-		return envset.getNumSetVal4();
+		Envset envset = this.getEnvset(siteCd, "C15");
+		return Integer.parseInt(envset.getStrSetVal4());
 	}
 
 	/**
@@ -109,11 +109,11 @@ public class TscPolicyService {
 	 * @param siteCd - 사이트코드
 	 * @return
 	 * @author gagamel
-	 * @since 2020. 10. 5
+	 * @since 2020. 10. 21
 	 */
 	public int getEntrGoodsPcPoint10(String siteCd) {
-		Envset envset = this.getEnvset(siteCd, "P11");
-		return envset.getNumSetVal5();
+		Envset envset = this.getEnvset(siteCd, "C15");
+		return Integer.parseInt(envset.getStrSetVal5());
 	}
 
 	/**
@@ -121,11 +121,11 @@ public class TscPolicyService {
 	 * @param siteCd - 사이트코드
 	 * @return
 	 * @author gagamel
-	 * @since 2020. 10. 5
+	 * @since 2020. 10. 21
 	 */
 	public int getEntrGoodsMobilePoint10(String siteCd) {
-		Envset envset = this.getEnvset(siteCd, "P11");
-		return envset.getNumSetVal6();
+		Envset envset = this.getEnvset(siteCd, "C15");
+		return Integer.parseInt(envset.getStrSetVal6());
 	}
 
 	/**
@@ -133,11 +133,11 @@ public class TscPolicyService {
 	 * @param siteCd - 사이트코드
 	 * @return
 	 * @author gagamel
-	 * @since 2020. 10. 5
+	 * @since 2020. 10. 21
 	 */
 	public int getEntrGoodsPcPoint20(String siteCd) {
-		Envset envset = this.getEnvset(siteCd, "P11");
-		return envset.getNumSetVal7();
+		Envset envset = this.getEnvset(siteCd, "C15");
+		return Integer.parseInt(envset.getStrSetVal7());
 	}
 
 	/**
@@ -145,11 +145,11 @@ public class TscPolicyService {
 	 * @param siteCd - 사이트코드
 	 * @return
 	 * @author gagamel
-	 * @since 2020. 10. 5
+	 * @since 2020. 10. 21
 	 */
 	public int getEntrGoodsMobilePoint20(String siteCd) {
-		Envset envset = this.getEnvset(siteCd, "P11");
-		return envset.getNumSetVal8();
+		Envset envset = this.getEnvset(siteCd, "C15");
+		return Integer.parseInt(envset.getStrSetVal8());
 	}
 
 	/**
@@ -157,11 +157,11 @@ public class TscPolicyService {
 	 * @param siteCd - 사이트코드
 	 * @return
 	 * @author gagamel
-	 * @since 2020. 10. 5
+	 * @since 2020. 10. 21
 	 */
 	public int getTextReviewPoint(String siteCd) {
-		Envset envset = this.getEnvset(siteCd, "P12");
-		return envset.getNumSetVal1();
+		Envset envset = this.getEnvset(siteCd, "C16");
+		return Integer.parseInt(envset.getStrSetVal3());
 	}
 
 	/**
@@ -169,11 +169,11 @@ public class TscPolicyService {
 	 * @param siteCd - 사이트코드
 	 * @return
 	 * @author gagamel
-	 * @since 2020. 10. 5
+	 * @since 2020. 10. 21
 	 */
 	public int getPhotoReviewPoint(String siteCd) {
-		Envset envset = this.getEnvset(siteCd, "P12");
-		return envset.getNumSetVal2();
+		Envset envset = this.getEnvset(siteCd, "C16");
+		return Integer.parseInt(envset.getStrSetVal4());
 	}
 
 	/**
@@ -181,11 +181,11 @@ public class TscPolicyService {
 	 * @param siteCd - 사이트코드
 	 * @return
 	 * @author gagamel
-	 * @since 2020. 10. 5
+	 * @since 2020. 10. 21
 	 */
 	public int getFirstTextReviewPoint(String siteCd) {
-		Envset envset = this.getEnvset(siteCd, "P12");
-		return envset.getNumSetVal3();
+		Envset envset = this.getEnvset(siteCd, "C16");
+		return Integer.parseInt(envset.getStrSetVal5());
 	}
 
 	/**
@@ -193,11 +193,23 @@ public class TscPolicyService {
 	 * @param siteCd - 사이트코드
 	 * @return
 	 * @author gagamel
-	 * @since 2020. 10. 5
+	 * @since 2020. 10. 21
 	 */
 	public int getFirstPhotoReviewPoint(String siteCd) {
-		Envset envset = this.getEnvset(siteCd, "P12");
-		return envset.getNumSetVal4();
+		Envset envset = this.getEnvset(siteCd, "C16");
+		return Integer.parseInt(envset.getStrSetVal6());
+	}
+
+	/**
+	 * 베스트상품평포인트 가져오기
+	 * @param siteCd - 사이트코드
+	 * @return
+	 * @author gagamel
+	 * @since 2020. 10. 21
+	 */
+	public int getBestReviewPoint(String siteCd) {
+		Envset envset = this.getEnvset(siteCd, "C16");
+		return Integer.parseInt(envset.getStrSetVal7());
 	}
 
 }

+ 1 - 9
style24.core/src/main/java/com/style24/persistence/domain/Envset.java

@@ -19,7 +19,7 @@ public class Envset implements Serializable {
 	private Integer envsetSq;
 	private String siteCd;
 	private String envsetType;
-	private String colDesc;
+	private String envsetNm;
 	private String strSetVal1;
 	private String strSetVal2;
 	private String strSetVal3;
@@ -28,14 +28,6 @@ public class Envset implements Serializable {
 	private String strSetVal6;
 	private String strSetVal7;
 	private String strSetVal8;
-	private int numSetVal1;
-	private int numSetVal2;
-	private int numSetVal3;
-	private int numSetVal4;
-	private int numSetVal5;
-	private int numSetVal6;
-	private int numSetVal7;
-	private int numSetVal8;
 
 	private String strSetNm1;
 	private String strSetNm2;

+ 27 - 0
style24.core/src/main/java/com/style24/persistence/mybatis/shop/TscEnvset.xml

@@ -0,0 +1,27 @@
+<?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.core.biz.dao.TscEnvsetDao">
+
+	<!-- 환경설정 정보 -->
+	<select id="getEnvset" parameterType="Envset" resultType="Envset">
+		/* TscEnvset.getEnvset */
+		SELECT SITE_CD
+		     , ENVSET_TYPE
+		     , ENVSET_NM
+		     , STR_SET_VAL1
+		     , STR_SET_VAL2
+		     , STR_SET_VAL3
+		     , STR_SET_VAL4
+		     , STR_SET_VAL5
+		     , STR_SET_VAL6
+		     , STR_SET_VAL7
+		     , STR_SET_VAL8
+		FROM   TB_ENVSET
+		WHERE  ENVSET_SQ = (SELECT MAX(ENVSET_SQ)
+		                    FROM   TB_ENVSET
+		                    WHERE  SITE_CD = #{siteCd}
+		                    AND    ENVSET_TYPE = #{envsetType}
+		                   )
+	</select>
+
+</mapper>

+ 0 - 121
style24.core/src/main/java/com/style24/persistence/mybatis/shop/TscPolicy.xml

@@ -1,121 +0,0 @@
-<?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.core.biz.persistence.dao.TscPolicyDao">
-
-	<!-- 환경설정 정보 -->
-	<select id="getEnvset" parameterType="Envset" resultType="Envset">
-		/* TscPolicy.getEnvset */
-		SELECT SITE_CD
-		     , ENVSET_TYPE
-		     , STR_SET_VAL1
-		     , STR_SET_VAL2
-		     , STR_SET_VAL3
-		     , STR_SET_VAL4
-		     , STR_SET_VAL5
-		     , STR_SET_VAL6
-		     , STR_SET_VAL7
-		     , STR_SET_VAL8
-		     , NUM_SET_VAL1
-		     , NUM_SET_VAL2
-		     , NUM_SET_VAL3
-		     , NUM_SET_VAL4
-		     , NUM_SET_VAL5
-		     , NUM_SET_VAL6
-		     , NUM_SET_VAL7
-		     , NUM_SET_VAL8
-		FROM   TB_ENVSET
-		WHERE  ENVSET_SQ = (SELECT ENVSET_SQ
-		                    FROM   (
-		                            SELECT ENVSET_SQ
-		                            FROM   TB_ENVSET
-		                            WHERE  SITE_CD = #{siteCd}
-		                            AND    ENVSET_TYPE = #{envsetType}
-		                            ORDER  BY ENVSET_SQ DESC
-		                           )
-		                    WHERE  ROWNUM = 1
-		                   )
-	</select>
-
-	<!-- 환경설정 생성 -->
-	<insert id="createEnvset" parameterType="Envset">
-		/* TscPolicy.createEnvset */
-		INSERT INTO TB_ENVSET (
-		       ENVSET_SQ
-		     , SITE_CD
-		     , ENVSET_TYPE
-		     , COL_DESC
-		     , STR_SET_VAL1
-		     , STR_SET_VAL2
-		     , STR_SET_VAL3
-		     , STR_SET_VAL4
-		     , STR_SET_VAL5
-		     , STR_SET_VAL6
-		     , STR_SET_VAL7
-		     , STR_SET_VAL8
-		     , NUM_SET_VAL1
-		     , NUM_SET_VAL2
-		     , NUM_SET_VAL3
-		     , NUM_SET_VAL4
-		     , NUM_SET_VAL5
-		     , NUM_SET_VAL6
-		     , NUM_SET_VAL7
-		     , NUM_SET_VAL8
-		     , REG_ID
-		     , REG_DT
-		)
-		VALUES (
-		       SEQ_ENVSET.NEXTVAL
-		     , #{siteCd}
-		     , #{envsetType}
-		     , #{colDesc}
-		     , #{strSetVal1}
-		     , #{strSetVal2}
-		     , #{strSetVal3}
-		     , #{strSetVal4}
-		     , #{strSetVal5}
-		     , #{strSetVal6}
-		     , #{strSetVal7}
-		     , #{strSetVal8}
-		     , #{numSetVal1}
-		     , #{numSetVal2}
-		     , #{numSetVal3}
-		     , #{numSetVal4}
-		     , #{numSetVal5}
-		     , #{numSetVal6}
-		     , #{numSetVal7}
-		     , #{numSetVal8}
-		     , #{regId}
-		     , SYSDATE
-		)
-	</insert>
-
-	<!-- 환경설정 목록 -->
-	<select id="getEnvsetList" parameterType="Envset" resultType="Envset">
-		/* TscPolicy.getEnvsetList */
-		SELECT SITE_CD
-		     , ENVSET_TYPE
-		     , STR_SET_VAL1
-		     , STR_SET_VAL2
-		     , STR_SET_VAL3
-		     , STR_SET_VAL4
-		     , STR_SET_VAL5
-		     , STR_SET_VAL6
-		     , STR_SET_VAL7
-		     , STR_SET_VAL8
-		     , NUM_SET_VAL1
-		     , NUM_SET_VAL2
-		     , NUM_SET_VAL3
-		     , NUM_SET_VAL4
-		     , NUM_SET_VAL5
-		     , NUM_SET_VAL6
-		     , NUM_SET_VAL7
-		     , NUM_SET_VAL8
-		     , REG_ID
-		     , TO_CHAR(REG_DT,'YYYYMMDDHH24MISS') AS REG_DT
-		FROM   TB_ENVSET
-		WHERE  SITE_CD = #{siteCd}
-		AND    ENVSET_TYPE = #{envsetType}
-		ORDER  BY ENVSET_SQ DESC
-	</select>
-
-</mapper>