package com.style24.core.biz.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.style24.core.biz.dao.TscEnvsetDao;
import com.style24.persistence.domain.Envset;

import lombok.extern.slf4j.Slf4j;

/**
 * 환경설정 Service
 * 
 * @author gagamel
 * @since 2020. 10. 5
 */
@Service
@Slf4j
public class TscEnvsetService {

	@Autowired
	private TscEnvsetDao policyDao;

	/**
	 * 사이트별 환경설정유형에 따른 환경설정 정보
	 * 정책은 중요한 정보로서 캐싱 문제 발생 시 심각해질 수 있으므로 캐싱처리 안 함(2020.10.5. gagamel)
	 * @param siteCd - 사이트코드
	 * @param envsetType - 환경설정유형
	 * @return
	 * @author gagamel
	 * @since 2020. 10. 5
	 */
//	@Cacheable(value = "common", key = "'envset-'.concat(#siteCd).concat('-').concat(#envsetType)")
	public Envset getEnvset(String siteCd, String envsetType) {
		Envset params = new Envset();
		params.setSiteCd(siteCd);
		params.setEnvsetType(envsetType);

		Envset envset = policyDao.getEnvset(params);

//		if (envsetType.equals("C10")) {
//			if (StringUtils.isNotBlank(envset.getStrSetVal1())) {
//				envset.setStrSetNm1(marketingDao.getCouponName(envset.getStrSetVal1()));
//			}
//			if (StringUtils.isNotBlank(envset.getStrSetVal2())) {
//				envset.setStrSetNm2(marketingDao.getCouponName(envset.getStrSetVal2()));
//			}
//			if (StringUtils.isNotBlank(envset.getStrSetVal3())) {
//				envset.setStrSetNm3(marketingDao.getCouponName(envset.getStrSetVal3()));
//			}
//			if (StringUtils.isNotBlank(envset.getStrSetVal4())) {
//				envset.setStrSetNm4(marketingDao.getCouponName(envset.getStrSetVal4()));
//			}
//		}

		return envset;
	}

	/**
	 * 자사상품정상PC포인트율 가져오기
	 * @param siteCd - 사이트코드
	 * @return
	 * @author gagamel
	 * @since 2020. 10. 21
	 */
	public float getSelfGoodsPcPointRate10(String siteCd) {
		Envset envset = this.getEnvset(siteCd, "C15");
		return (envset == null) ? 0.0f : Float.parseFloat(envset.getStrSetVal1());
	}

	/**
	 * 자사상품정상모바일포인트율 가져오기
	 * @param siteCd - 사이트코드
	 * @return
	 * @author gagamel
	 * @since 2020. 10. 21
	 */
	public float getSelfGoodsMobPointRate10(String siteCd) {
		Envset envset = this.getEnvset(siteCd, "C15");
		return (envset == null) ? 0.0f : Float.parseFloat(envset.getStrSetVal2());
	}

	/**
	 * 자사상품이월PC포인트율 가져오기
	 * @param siteCd - 사이트코드
	 * @return
	 * @author gagamel
	 * @since 2020. 10. 21
	 */
	public float getSelfGoodsPcPointRate20(String siteCd) {
		Envset envset = this.getEnvset(siteCd, "C15");
		return (envset == null) ? 0.0f : Float.parseFloat(envset.getStrSetVal3());
	}

	/**
	 * 자사상품이월모바일포인트율 가져오기
	 * @param siteCd - 사이트코드
	 * @return
	 * @author gagamel
	 * @since 2020. 10. 21
	 */
	public float getSelfGoodsMobPointRate20(String siteCd) {
		Envset envset = this.getEnvset(siteCd, "C15");
		return (envset == null) ? 0.0f : Float.parseFloat(envset.getStrSetVal4());
	}

	/**
	 * 입점상품정상PC포인트율 가져오기
	 * @param siteCd - 사이트코드
	 * @return
	 * @author gagamel
	 * @since 2020. 10. 21
	 */
	public float getEntrGoodsPcPointRate10(String siteCd) {
		Envset envset = this.getEnvset(siteCd, "C15");
		return (envset == null) ? 0.0f : Float.parseFloat(envset.getStrSetVal5());
	}

	/**
	 * 입점상품정상모바일포인트율 가져오기
	 * @param siteCd - 사이트코드
	 * @return
	 * @author gagamel
	 * @since 2020. 10. 21
	 */
	public float getEntrGoodsMobPointRate10(String siteCd) {
		Envset envset = this.getEnvset(siteCd, "C15");
		return (envset == null) ? 0.0f : Float.parseFloat(envset.getStrSetVal6());
	}

	/**
	 * 입점상품이월PC포인트율 가져오기
	 * @param siteCd - 사이트코드
	 * @return
	 * @author gagamel
	 * @since 2020. 10. 21
	 */
	public float getEntrGoodsPcPointRate20(String siteCd) {
		Envset envset = this.getEnvset(siteCd, "C15");
		return (envset == null) ? 0.0f : Float.parseFloat(envset.getStrSetVal7());
	}

	/**
	 * 입점상품이월모바일포인트율 가져오기
	 * @param siteCd - 사이트코드
	 * @return
	 * @author gagamel
	 * @since 2020. 10. 21
	 */
	public float getEntrGoodsMobPointRate20(String siteCd) {
		Envset envset = this.getEnvset(siteCd, "C15");
		return (envset == null) ? 0.0f : Float.parseFloat(envset.getStrSetVal8());
	}

	/**
	 * 텍스트상품평포인트 가져오기
	 * @param siteCd - 사이트코드
	 * @return
	 * @author gagamel
	 * @since 2020. 10. 21
	 */
	public int getTextReviewPoint(String siteCd) {
		Envset envset = this.getEnvset(siteCd, "C16");
		return (envset == null) ? 0 : Integer.parseInt(envset.getStrSetVal3());
	}

	/**
	 * 포토상품평포인트 가져오기
	 * @param siteCd - 사이트코드
	 * @return
	 * @author gagamel
	 * @since 2020. 10. 21
	 */
	public int getPhotoReviewPoint(String siteCd) {
		Envset envset = this.getEnvset(siteCd, "C16");
		return (envset == null) ? 0 : Integer.parseInt(envset.getStrSetVal4());
	}

	/**
	 * 최초텍스트상품평포인트 가져오기
	 * @param siteCd - 사이트코드
	 * @return
	 * @author gagamel
	 * @since 2020. 10. 21
	 */
	public int getFirstTextReviewPoint(String siteCd) {
		Envset envset = this.getEnvset(siteCd, "C16");
		return (envset == null) ? 0 : Integer.parseInt(envset.getStrSetVal5());
	}

	/**
	 * 최초포토상품평포인트 가져오기
	 * @param siteCd - 사이트코드
	 * @return
	 * @author gagamel
	 * @since 2020. 10. 21
	 */
	public int getFirstPhotoReviewPoint(String siteCd) {
		Envset envset = this.getEnvset(siteCd, "C16");
		return (envset == null) ? 0 : 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 (envset == null) ? 0 : Integer.parseInt(envset.getStrSetVal7());
	}

}
