package org.xmx0632.deliciousfruit.service;
import org.apache.commons.io.FilenameUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.xmx0632.deliciousfruit.api.v1.bo.TerminalType;
import org.xmx0632.deliciousfruit.global.ConfigConstant;
@Component
public class UploadFilePathService {
private static Logger log = LoggerFactory
.getLogger(UploadFilePathService.class);
@Autowired
private ConfigService configService;
public String getCategoryTargetDirBy(TerminalType terminalType) {
String targetDir = getStaticRootDir()
+ getTerminalTypeDir(terminalType) + "/" + getCategoryDir()
+ "/";
log.debug(
"targetDir:{} staticRoot:{} iosTerminalTypeDir:{} categoryDir:{} ",
targetDir, getStaticRootDir(),
getTerminalTypeDir(terminalType), getCategoryDir());
return targetDir;
}
public String getStoryTargetDirBy(TerminalType terminalType) {
String targetDir = getStaticRootDir()
+ getTerminalTypeDir(terminalType) + "/" + getFruitSrotyDir()
+ "/";
log.debug(
"targetDir:{} staticRoot:{} iosTerminalTypeDir:{} getFruitSrotyDir:{} ",
targetDir, getStaticRootDir(),
getTerminalTypeDir(terminalType), getFruitSrotyDir());
return targetDir;
}
public String getPromotionTargetDirBy(TerminalType terminalType) {
String targetDir = getStaticRootDir()
+ getTerminalTypeDir(terminalType) + "/"
+ getFruitPromotionDir() + "/";
log.debug(
"targetDir:{} staticRoot:{} iosTerminalTypeDir:{} getFruitPromotionDir:{} ",
targetDir, getStaticRootDir(),
getTerminalTypeDir(terminalType), getFruitPromotionDir());
return targetDir;
}
public String getStoryMenuTargetDirBy(TerminalType terminalType) {
String targetDir = getStaticRootDir()
+ getTerminalTypeDir(terminalType) + "/" + getStoryMenuDir()
+ "/";
log.debug(
"targetDir:{} staticRoot:{} iosTerminalTypeDir:{} getStoryMenuDir:{} ",
targetDir, getStaticRootDir(),
getTerminalTypeDir(terminalType), getStoryMenuDir());
return targetDir;
}
public String getStoryProcedureTargetDirBy(TerminalType terminalType) {
String targetDir = getStaticRootDir()
+ getTerminalTypeDir(terminalType) + "/"
+ getStoryProcedureDir() + "/";
log.debug(
"targetDir:{} staticRoot:{} iosTerminalTypeDir:{} getStoryProcedureDir:{} ",
targetDir, getStaticRootDir(),
getTerminalTypeDir(terminalType), getStoryProcedureDir());
return targetDir;
}
public String getProductTargetDirBy(TerminalType terminalType) {
String targetDir = getStaticRootDir()
+ getTerminalTypeDir(terminalType) + "/" + getProductDir()
+ "/";
log.debug(
"targetDir:{} staticRoot:{} iosTerminalTypeDir:{} getProductDir:{} ",
targetDir, getStaticRootDir(),
getTerminalTypeDir(terminalType), getProductDir());
return targetDir;
}
public String getProductDesTargetDirBy(TerminalType terminalType) {
String targetDir = getStaticRootDir()
+ getTerminalTypeDir(terminalType) + "/" + getProductDesDir()
+ "/";
log.debug(
"targetDir:{} staticRoot:{} iosTerminalTypeDir:{} getProductDesDir:{} ",
targetDir, getStaticRootDir(),
getTerminalTypeDir(terminalType), getProductDesDir());
return targetDir;
}
public String getTargetFilename(Long id, String filename) {
return id + "." + FilenameUtils.getExtension(filename).toLowerCase();
}
public String getTargetTmpFilename(Long id, String filename) {
return id + "_tmp."
+ FilenameUtils.getExtension(filename).toLowerCase();
}
public String getCategoryIconUrl(Long id, String filename) {
return getCategoryDir() + "/" + getTargetFilename(id, filename);
}
public String getFruitStoryIconUrl(Long id, String filename) {
return getFruitSrotyDir() + "/" + getTargetFilename(id, filename);
}
public String getFruitPromotionPicUrl(Long id, String filename) {
return getFruitPromotionDir() + "/" + getTargetFilename(id, filename);
}
public String getFruitProductPicUrl(Long id, String filename) {
return getProductDir() + "/" + getTargetFilename(id, filename);
}
public String getFruitProductDesPicUrl(Long id, String filename) {
return getProductDesDir() + "/"
+ getTargetFilename(id, filename);
}
public String getFruitMenuIconUrl(Long id, String filename) {
return getStoryMenuDir() + "/" + getTargetFilename(id, filename);
}
public String getFruitProcedureIconUrl(Long id, String filename) {
return getStoryProcedureDir() + "/" + getTargetFilename(id, filename);
}
private String getFruitSrotyDir() {
return configService.getByName(ConfigConstant.FRUIT_STORY_DIR);
}
private String getFruitPromotionDir() {
return configService.getByName(ConfigConstant.FRUIT_PROMOTION_DIR);
}
private String getStoryMenuDir() {
return configService.getByName(ConfigConstant.FRUIT_MENU_DIR);
}
private String getStoryProcedureDir() {
return configService.getByName(ConfigConstant.FRUIT_PROCEDURE_DIR);
}
private String getCategoryDir() {
return configService.getByName(ConfigConstant.CATEGORY_DIR);
}
private String getProductDir() {
return configService.getByName(ConfigConstant.FRUIT_PRODUCT_DIR);
}
private String getProductDesDir() {
return configService.getByName(ConfigConstant.FRUIT_PRODUCT_DIR)
+ "/des";
}
private String getStaticRootDir() {
return configService.getByName(ConfigConstant.STATIC_ROOT);
}
private String getTerminalTypeDir(TerminalType terminalType) {
return configService.getByName(terminalType);
}
}