fairnet/src/main/java/seed/user/bbs/service/UserBbsDataServiceImpl.java

2343 lines
118 KiB
Java

package seed.user.bbs.service;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import javax.imageio.ImageIO;
import javax.media.jai.JAI;
import javax.media.jai.RenderedOp;
import net.coobird.thumbnailator.Thumbnails;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
import seed.dao.BbsDataDAO;
import seed.dao.BbsFileDAO;
import seed.dao.FileDownLoadDAO;
import seed.map.T_BBS_DATA;
import seed.map.T_BBS_FILE;
import seed.map.T_BBS_SET;
import seed.map.T_COMMON_FILE;
import seed.map.T_FILE_DOWNLOAD;
import seed.map.T_MEMBER;
import seed.map.T_POINT;
import seed.utils.SeedCvtDOCToHtml;
import seed.utils.SeedCvtDOCXToHtml;
import seed.utils.SeedCvtPDFToImg;
import seed.utils.SeedCvtPPTToImg;
import seed.utils.SeedCvtPPTXToImg;
import seed.utils.SeedCvtXLSToHtml;
import seed.utils.SeedCvtXLSXToHtml;
import seed.utils.SeedFileUtils;
import seed.utils.SeedFtpType;
import seed.utils.SeedUtils;
import seed.common.service.CommonFileService;
@Service
public class UserBbsDataServiceImpl extends AbstractServiceImpl implements UserBbsDataService{
private Logger log = Logger.getLogger(this.getClass());
@Autowired
private BbsDataDAO bbsDataDAO;
@Autowired
private BbsFileDAO bbsFileDAO;
@Autowired
private FileDownLoadDAO fileDownLoadDAO;
@Autowired
private CommonFileService commonFileService;
//UserBbsController
public List<T_BBS_DATA> getBestDataList(Integer bbsSetIdx, int row, String[] qryColumns){
return bbsDataDAO.getBestDataList(bbsSetIdx, row, qryColumns);
}
//UserBbsController
public List<T_BBS_DATA> getSlideDataList(Integer bbsSetIdx, int page, int row, String[] qryColumns){
return bbsDataDAO.getSlideDataList(bbsSetIdx, page, row, qryColumns);
}
//UserBbsController
public List<Map<Object, Object>> getBbsDataMiniList(Integer bbsSetIdx, int page, int row, String bbsSetDateOrder, ArrayList<String> qryArrayList){
return bbsDataDAO.getBbsDataMiniList(bbsSetIdx, ((page-1) * row), row, bbsSetDateOrder, qryArrayList);
}
//UserBbsController
public T_BBS_DATA getBbsDataForm(Integer bbsDataIdx){
return bbsDataDAO.getBbsDataForm(bbsDataIdx);
}
//UserBbsController
public T_BBS_DATA getBbsReplyForm(Integer bbsDataGroup, Integer bbsDataFam){
return bbsDataDAO.getBbsReplyForm(bbsDataGroup, bbsDataFam);
}
//UserBbsController
public Map<Object, Object> getBbsDataPreForm(T_BBS_DATA tBbsData, String column, String search, String bbsSetMyData, Integer memberIdx, String memberCertify, boolean grantAuth, String bbsDataCategory, String searchSDate, String searchEDate, String[] qryColumns){
return bbsDataDAO.getBbsDataPreForm(tBbsData, column, search, bbsSetMyData, memberIdx, memberCertify, grantAuth, bbsDataCategory, searchSDate, searchEDate, qryColumns);
}
//UserBbsController
public Map<Object, Object> getBbsDataNextForm(T_BBS_DATA tBbsData, String column, String search, String bbsSetMyData, Integer memberIdx, String memberCertify, boolean grantAuth, String bbsDataCategory, String searchSDate, String searchEDate, String[] qryColumns){
return bbsDataDAO.getBbsDataNextForm(tBbsData, column, search, bbsSetMyData, memberIdx, memberCertify, grantAuth, bbsDataCategory, searchSDate, searchEDate, qryColumns);
}
//UserBbsController
public List<Map<Object, Object>> getBbsNoticeDataList(Integer bbsSetIdx, String column, String search, String bbsSetDateOrder, String bbsDataCategory, String searchSDate, String searchEDate, ArrayList<String> qryArrayList){
return bbsDataDAO.getBbsNoticeDataList(bbsSetIdx, column, search, bbsSetDateOrder, bbsDataCategory, searchSDate, searchEDate, qryArrayList);
}
//UserBbsController
public Long getBbsDataListCnt(Integer bbsSetIdx, String column, String search, String bbsSetType, String bbsSetMyData, Integer memberIdx, String memberCertify, boolean grantAuth, String bbsDataCategory, String searchSDate, String searchEDate, ArrayList<String> qryArrayList){
return bbsDataDAO.getBbsDataListCnt(false, bbsSetIdx, column, search, bbsSetType, bbsSetMyData, memberIdx, memberCertify, grantAuth, bbsDataCategory, searchSDate, searchEDate, qryArrayList);
}
//UserBbsController
public List<Map<Object, Object>> getBbsDataList(Integer bbsSetIdx, int page, int row, String column, String search, String bbsSetDateOrder, String bbsSetType, String bbsSetMyData, Integer memberIdx, String memberCertify, boolean grantAuth, String bbsDataCategory, String searchSDate, String searchEDate, ArrayList<String> qryArrayList){
return bbsDataDAO.getBbsDataList(false, bbsSetIdx, ((page-1) * row), row, column, search, bbsSetDateOrder, bbsSetType, bbsSetMyData, memberIdx, memberCertify, grantAuth, bbsDataCategory, searchSDate, searchEDate, qryArrayList);
}
//UserBbsController
@Transactional
public boolean setBbsDataCopyProc(Integer bbsDataIdxOriginal, Integer bbsSetIdx, Integer memberIdx, String memberIp, Integer thumbWidth, Integer thumbHeight, String rootPath){
boolean success = false;
T_BBS_DATA tBbsDataOriginal = bbsDataDAO.getBbsDataForm(bbsDataIdxOriginal);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyyMMddHHmmss");
T_MEMBER tMember = new T_MEMBER();
tMember.setMemberIdx(memberIdx);
T_BBS_SET tBbsSet = new T_BBS_SET();
tBbsSet.setBbsSetIdx(bbsSetIdx);
T_BBS_DATA tBbsDataNew = new T_BBS_DATA();
tBbsDataNew.settMember(tMember);
tBbsDataNew.settBbsSet(tBbsSet);
tBbsDataNew.setBbsDataNotice(tBbsDataOriginal.getBbsDataNotice());
tBbsDataNew.setBbsDataNoticeSdate(tBbsDataOriginal.getBbsDataNoticeSdate());
tBbsDataNew.setBbsDataNoticeEdate(tBbsDataOriginal.getBbsDataNoticeEdate());
tBbsDataNew.setBbsDataTitle(tBbsDataOriginal.getBbsDataTitle());
tBbsDataNew.setBbsDataGroup(0);
tBbsDataNew.setBbsDataPosition(0);
tBbsDataNew.setBbsDataFam(0);
tBbsDataNew.setBbsDataDepth(0);
tBbsDataNew.setBbsDataHit(0);
tBbsDataNew.setBbsDataStatus("U");
tBbsDataNew.setBbsDataRegDate(sdf.format(new Date()));
tBbsDataNew.setBbsDataModDate(sdf.format(new Date()));
tBbsDataNew.setBbsDataMemberIp(memberIp);
tBbsDataNew.setBbsCommentCount(0);
tBbsDataNew.setBbsFileCount(0);
tBbsDataNew.setBbsDataThumbText(SeedUtils.setReplaceNull(tBbsDataOriginal.getBbsDataThumbText()));
tBbsDataNew.setBbsDataContent(SeedUtils.setReplaceNull(tBbsDataOriginal.getBbsDataContent()));
tBbsDataNew.setBbsDataItemA1(SeedUtils.setReplaceNull(tBbsDataOriginal.getBbsDataItemA1()));
tBbsDataNew.setBbsDataItemB2(SeedUtils.setReplaceNull(tBbsDataOriginal.getBbsDataItemB2()));
tBbsDataNew.setBbsDataItemC3(SeedUtils.setReplaceNull(tBbsDataOriginal.getBbsDataItemC3()));
tBbsDataNew.setBbsDataItemD4(SeedUtils.setReplaceNull(tBbsDataOriginal.getBbsDataItemD4()));
tBbsDataNew.setBbsDataItemE5(SeedUtils.setReplaceNull(tBbsDataOriginal.getBbsDataItemE5()));
tBbsDataNew.setBbsDataItemF6(SeedUtils.setReplaceNull(tBbsDataOriginal.getBbsDataItemF6()));
tBbsDataNew.setBbsDataItemG7(SeedUtils.setReplaceNull(tBbsDataOriginal.getBbsDataItemG7()));
tBbsDataNew.setBbsDataItemH8(SeedUtils.setReplaceNull(tBbsDataOriginal.getBbsDataItemH8()));
tBbsDataNew.setBbsDataItemI9(SeedUtils.setReplaceNull(tBbsDataOriginal.getBbsDataItemI9()));
tBbsDataNew.setBbsDataItemJ10(SeedUtils.setReplaceNull(tBbsDataOriginal.getBbsDataItemJ10()));
tBbsDataNew.setBbsDataYoutube(SeedUtils.setReplaceNull(tBbsDataOriginal.getBbsDataYoutube()));
T_BBS_DATA tBbsDataDB = bbsDataDAO.setBbsDataRegProc(tBbsDataNew);
if(tBbsDataDB != null){
String thumbFileName = "";
//복사할 파일들 가져옴
List<T_BBS_FILE> bbsFileListOriginal = bbsFileDAO.getBbsFileList(tBbsDataOriginal.getBbsDataIdx());
if(bbsFileListOriginal != null && bbsFileListOriginal.size() > 0){
//FTP 전송
SeedFtpType seedFtpType = new SeedFtpType();
SeedUtils.setSeedMkDirs(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx());
for(int f=0; f<bbsFileListOriginal.size(); f++){
String reFileName = tBbsDataDB.gettBbsSet().getBbsSetIdx() + "_" + sdfFormat.format(new Date()) + "_" + SeedUtils.getSeedMD5Code(String.valueOf(SeedUtils.getRandom(999,1)));
T_BBS_FILE tBbsFileOriginal = bbsFileListOriginal.get(f);
SeedUtils.setSeedFileCopy(rootPath+"/"+tBbsDataOriginal.gettBbsSet().gettSite().getSiteIdx()+"/upload/bbs/"+tBbsDataOriginal.gettBbsSet().getBbsSetIdx()+"/"+tBbsFileOriginal.getBbsFileReName()
, rootPath+"/"+tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()+"/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx()+"/"+reFileName+"."+tBbsFileOriginal.getBbsFileType());
//WEB 서버의 경로
seedFtpType.setDestFilePath(tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()+"/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath+"/"+tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()+"/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 파일명
seedFtpType.setFileName(reFileName+"."+tBbsFileOriginal.getBbsFileType());
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
if(tBbsFileOriginal.getBbsFileType().toLowerCase().equals("jpg") ||
tBbsFileOriginal.getBbsFileType().toLowerCase().equals("jpeg") ||
tBbsFileOriginal.getBbsFileType().toLowerCase().equals("bmp") ||
tBbsFileOriginal.getBbsFileType().toLowerCase().equals("png") ||
tBbsFileOriginal.getBbsFileType().toLowerCase().equals("gif")){
SeedUtils.setSeedFileCopy(rootPath+"/"+tBbsDataOriginal.gettBbsSet().gettSite().getSiteIdx()+"/upload/bbs/"+tBbsDataOriginal.gettBbsSet().getBbsSetIdx()+"/thumb_"+tBbsFileOriginal.getBbsFileReName()
, rootPath+"/"+tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()+"/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx()+"/thumb_"+reFileName+"."+tBbsFileOriginal.getBbsFileType());
//WEB 서버의 경로
seedFtpType.setDestFilePath(tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()+"/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath+"/"+tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()+"/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 파일명
seedFtpType.setFileName("thumb_"+reFileName+"."+tBbsFileOriginal.getBbsFileType());
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
}
T_BBS_FILE tBbsFileNew = new T_BBS_FILE();
tBbsFileNew.settBbsData(tBbsDataDB);
tBbsFileNew.setBbsFileName(tBbsFileOriginal.getBbsFileName());
tBbsFileNew.setBbsFileReName(reFileName+"."+tBbsFileOriginal.getBbsFileType());
tBbsFileNew.setBbsFileSize(tBbsFileOriginal.getBbsFileSize());
tBbsFileNew.setBbsFileType(tBbsFileOriginal.getBbsFileType().toLowerCase());
tBbsFileNew.setBbsFileText(tBbsFileOriginal.getBbsFileText());
tBbsFileNew.setBbsFileEncryption(tBbsFileOriginal.getBbsFileEncryption());
tBbsFileNew.setBbsFileRegDate(tBbsFileOriginal.getBbsFileRegDate());
tBbsFileNew.setBbsFileDownCnt(0);
tBbsFileNew.settBbsData(tBbsDataDB);
if(!bbsFileDAO.setBbsFileRegProc(tBbsFileNew)){
success = false;
break;
}
if(thumbFileName.equals("") && SeedUtils.setReplaceNull(tBbsDataOriginal.getBbsDataThumb()).equals(tBbsFileOriginal.getBbsFileReName())){
thumbFileName = reFileName+"."+tBbsFileOriginal.getBbsFileType();
}
}
}
tBbsDataDB.setBbsDataThumb(thumbFileName);
tBbsDataDB.setBbsDataGroup(tBbsDataDB.getBbsDataIdx());
tBbsDataDB.setBbsDataFam(tBbsDataDB.getBbsDataIdx());
tBbsDataDB.setBbsFileCount(Integer.parseInt(bbsFileDAO.getBbsFileListCnt(tBbsDataDB.getBbsDataIdx()).toString()));
if(bbsDataDAO.setBbsDataModProc(tBbsDataDB)){
success = true;
}
}
return success;
}
//UserBbsController
@Transactional
public boolean setBbsDataMoveProc(Integer bbsDataIdxOriginal, Integer bbsSetIdx){
return false;
}
//UserBbsController
@Transactional
public Integer setBbsDataRegProc(T_BBS_DATA tBbsData, Integer memberIdx, String memberIp, String fileCode, List<MultipartFile> upFiles, boolean fileEncryChk, boolean filePreviewChk, String[] fileIdxs, Integer thumbWidth, Integer thumbHeight, String rootPath){
Integer bbsDataIdx = 0;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyyMMddHHmmss");
if(memberIdx > 0){
T_MEMBER tMember = new T_MEMBER();
tMember.setMemberIdx(memberIdx);
tBbsData.settMember(tMember);
}else{
String strCode = SeedUtils.getSeedMD5Code(tBbsData.getBbsDataPw());
tBbsData.setBbsDataPw(SeedUtils.getSeedSHA256Code(strCode));
}
if(!SeedUtils.setReplaceNull(tBbsData.getBbsDataNotice()).equals("Y") && !SeedUtils.setReplaceNull(tBbsData.getBbsDataNotice()).equals("A")){
tBbsData.setBbsDataNotice("N");
tBbsData.setBbsDataNoticeSdate("");
tBbsData.setBbsDataNoticeEdate("");
}
tBbsData.setBbsDataGroup(0);
tBbsData.setBbsDataPosition(0);
tBbsData.setBbsDataFam(0);
tBbsData.setBbsDataDepth(0);
tBbsData.setBbsDataHit(0);
tBbsData.setBbsDataStatus("U");
if(SeedUtils.setReplaceNull(tBbsData.getBbsDataRegDate()).equals("")){
tBbsData.setBbsDataRegDate(sdf.format(new Date()));
}
tBbsData.setBbsDataModDate(sdf.format(new Date()));
tBbsData.setBbsDataMemberIp(memberIp);
tBbsData.setBbsCommentCount(0);
tBbsData.setBbsFileCount(0);
T_BBS_DATA tBbsDataDB = bbsDataDAO.setBbsDataRegProc(tBbsData);
if(tBbsDataDB != null){
bbsDataIdx = tBbsDataDB.getBbsDataIdx();
String bbsDataContent = tBbsDataDB.getBbsDataContent();
String thumImg = "";
String thumImgText = "";
if(SeedUtils.setReplaceNull(tBbsData.gettBbsSet().getBbsSetPoint()).equals("Y")){
//게시글 포인트
T_POINT tPoint = new T_POINT();
tPoint.setPointSetIdx(tBbsData.gettBbsSet().getBbsSetIdx());
tPoint.setPointDataIdx(tBbsData.getBbsDataIdx());
tPoint.setPointRegdate(sdf.format(new Date()));
tPoint.setMemberIp(memberIp);
tPoint.setMemberIdx(memberIdx);
tPoint.setSiteIdx(tBbsDataDB.gettBbsSet().gettSite().getSiteIdx());
tPoint.setFuncType("BBS");
tPoint.setPointScore(tBbsDataDB.gettBbsSet().getBbsSetPointWrite());
bbsDataDAO.setBbsPointProc(tPoint);
}
//FTP 전송
SeedFtpType seedFtpType = new SeedFtpType();
if(upFiles != null && upFiles.size() > 0){
SeedUtils.setSeedMkDirs(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx());
try{
for(int f=0; f<upFiles.size(); f++){
boolean fileChk = false;
MultipartFile multipartFile = upFiles.get(f);
if(multipartFile != null && !multipartFile.isEmpty()){
if(fileIdxs != null && fileIdxs.length > 0){
for(int d=0; d<fileIdxs.length; d++){
String fileIdx = fileIdxs[d];
if(fileIdx.equals(String.valueOf(f))){
fileChk = true;
break;
}
}
}
if(!fileChk){
continue;
}
String orgFileName = multipartFile.getOriginalFilename();
String reFileName = tBbsDataDB.gettBbsSet().getBbsSetIdx() + "_" + sdfFormat.format(new Date()) + "_" + SeedUtils.getSeedMD5Code(String.valueOf(SeedUtils.getRandom(999,1)));
String fileType = orgFileName.substring(orgFileName.lastIndexOf(".")+1);
Long fileSize = multipartFile.getSize();
File makeFile = new File(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + fileType);
multipartFile.transferTo(makeFile);
//WEB 서버의 경로
seedFtpType.setDestFilePath(tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 파일명
seedFtpType.setFileName(reFileName+"."+fileType);
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
if(fileType.toLowerCase().equals("jpg") ||
fileType.toLowerCase().equals("jpeg") ||
fileType.toLowerCase().equals("bmp") ||
fileType.toLowerCase().equals("png")){
Thumbnails.of(
new File(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName+"."+fileType)).
size(thumbWidth, thumbHeight).
toFile(new File(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+
tBbsDataDB.gettBbsSet().getBbsSetIdx()+"/thumb_"+reFileName+"."+fileType)
);
if(tBbsDataDB.gettBbsSet().getBbsSetType().equals("A") || tBbsDataDB.gettBbsSet().getBbsSetType().equals("M") || tBbsDataDB.gettBbsSet().getBbsSetType().equals("T")){
if(tBbsDataDB.getBbsDataThumb().equals(String.valueOf(f))){
thumImg = reFileName+"."+fileType;
thumImgText = orgFileName;
}
}else{
thumImg = reFileName+"."+fileType;
thumImgText = orgFileName;
}
//WEB 서버의 경로
seedFtpType.setDestFilePath(tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 파일명
seedFtpType.setFileName("thumb_"+reFileName+"."+fileType);
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
}else if(fileType.toLowerCase().equals("gif")){
int width = 100;
int height = 50;
File thumbFile = new File(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+
tBbsDataDB.gettBbsSet().getBbsSetIdx()+"/thumb_"+reFileName+"."+fileType);
RenderedOp renderedOp = JAI.create("fileload", rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName+"."+fileType);
BufferedImage bi = renderedOp.getAsBufferedImage();
BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);
Graphics2D graphics2D = bufferedImage.createGraphics();
graphics2D.drawImage(bi, 0, 0, width, height, null);
ImageIO.write(bufferedImage, "jpg", thumbFile);
if(tBbsDataDB.gettBbsSet().getBbsSetType().equals("A") || tBbsDataDB.gettBbsSet().getBbsSetType().equals("M") || tBbsDataDB.gettBbsSet().getBbsSetType().equals("T")){
if(tBbsDataDB.getBbsDataThumb().equals(reFileName+"."+fileType)){
thumImg = reFileName+"."+reFileName+"."+fileType;
thumImgText = orgFileName;
}
}else{
thumImg = reFileName+"."+fileType;
thumImgText = orgFileName;
}
//WEB 서버의 경로
seedFtpType.setDestFilePath(tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 파일명
seedFtpType.setFileName("thumb_"+reFileName+"."+fileType);
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
}
T_BBS_FILE tBbsFile = new T_BBS_FILE();
tBbsFile.setBbsFileName(orgFileName);
tBbsFile.setBbsFileReName(reFileName+"."+fileType);
tBbsFile.setBbsFileSize(fileSize);
tBbsFile.setBbsFileType(fileType.toLowerCase());
tBbsFile.setBbsFileText(orgFileName);
if(fileEncryChk){
tBbsFile.setBbsFileEncryption("Y");
}else{
tBbsFile.setBbsFileEncryption("N");
}
tBbsFile.setBbsFileRegDate(new Date());
tBbsFile.setBbsFileDownCnt(0);
tBbsFile.settBbsData(tBbsDataDB);
//앨범게시판이고 워터마크 사용일때 이미지에 워크마크 적용
if(tBbsDataDB.gettBbsSet().getBbsSetType().equals("A")){
if(SeedUtils.setReplaceNull(tBbsDataDB.gettBbsSet().getBbsSetWaterMark()).equals("Y")){
SeedFileUtils.setWaterMarkImg(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx()+"/"+reFileName+"."+fileType,
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx()+"/"+tBbsDataDB.gettBbsSet().getBbsSetWaterMarkReImg());
//WEB 서버의 경로
seedFtpType.setDestFilePath(tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 파일명
seedFtpType.setFileName(reFileName+"."+fileType);
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
}
}
if(fileEncryChk){
//파일 암호화
SeedFileUtils.setSeedEncryptFile(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx()+"/"+reFileName+"."+fileType);
//원본 파일 삭제
makeFile.delete();
//암호화된 파일명 원본 파일명으로 변경
File encryFile = new File(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx()+"/"+reFileName+"."+fileType+".des");
encryFile.renameTo(makeFile);
}
if(!bbsFileDAO.setBbsFileRegProc(tBbsFile)){
return 0;
}else{
//암호화 파일이 아닐때만 미리보기 적용
if(!fileEncryChk){
if(filePreviewChk){
SeedUtils.setSeedMkDirs(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert");
if(fileType.equals("doc")){
SeedCvtDOCToHtml convert = new SeedCvtDOCToHtml();
convert.convert(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + fileType,
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}else if(fileType.equals("docx")){
SeedCvtDOCXToHtml convert = new SeedCvtDOCXToHtml();
convert.convert(rootPath, tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + fileType,
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}else if(fileType.equals("xls")){
SeedCvtXLSToHtml convert = new SeedCvtXLSToHtml();
convert.convert(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + fileType,
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}else if(fileType.equals("xlsx")){
SeedCvtXLSXToHtml convert = new SeedCvtXLSXToHtml();
convert.convert(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + fileType,
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}else if(fileType.equals("ppt")){
SeedCvtPPTToImg convert = new SeedCvtPPTToImg();
convert.convert(rootPath, tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + fileType,
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}else if(fileType.equals("pptx")){
SeedCvtPPTXToImg convert = new SeedCvtPPTXToImg();
convert.convert(rootPath, tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + fileType,
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}else if(fileType.equals("pdf")){
SeedCvtPDFToImg convert = new SeedCvtPDFToImg();
convert.convert(rootPath, tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + fileType,
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}
}
}
}
}
}
}catch(IOException e){
log.error("CHECK ERROR:",e);
}
}else{
List<T_COMMON_FILE> tCommonFileList = commonFileService.getCommonFileList(tBbsDataDB.gettBbsSet().getBbsSetIdx(), fileCode);
if(tCommonFileList != null && tCommonFileList.size() > 0){
SeedUtils.setSeedMkDirs(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx());
for(int f=0; f<tCommonFileList.size(); f++){
String reFileName = tBbsDataDB.gettBbsSet().getBbsSetIdx() + "_" + sdfFormat.format(new Date()) + "_" + SeedUtils.getSeedMD5Code(String.valueOf(SeedUtils.getRandom(999,1)));
T_COMMON_FILE tCommonFile = tCommonFileList.get(f);
SeedUtils.setSeedFileCopy(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/tempFiles/"+tCommonFile.getCommonFileDate()+"/"+tCommonFile.getCommonFileCode()+"/"+tCommonFile.getCommonFileReName()
, rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx()+"/"+reFileName+"."+tCommonFile.getCommonFileType());
//WEB 서버의 경로
seedFtpType.setDestFilePath(tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 파일명
seedFtpType.setFileName(reFileName+"."+tCommonFile.getCommonFileType());
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
SeedUtils.setSeedDeleteFile(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/tempFiles/"+tCommonFile.getCommonFileDate()+"/"+tCommonFile.getCommonFileCode()+"/thumb_"+tCommonFile.getCommonFileReName());
//썸네일 작성
try{
//TempFiles에 복호화 후 삭제
String fileName = rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/tempFiles/"+tCommonFile.getCommonFileDate()+"/"+tCommonFile.getCommonFileCode()+"/"+tCommonFile.getCommonFileReName();
if(tCommonFile.getCommonFileEncryption().equals("Y")){
//파일 복호화
SeedFileUtils.getSeedDecryptFile(fileName);
fileName = rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/tempFiles/"+tCommonFile.getCommonFileDate()+"/"+tCommonFile.getCommonFileCode()+"/"+tCommonFile.getCommonFileReName()+".dcr";
}
if(tCommonFile.getCommonFileType().toLowerCase().equals("jpg") ||
tCommonFile.getCommonFileType().toLowerCase().equals("jpeg") ||
tCommonFile.getCommonFileType().toLowerCase().equals("bmp") ||
tCommonFile.getCommonFileType().toLowerCase().equals("png")){
Thumbnails.of(
new File(fileName)).
size(thumbWidth, thumbHeight).
toFile(new File(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+
tBbsDataDB.gettBbsSet().getBbsSetIdx()+"/thumb_"+reFileName+"."+tCommonFile.getCommonFileType())
);
if(tBbsDataDB.gettBbsSet().getBbsSetType().equals("A") || tBbsDataDB.gettBbsSet().getBbsSetType().equals("M") || tBbsDataDB.gettBbsSet().getBbsSetType().equals("T")){
if(tBbsDataDB.getBbsDataThumb().equals(tCommonFile.getCommonFileReName())){
thumImg = reFileName+"."+tCommonFile.getCommonFileType();
thumImgText = tCommonFile.getCommonFileText();
}
}else{
thumImg = reFileName+"."+tCommonFile.getCommonFileType();
thumImgText = tCommonFile.getCommonFileText();
}
//WEB 서버의 경로
seedFtpType.setDestFilePath(tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 파일명
seedFtpType.setFileName("thumb_"+reFileName+"."+tCommonFile.getCommonFileType());
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
}else if(tCommonFile.getCommonFileType().toLowerCase().equals("gif")){
int width = 100;
int height = 50;
File thumbFile = new File(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+
tBbsDataDB.gettBbsSet().getBbsSetIdx()+"/thumb_"+reFileName+"."+tCommonFile.getCommonFileType());
RenderedOp renderedOp = JAI.create("fileload", fileName);
BufferedImage bi = renderedOp.getAsBufferedImage();
BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);
Graphics2D graphics2D = bufferedImage.createGraphics();
graphics2D.drawImage(bi, 0, 0, width, height, null);
ImageIO.write(bufferedImage, "jpg", thumbFile);
if(tBbsDataDB.gettBbsSet().getBbsSetType().equals("A") || tBbsDataDB.gettBbsSet().getBbsSetType().equals("M") || tBbsDataDB.gettBbsSet().getBbsSetType().equals("T")){
if(tBbsDataDB.getBbsDataThumb().equals(tCommonFile.getCommonFileReName())){
thumImg = reFileName+"."+tCommonFile.getCommonFileType();
thumImgText = tCommonFile.getCommonFileText();
}
}else{
thumImg = reFileName+"."+tCommonFile.getCommonFileType();
thumImgText = tCommonFile.getCommonFileText();
}
//WEB 서버의 경로
seedFtpType.setDestFilePath(tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 파일명
seedFtpType.setFileName("thumb_"+reFileName+"."+tCommonFile.getCommonFileType());
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
}
T_BBS_FILE tBbsFile = new T_BBS_FILE();
tBbsFile.setBbsFileName(tCommonFile.getCommonFileName());
tBbsFile.setBbsFileReName(reFileName+"."+tCommonFile.getCommonFileType());
tBbsFile.setBbsFileSize(tCommonFile.getCommonFileSize());
tBbsFile.setBbsFileType(tCommonFile.getCommonFileType().toLowerCase());
tBbsFile.setBbsFileText(tCommonFile.getCommonFileText());
tBbsFile.setBbsFileEncryption(tCommonFile.getCommonFileEncryption());
tBbsFile.setBbsFileRegDate(new Date());
tBbsFile.setBbsFileDownCnt(0);
tBbsFile.settBbsData(tBbsDataDB);
//앨범게시판이고 워터마크 사용일때 이미지에 워크마크 적용
if(tBbsDataDB.gettBbsSet().getBbsSetType().equals("A")){
if(SeedUtils.setReplaceNull(tBbsDataDB.gettBbsSet().getBbsSetWaterMark()).equals("Y")){
SeedFileUtils.setWaterMarkImg(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx()+"/"+reFileName+"."+tCommonFile.getCommonFileType(),
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx()+"/"+tBbsDataDB.gettBbsSet().getBbsSetWaterMarkReImg());
//WEB 서버의 경로
seedFtpType.setDestFilePath(tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 파일명
seedFtpType.setFileName(reFileName+"."+tCommonFile.getCommonFileType());
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
}
}
if(bbsFileDAO.setBbsFileRegProc(tBbsFile)){
commonFileService.setCommonFileDelProc(tCommonFile.getCommonFileIdx(), tBbsDataDB.gettBbsSet().gettSite().getSiteIdx(), rootPath);
if(filePreviewChk){
SeedUtils.setSeedMkDirs(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert");
if(tCommonFile.getCommonFileType().equals("doc")){
SeedCvtDOCToHtml convert = new SeedCvtDOCToHtml();
convert.convert(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + tCommonFile.getCommonFileType(),
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}else if(tCommonFile.getCommonFileType().equals("docx")){
SeedCvtDOCXToHtml convert = new SeedCvtDOCXToHtml();
convert.convert(rootPath, tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + tCommonFile.getCommonFileType(),
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}else if(tCommonFile.getCommonFileType().equals("xls")){
SeedCvtXLSToHtml convert = new SeedCvtXLSToHtml();
convert.convert(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + tCommonFile.getCommonFileType(),
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}else if(tCommonFile.getCommonFileType().equals("xlsx")){
SeedCvtXLSXToHtml convert = new SeedCvtXLSXToHtml();
convert.convert(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + tCommonFile.getCommonFileType(),
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}else if(tCommonFile.getCommonFileType().equals("ppt")){
SeedCvtPPTToImg convert = new SeedCvtPPTToImg();
convert.convert(rootPath, tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + tCommonFile.getCommonFileType(),
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}else if(tCommonFile.getCommonFileType().equals("pptx")){
SeedCvtPPTXToImg convert = new SeedCvtPPTXToImg();
convert.convert(rootPath, tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + tCommonFile.getCommonFileType(),
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}else if(tCommonFile.getCommonFileType().equals("pdf")){
SeedCvtPDFToImg convert = new SeedCvtPDFToImg();
convert.convert(rootPath, tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + tCommonFile.getCommonFileType(),
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}
}
}
//복호화파일 삭제
SeedUtils.setSeedDeleteFile(fileName);
}catch(IOException e){
log.error("CHECK ERROR:",e);
}
}
}
}
tBbsDataDB.setBbsDataContent(bbsDataContent);
tBbsDataDB.setBbsDataGroup(tBbsDataDB.getBbsDataIdx());
tBbsDataDB.setBbsDataFam(tBbsDataDB.getBbsDataIdx());
tBbsDataDB.setBbsDataThumb(thumImg);
tBbsDataDB.setBbsDataThumbText(thumImgText);
if(SeedUtils.setReplaceNull(tBbsDataDB.gettBbsSet().getBbsSetYoutube()).equals("Y") &&
!SeedUtils.setReplaceNull(tBbsDataDB.getBbsDataYoutube()).equals("") &&
SeedUtils.setReplaceNull(thumImg).equals("")){
String youtubeVi = SeedUtils.setReplaceNull(tBbsDataDB.getBbsDataYoutube());
youtubeVi = youtubeVi.substring(youtubeVi.lastIndexOf("/")+1);
tBbsDataDB.setBbsDataThumb("http://img.youtube.com/vi/"+youtubeVi+"/mqdefault.jpg");
tBbsDataDB.setBbsDataThumbText("유튜브 썸네일 이미지 "+youtubeVi);
}
tBbsDataDB.setBbsFileCount(Integer.parseInt(bbsFileDAO.getBbsFileListCnt(tBbsDataDB.getBbsDataIdx()).toString()));
bbsDataDAO.setBbsDataModProc(tBbsDataDB);
}
return bbsDataIdx;
}
//UserBbsController
@Transactional
public Integer setBbsDataReplyProc(T_BBS_DATA tBbsData, Integer bbsFamIdx, Integer memberIdx, String memberIp, String fileCode, List<MultipartFile> upFiles, boolean fileEncryChk, boolean filePreviewChk, String[] fileIdxs, Integer thumbWidth, Integer thumbHeight, String rootPath){
Integer bbsDataIdx = 0;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyyMMddHHmmss");
T_BBS_DATA tBbsDataFam = bbsDataDAO.getBbsDataForm(bbsFamIdx);
bbsDataDAO.setBbsDataPosModProc(tBbsDataFam);
if(memberIdx > 0){
T_MEMBER tMember = new T_MEMBER();
tMember.setMemberIdx(memberIdx);
tBbsData.settMember(tMember);
}else{
String strCode = SeedUtils.getSeedMD5Code(tBbsData.getBbsDataPw());
tBbsData.setBbsDataPw(SeedUtils.getSeedSHA256Code(strCode));
}
tBbsData.setBbsDataNotice("N");
tBbsData.setBbsDataGroup(tBbsDataFam.getBbsDataGroup());
tBbsData.setBbsDataPosition(tBbsDataFam.getBbsDataPosition()+1);
tBbsData.setBbsDataFam(tBbsDataFam.getBbsDataIdx());
tBbsData.setBbsDataDepth(tBbsDataFam.getBbsDataDepth()+1);
tBbsData.setBbsDataHit(0);
tBbsData.setBbsDataStatus("U");
if(SeedUtils.setReplaceNull(tBbsData.getBbsDataRegDate()).equals("")){
tBbsData.setBbsDataRegDate(sdf.format(new Date()));
}
tBbsData.setBbsDataModDate(sdf.format(new Date()));
tBbsData.setBbsDataMemberIp(memberIp);
tBbsData.setBbsCommentCount(0);
tBbsData.setBbsFileCount(0);
T_BBS_DATA tBbsDataDB = bbsDataDAO.setBbsDataRegProc(tBbsData);
if(tBbsDataDB != null){
bbsDataIdx = tBbsDataDB.getBbsDataIdx();
String bbsDataContent = tBbsDataDB.getBbsDataContent();
String thumImg = "";
String thumImgText = "";
if(SeedUtils.setReplaceNull(tBbsData.gettBbsSet().getBbsSetPoint()).equals("Y")){
//댓글 포인트
T_POINT tPoint = new T_POINT();
tPoint.setPointSetIdx(tBbsData.gettBbsSet().getBbsSetIdx());
tPoint.setPointDataIdx(tBbsData.getBbsDataIdx());
tPoint.setPointRegdate(sdf.format(new Date()));
tPoint.setMemberIp(memberIp);
tPoint.setMemberIdx(memberIdx);
tPoint.setSiteIdx(tBbsDataDB.gettBbsSet().gettSite().getSiteIdx());
tPoint.setFuncType("REPLY");
tPoint.setPointScore(tBbsDataDB.gettBbsSet().getBbsSetPointWrite());
bbsDataDAO.setBbsPointProc(tPoint);
}
//FTP 전송
SeedFtpType seedFtpType = new SeedFtpType();
if(upFiles != null && upFiles.size() > 0){
SeedUtils.setSeedMkDirs(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx());
try{
for(int f=0; f<upFiles.size(); f++){
boolean fileChk = false;
MultipartFile multipartFile = upFiles.get(f);
if(multipartFile != null && !multipartFile.isEmpty()){
if(fileIdxs != null && fileIdxs.length > 0){
for(int d=0; d<fileIdxs.length; d++){
String fileIdx = fileIdxs[d];
if(fileIdx.equals(String.valueOf(f))){
fileChk = true;
break;
}
}
}
if(!fileChk){
continue;
}
String orgFileName = multipartFile.getOriginalFilename();
String reFileName = tBbsDataDB.gettBbsSet().getBbsSetIdx() + "_" + sdfFormat.format(new Date()) + "_" + SeedUtils.getSeedMD5Code(String.valueOf(SeedUtils.getRandom(999,1)));
String fileType = orgFileName.substring(orgFileName.lastIndexOf(".")+1);
Long fileSize = multipartFile.getSize();
File makeFile = new File(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + fileType);
multipartFile.transferTo(makeFile);
//WEB 서버의 경로
seedFtpType.setDestFilePath(tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 파일명
seedFtpType.setFileName(reFileName+"."+fileType);
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
if(fileType.toLowerCase().equals("jpg") ||
fileType.toLowerCase().equals("jpeg") ||
fileType.toLowerCase().equals("bmp") ||
fileType.toLowerCase().equals("png")){
Thumbnails.of(
new File(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName+"."+fileType)).
size(thumbWidth, thumbHeight).
toFile(new File(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+
tBbsDataDB.gettBbsSet().getBbsSetIdx()+"/thumb_"+reFileName+"."+fileType)
);
if(tBbsDataDB.gettBbsSet().getBbsSetType().equals("A") || tBbsDataDB.gettBbsSet().getBbsSetType().equals("M") || tBbsDataDB.gettBbsSet().getBbsSetType().equals("T")){
if(tBbsDataDB.getBbsDataThumb().equals(String.valueOf(f))){
thumImg = reFileName+"."+fileType;
thumImgText = orgFileName;
}
}else{
thumImg = reFileName+"."+fileType;
thumImgText = orgFileName;
}
//WEB 서버의 경로
seedFtpType.setDestFilePath(tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 파일명
seedFtpType.setFileName("thumb_"+reFileName+"."+fileType);
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
}else if(fileType.toLowerCase().equals("gif")){
int width = 100;
int height = 50;
File thumbFile = new File(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+
tBbsDataDB.gettBbsSet().getBbsSetIdx()+"/thumb_"+reFileName+"."+fileType);
RenderedOp renderedOp = JAI.create("fileload", rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName+"."+fileType);
BufferedImage bi = renderedOp.getAsBufferedImage();
BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);
Graphics2D graphics2D = bufferedImage.createGraphics();
graphics2D.drawImage(bi, 0, 0, width, height, null);
ImageIO.write(bufferedImage, "jpg", thumbFile);
if(tBbsDataDB.gettBbsSet().getBbsSetType().equals("A") || tBbsDataDB.gettBbsSet().getBbsSetType().equals("M") || tBbsDataDB.gettBbsSet().getBbsSetType().equals("T")){
if(tBbsDataDB.getBbsDataThumb().equals(reFileName+"."+fileType)){
thumImg = reFileName+"."+reFileName+"."+fileType;
thumImgText = orgFileName;
}
}else{
thumImg = reFileName+"."+fileType;
thumImgText = orgFileName;
}
//WEB 서버의 경로
seedFtpType.setDestFilePath(tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 파일명
seedFtpType.setFileName("thumb_"+reFileName+"."+fileType);
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
}
T_BBS_FILE tBbsFile = new T_BBS_FILE();
tBbsFile.setBbsFileName(orgFileName);
tBbsFile.setBbsFileReName(reFileName+"."+fileType);
tBbsFile.setBbsFileSize(fileSize);
tBbsFile.setBbsFileType(fileType.toLowerCase());
tBbsFile.setBbsFileText(orgFileName);
if(fileEncryChk){
tBbsFile.setBbsFileEncryption("Y");
}else{
tBbsFile.setBbsFileEncryption("N");
}
tBbsFile.setBbsFileRegDate(new Date());
tBbsFile.setBbsFileDownCnt(0);
tBbsFile.settBbsData(tBbsDataDB);
//앨범게시판이고 워터마크 사용일때 이미지에 워크마크 적용
if(tBbsDataDB.gettBbsSet().getBbsSetType().equals("A")){
if(SeedUtils.setReplaceNull(tBbsDataDB.gettBbsSet().getBbsSetWaterMark()).equals("Y")){
SeedFileUtils.setWaterMarkImg(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx()+"/"+reFileName+"."+fileType,
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx()+"/"+tBbsDataDB.gettBbsSet().getBbsSetWaterMarkReImg());
//WEB 서버의 경로
seedFtpType.setDestFilePath(tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 파일명
seedFtpType.setFileName(reFileName+"."+fileType);
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
}
}
if(fileEncryChk){
//파일 암호화
SeedFileUtils.setSeedEncryptFile(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx()+"/"+reFileName+"."+fileType);
//원본 파일 삭제
makeFile.delete();
//암호화된 파일명 원본 파일명으로 변경
File encryFile = new File(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx()+"/"+reFileName+"."+fileType+".des");
encryFile.renameTo(makeFile);
}
if(!bbsFileDAO.setBbsFileRegProc(tBbsFile)){
return 0;
}else{
//암호화 파일이 아닐때만 미리보기 적용
if(!fileEncryChk){
if(filePreviewChk){
SeedUtils.setSeedMkDirs(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert");
if(fileType.equals("doc")){
SeedCvtDOCToHtml convert = new SeedCvtDOCToHtml();
convert.convert(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + fileType,
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}else if(fileType.equals("docx")){
SeedCvtDOCXToHtml convert = new SeedCvtDOCXToHtml();
convert.convert(rootPath, tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + fileType,
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}else if(fileType.equals("xls")){
SeedCvtXLSToHtml convert = new SeedCvtXLSToHtml();
convert.convert(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + fileType,
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}else if(fileType.equals("xlsx")){
SeedCvtXLSXToHtml convert = new SeedCvtXLSXToHtml();
convert.convert(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + fileType,
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}else if(fileType.equals("ppt")){
SeedCvtPPTToImg convert = new SeedCvtPPTToImg();
convert.convert(rootPath, tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + fileType,
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}else if(fileType.equals("pptx")){
SeedCvtPPTXToImg convert = new SeedCvtPPTXToImg();
convert.convert(rootPath, tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + fileType,
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}else if(fileType.equals("pdf")){
SeedCvtPDFToImg convert = new SeedCvtPDFToImg();
convert.convert(rootPath, tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + fileType,
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}
}
}
}
}
}
}catch(IOException e){
log.error("CHECK ERROR:",e);
}
}else{
List<T_COMMON_FILE> tCommonFileList = commonFileService.getCommonFileList(tBbsDataDB.gettBbsSet().getBbsSetIdx(), fileCode);
if(tCommonFileList != null && tCommonFileList.size() > 0){
SeedUtils.setSeedMkDirs(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx());
for(int f=0; f<tCommonFileList.size(); f++){
String reFileName = tBbsDataDB.gettBbsSet().getBbsSetIdx() + "_" + sdfFormat.format(new Date()) + "_" + SeedUtils.getSeedMD5Code(String.valueOf(SeedUtils.getRandom(999,1)));
T_COMMON_FILE tCommonFile = tCommonFileList.get(f);
SeedUtils.setSeedFileCopy(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/tempFiles/"+tCommonFile.getCommonFileDate()+"/"+tCommonFile.getCommonFileCode()+"/"+tCommonFile.getCommonFileReName()
, rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx()+"/"+reFileName+"."+tCommonFile.getCommonFileType());
//WEB 서버의 경로
seedFtpType.setDestFilePath(tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 파일명
seedFtpType.setFileName(reFileName+"."+tCommonFile.getCommonFileType());
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
SeedUtils.setSeedDeleteFile(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/tempFiles/"+tCommonFile.getCommonFileDate()+"/"+tCommonFile.getCommonFileCode()+"/thumb_"+tCommonFile.getCommonFileReName());
//썸네일 작성
try{
//TempFiles에 복호화 후 삭제
String fileName = rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/tempFiles/"+tCommonFile.getCommonFileDate()+"/"+tCommonFile.getCommonFileCode()+"/"+tCommonFile.getCommonFileReName();
if(tCommonFile.getCommonFileEncryption().equals("Y")){
//파일 복호화
SeedFileUtils.getSeedDecryptFile(fileName);
fileName = rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/tempFiles/"+tCommonFile.getCommonFileDate()+"/"+tCommonFile.getCommonFileCode()+"/"+tCommonFile.getCommonFileReName()+".dcr";
}
if(tCommonFile.getCommonFileType().toLowerCase().equals("jpg") ||
tCommonFile.getCommonFileType().toLowerCase().equals("jpeg") ||
tCommonFile.getCommonFileType().toLowerCase().equals("bmp") ||
tCommonFile.getCommonFileType().toLowerCase().equals("png")){
Thumbnails.of(
new File(fileName)).
size(thumbWidth, thumbHeight).
toFile(new File(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+
tBbsDataDB.gettBbsSet().getBbsSetIdx()+"/thumb_"+reFileName+"."+tCommonFile.getCommonFileType())
);
if(tBbsDataDB.gettBbsSet().getBbsSetType().equals("A") || tBbsDataDB.gettBbsSet().getBbsSetType().equals("M") || tBbsDataDB.gettBbsSet().getBbsSetType().equals("T")){
if(tBbsDataDB.getBbsDataThumb().equals(tCommonFile.getCommonFileReName())){
thumImg = reFileName+"."+tCommonFile.getCommonFileType();
thumImgText = tCommonFile.getCommonFileText();
}
}else{
thumImg = reFileName+"."+tCommonFile.getCommonFileType();
thumImgText = tCommonFile.getCommonFileText();
}
//WEB 서버의 경로
seedFtpType.setDestFilePath(tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 파일명
seedFtpType.setFileName("thumb_"+reFileName+"."+tCommonFile.getCommonFileType());
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
}else if(tCommonFile.getCommonFileType().toLowerCase().equals("gif")){
int width = 100;
int height = 50;
File thumbFile = new File(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+
tBbsDataDB.gettBbsSet().getBbsSetIdx()+"/thumb_"+reFileName+"."+tCommonFile.getCommonFileType());
RenderedOp renderedOp = JAI.create("fileload", fileName);
BufferedImage bi = renderedOp.getAsBufferedImage();
BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);
Graphics2D graphics2D = bufferedImage.createGraphics();
graphics2D.drawImage(bi, 0, 0, width, height, null);
ImageIO.write(bufferedImage, "jpg", thumbFile);
if(tBbsDataDB.gettBbsSet().getBbsSetType().equals("A") || tBbsDataDB.gettBbsSet().getBbsSetType().equals("M") || tBbsDataDB.gettBbsSet().getBbsSetType().equals("T")){
if(tBbsDataDB.getBbsDataThumb().equals(tCommonFile.getCommonFileReName())){
thumImg = reFileName+"."+tCommonFile.getCommonFileType();
thumImgText = tCommonFile.getCommonFileText();
}
}else{
thumImg = reFileName+"."+tCommonFile.getCommonFileType();
thumImgText = tCommonFile.getCommonFileText();
}
//WEB 서버의 경로
seedFtpType.setDestFilePath(tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 파일명
seedFtpType.setFileName("thumb_"+reFileName+"."+tCommonFile.getCommonFileType());
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
}
T_BBS_FILE tBbsFile = new T_BBS_FILE();
tBbsFile.setBbsFileName(tCommonFile.getCommonFileName());
tBbsFile.setBbsFileReName(reFileName+"."+tCommonFile.getCommonFileType());
tBbsFile.setBbsFileSize(tCommonFile.getCommonFileSize());
tBbsFile.setBbsFileType(tCommonFile.getCommonFileType().toLowerCase());
tBbsFile.setBbsFileText(tCommonFile.getCommonFileText());
tBbsFile.setBbsFileEncryption(tCommonFile.getCommonFileEncryption());
tBbsFile.setBbsFileRegDate(new Date());
tBbsFile.setBbsFileDownCnt(0);
tBbsFile.settBbsData(tBbsDataDB);
//앨범게시판이고 워터마크 사용일때 이미지에 워크마크 적용
if(tBbsDataDB.gettBbsSet().getBbsSetType().equals("A")){
if(SeedUtils.setReplaceNull(tBbsDataDB.gettBbsSet().getBbsSetWaterMark()).equals("Y")){
SeedFileUtils.setWaterMarkImg(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx()+"/"+reFileName+"."+tCommonFile.getCommonFileType(),
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx()+"/"+tBbsDataDB.gettBbsSet().getBbsSetWaterMarkReImg());
//WEB 서버의 경로
seedFtpType.setDestFilePath(tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 파일명
seedFtpType.setFileName("thumb_"+reFileName+"."+tCommonFile.getCommonFileType());
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
}
}
if(bbsFileDAO.setBbsFileRegProc(tBbsFile)){
commonFileService.setCommonFileDelProc(tCommonFile.getCommonFileIdx(), tBbsDataDB.gettBbsSet().gettSite().getSiteIdx(), rootPath);
if(filePreviewChk){
SeedUtils.setSeedMkDirs(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert");
if(tCommonFile.getCommonFileType().equals("doc")){
SeedCvtDOCToHtml convert = new SeedCvtDOCToHtml();
convert.convert(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + tCommonFile.getCommonFileType(),
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}else if(tCommonFile.getCommonFileType().equals("docx")){
SeedCvtDOCXToHtml convert = new SeedCvtDOCXToHtml();
convert.convert(rootPath, tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + tCommonFile.getCommonFileType(),
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}else if(tCommonFile.getCommonFileType().equals("xls")){
SeedCvtXLSToHtml convert = new SeedCvtXLSToHtml();
convert.convert(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + tCommonFile.getCommonFileType(),
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}else if(tCommonFile.getCommonFileType().equals("xlsx")){
SeedCvtXLSXToHtml convert = new SeedCvtXLSXToHtml();
convert.convert(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + tCommonFile.getCommonFileType(),
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}else if(tCommonFile.getCommonFileType().equals("ppt")){
SeedCvtPPTToImg convert = new SeedCvtPPTToImg();
convert.convert(rootPath, tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + tCommonFile.getCommonFileType(),
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}else if(tCommonFile.getCommonFileType().equals("pptx")){
SeedCvtPPTXToImg convert = new SeedCvtPPTXToImg();
convert.convert(rootPath, tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + tCommonFile.getCommonFileType(),
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}else if(tCommonFile.getCommonFileType().equals("pdf")){
SeedCvtPDFToImg convert = new SeedCvtPDFToImg();
convert.convert(rootPath, tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + tCommonFile.getCommonFileType(),
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}
}
}
//복호화파일 삭제
SeedUtils.setSeedDeleteFile(fileName);
}catch(IOException e){
log.error("CHECK ERROR:",e);
}
}
}
}
tBbsDataDB.setBbsDataContent(bbsDataContent);
tBbsDataDB.setBbsDataThumb(thumImg);
tBbsDataDB.setBbsDataThumbText(thumImgText);
if(SeedUtils.setReplaceNull(tBbsDataDB.gettBbsSet().getBbsSetYoutube()).equals("Y") &&
!SeedUtils.setReplaceNull(tBbsDataDB.getBbsDataYoutube()).equals("") &&
SeedUtils.setReplaceNull(thumImg).equals("")){
String youtubeVi = SeedUtils.setReplaceNull(tBbsDataDB.getBbsDataYoutube());
youtubeVi = youtubeVi.substring(youtubeVi.lastIndexOf("/")+1);
tBbsDataDB.setBbsDataThumb("http://img.youtube.com/vi/"+youtubeVi+"/mqdefault.jpg");
tBbsDataDB.setBbsDataThumbText("유튜브 썸네일 이미지 "+youtubeVi);
}
tBbsDataDB.setBbsFileCount(Integer.parseInt(bbsFileDAO.getBbsFileListCnt(tBbsDataDB.getBbsDataIdx()).toString()));
bbsDataDAO.setBbsDataModProc(tBbsDataDB);
}
return bbsDataIdx;
}
//UserBbsController
@Transactional
public String setBbsDataModProc(T_BBS_DATA tBbsData, Integer memberIdx, String memberGrant, boolean memberAuthM, boolean memberAuth, String memberIp, Integer[] bbsFileIdx, String fileCode, List<MultipartFile> upFiles, boolean fileEncryChk, boolean filePreviewChk, String[] fileIdxs, Integer thumbWidth, Integer thumbHeight, String rootPath){
String success = "N";
String thumImg = tBbsData.getBbsDataThumb();
String thumImgText = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat sdfFormat = new SimpleDateFormat("yyyyMMddHHmmss");
T_BBS_DATA tBbsDataDB = bbsDataDAO.getBbsDataForm(tBbsData.getBbsDataIdx());
if(!memberGrant.equals("S") && !memberAuthM && !memberAuth){
if(tBbsDataDB.gettMember() != null){
if(!tBbsDataDB.gettMember().getMemberIdx().equals(memberIdx)){
return "ERROR";
}
}else{
if(!tBbsDataDB.getBbsDataPw().equals(SeedUtils.getSeedSHA256Code(SeedUtils.getSeedMD5Code(tBbsData.getBbsDataPw())))){
return "PW";
}else{
tBbsDataDB.setBbsDataName(tBbsData.getBbsDataName());
tBbsDataDB.setBbsDataPw(SeedUtils.getSeedSHA256Code(SeedUtils.getSeedMD5Code(tBbsData.getBbsDataPw())));
}
}
}
if(!SeedUtils.setReplaceNull(tBbsData.getBbsDataNotice()).equals("Y") && !SeedUtils.setReplaceNull(tBbsData.getBbsDataNotice()).equals("A")){
tBbsDataDB.setBbsDataNotice("N");
tBbsDataDB.setBbsDataNoticeSdate("");
tBbsDataDB.setBbsDataNoticeEdate("");
}else{
tBbsDataDB.setBbsDataNotice(tBbsData.getBbsDataNotice());
tBbsDataDB.setBbsDataNoticeSdate(tBbsData.getBbsDataNoticeSdate());
tBbsDataDB.setBbsDataNoticeEdate(tBbsData.getBbsDataNoticeEdate());
}
String bbsDataContent = tBbsData.getBbsDataContent();
tBbsDataDB.setBbsDataTitle(tBbsData.getBbsDataTitle());
tBbsDataDB.setBbsDataLinkUrl(tBbsData.getBbsDataLinkUrl());
tBbsDataDB.setBbsDataLinkType(tBbsData.getBbsDataLinkType());
tBbsDataDB.setBbsDataCategory(SeedUtils.setReplaceNull(tBbsData.getBbsDataCategory()));
tBbsDataDB.setBbsDataContent(bbsDataContent);
tBbsDataDB.setBbsDataThumb(thumImg);
tBbsDataDB.setBbsDataEventSdate(tBbsData.getBbsDataEventSdate());
tBbsDataDB.setBbsDataEventEdate(tBbsData.getBbsDataEventEdate());
tBbsDataDB.setBbsDataEventUrl(tBbsData.getBbsDataEventUrl());
tBbsDataDB.setBbsDataEventResultUrl(tBbsData.getBbsDataEventResultUrl());
if(SeedUtils.setReplaceNull(tBbsData.getBbsDataRegDate()).equals("")){
tBbsDataDB.setBbsDataRegDate(sdf.format(new Date()));
}else{
tBbsDataDB.setBbsDataRegDate(tBbsData.getBbsDataRegDate());
}
tBbsDataDB.setBbsDataModDate(sdf.format(new Date()));
tBbsDataDB.setBbsDataSecret(tBbsData.getBbsDataSecret());
tBbsDataDB.setBbsDataMemberIp(memberIp);
tBbsDataDB.setBbsDataReplyStatus(tBbsData.getBbsDataReplyStatus());
tBbsDataDB.setBbsDataItemA1(tBbsData.getBbsDataItemA1());
tBbsDataDB.setBbsDataItemB2(tBbsData.getBbsDataItemB2());
tBbsDataDB.setBbsDataItemC3(tBbsData.getBbsDataItemC3());
tBbsDataDB.setBbsDataItemD4(tBbsData.getBbsDataItemD4());
tBbsDataDB.setBbsDataItemE5(tBbsData.getBbsDataItemE5());
tBbsDataDB.setBbsDataItemF6(tBbsData.getBbsDataItemF6());
tBbsDataDB.setBbsDataItemG7(tBbsData.getBbsDataItemG7());
tBbsDataDB.setBbsDataItemH8(tBbsData.getBbsDataItemH8());
tBbsDataDB.setBbsDataItemI9(tBbsData.getBbsDataItemI9());
tBbsDataDB.setBbsDataItemJ10(tBbsData.getBbsDataItemJ10());
tBbsDataDB.setBbsDataYoutube(SeedUtils.setReplaceNull(tBbsData.getBbsDataYoutube()));
thumImgText = tBbsDataDB.getBbsDataThumbText();
if(bbsDataDAO.setBbsDataModProc(tBbsDataDB)){
//FTP 전송
SeedFtpType seedFtpType = new SeedFtpType();
if(bbsFileIdx.length > 0){
String[] qryColumns = null;
List<T_BBS_FILE> tBbsFileList = bbsFileDAO.getBbsFileList(tBbsDataDB.getBbsDataIdx(), bbsFileIdx, qryColumns);
if(tBbsFileList != null && tBbsFileList.size() > 0){
for(int f=0; f<tBbsFileList.size(); f++){
T_BBS_FILE tBbsFile = tBbsFileList.get(f);
SeedUtils.setSeedDeleteFile(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() +
"/" + tBbsFile.getBbsFileReName());
//WEB 서버의 경로
seedFtpType.setDestFilePath(tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 서버의 경로
seedFtpType.setSrcFilePath("");
//WAS 파일명
seedFtpType.setFileName(tBbsFile.getBbsFileReName());
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("delFile");
seedFtpType.setSeedFtp();
SeedUtils.setSeedDeleteFile(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() +
"/thumb_" + tBbsFile.getBbsFileReName());
if(tBbsFile.getBbsFileType().toLowerCase().equals("jpg") ||
tBbsFile.getBbsFileType().toLowerCase().equals("jpeg") ||
tBbsFile.getBbsFileType().toLowerCase().equals("bmp") ||
tBbsFile.getBbsFileType().toLowerCase().equals("png")){
//WEB 서버의 경로
seedFtpType.setDestFilePath(tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 서버의 경로
seedFtpType.setSrcFilePath("");
//WAS 파일명
seedFtpType.setFileName("thumb_"+tBbsFile.getBbsFileReName());
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("delFile");
seedFtpType.setSeedFtp();
}
bbsFileDAO.setBbsFileDelProc(tBbsFile);
}
}
}
if(upFiles != null && upFiles.size() > 0){
SeedUtils.setSeedMkDirs(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx());
try{
for(int f=0; f<upFiles.size(); f++){
boolean fileChk = false;
MultipartFile multipartFile = upFiles.get(f);
if(multipartFile != null && !multipartFile.isEmpty()){
if(fileIdxs != null && fileIdxs.length > 0){
for(int d=0; d<fileIdxs.length; d++){
String fileIdx = fileIdxs[d];
if(fileIdx.equals(String.valueOf(f))){
fileChk = true;
break;
}
}
}
if(!fileChk){
continue;
}
String orgFileName = multipartFile.getOriginalFilename();
String reFileName = tBbsDataDB.gettBbsSet().getBbsSetIdx() + "_" + sdfFormat.format(new Date()) + "_" + SeedUtils.getSeedMD5Code(String.valueOf(SeedUtils.getRandom(999,1)));
String fileType = orgFileName.substring(orgFileName.lastIndexOf(".")+1);
Long fileSize = multipartFile.getSize();
File makeFile = new File(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + fileType);
multipartFile.transferTo(makeFile);
//WEB 서버의 경로
seedFtpType.setDestFilePath(tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 파일명
seedFtpType.setFileName(reFileName+"."+fileType);
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
if(fileType.toLowerCase().equals("jpg") ||
fileType.toLowerCase().equals("jpeg") ||
fileType.toLowerCase().equals("bmp") ||
fileType.toLowerCase().equals("png")){
Thumbnails.of(
new File(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName+"."+fileType)).
size(thumbWidth, thumbHeight).
toFile(new File(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+
tBbsDataDB.gettBbsSet().getBbsSetIdx()+"/thumb_"+reFileName+"."+fileType)
);
if(tBbsDataDB.getBbsDataThumb().equals(String.valueOf(f))){
thumImg = reFileName+"."+fileType;
thumImgText = orgFileName;
}else{
if(tBbsDataDB.gettBbsSet().getBbsSetType().equals("A") || tBbsDataDB.gettBbsSet().getBbsSetType().equals("M") || tBbsDataDB.gettBbsSet().getBbsSetType().equals("T")){
if(tBbsDataDB.getBbsDataThumb().equals(reFileName+"."+fileType)){
thumImg = reFileName+"."+fileType;
thumImgText = orgFileName;
}
}else{
thumImg = reFileName+"."+fileType;
thumImgText = orgFileName;
}
}
//WEB 서버의 경로
seedFtpType.setDestFilePath(tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 파일명
seedFtpType.setFileName("thumb_"+reFileName+"."+fileType);
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
}else if(fileType.toLowerCase().equals("gif")){
int width = 100;
int height = 50;
File thumbFile = new File(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+
tBbsDataDB.gettBbsSet().getBbsSetIdx()+"/thumb_"+reFileName+"."+fileType);
RenderedOp renderedOp = JAI.create("fileload", rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName+"."+fileType);
BufferedImage bi = renderedOp.getAsBufferedImage();
BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);
Graphics2D graphics2D = bufferedImage.createGraphics();
graphics2D.drawImage(bi, 0, 0, width, height, null);
ImageIO.write(bufferedImage, "jpg", thumbFile);
if(tBbsDataDB.gettBbsSet().getBbsSetType().equals("A") || tBbsDataDB.gettBbsSet().getBbsSetType().equals("M") || tBbsDataDB.gettBbsSet().getBbsSetType().equals("T")){
if(tBbsDataDB.getBbsDataThumb().equals(reFileName+"."+fileType)){
thumImg = reFileName+"."+reFileName+"."+fileType;
thumImgText = orgFileName;
}
}else{
thumImg = reFileName+"."+fileType;
thumImgText = orgFileName;
}
//WEB 서버의 경로
seedFtpType.setDestFilePath(tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 파일명
seedFtpType.setFileName("thumb_"+reFileName+"."+fileType);
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
}
T_BBS_FILE tBbsFile = new T_BBS_FILE();
tBbsFile.setBbsFileName(orgFileName);
tBbsFile.setBbsFileReName(reFileName+"."+fileType);
tBbsFile.setBbsFileSize(fileSize);
tBbsFile.setBbsFileType(fileType.toLowerCase());
tBbsFile.setBbsFileText(orgFileName);
if(fileEncryChk){
tBbsFile.setBbsFileEncryption("Y");
}else{
tBbsFile.setBbsFileEncryption("N");
}
tBbsFile.setBbsFileRegDate(new Date());
tBbsFile.setBbsFileDownCnt(0);
tBbsFile.settBbsData(tBbsDataDB);
//앨범게시판이고 워터마크 사용일때 이미지에 워크마크 적용
if(tBbsDataDB.gettBbsSet().getBbsSetType().equals("A")){
if(SeedUtils.setReplaceNull(tBbsDataDB.gettBbsSet().getBbsSetWaterMark()).equals("Y")){
SeedFileUtils.setWaterMarkImg(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx()+"/"+reFileName+"."+fileType,
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx()+"/"+tBbsDataDB.gettBbsSet().getBbsSetWaterMarkReImg());
//WEB 서버의 경로
seedFtpType.setDestFilePath(tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 파일명
seedFtpType.setFileName(reFileName+"."+fileType);
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
}
}
if(fileEncryChk){
//파일 암호화
SeedFileUtils.setSeedEncryptFile(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx()+"/"+reFileName+"."+fileType);
//원본 파일 삭제
makeFile.delete();
//암호화된 파일명 원본 파일명으로 변경
File encryFile = new File(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx()+"/"+reFileName+"."+fileType+".des");
encryFile.renameTo(makeFile);
}
if(!bbsFileDAO.setBbsFileRegProc(tBbsFile)){
return "ERROR";
}else{
//암호화 파일이 아닐때만 미리보기 적용
if(!fileEncryChk){
if(filePreviewChk){
SeedUtils.setSeedMkDirs(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert");
if(fileType.equals("doc")){
SeedCvtDOCToHtml convert = new SeedCvtDOCToHtml();
convert.convert(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + fileType,
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}else if(fileType.equals("docx")){
SeedCvtDOCXToHtml convert = new SeedCvtDOCXToHtml();
convert.convert(rootPath, tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + fileType,
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}else if(fileType.equals("xls")){
SeedCvtXLSToHtml convert = new SeedCvtXLSToHtml();
convert.convert(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + fileType,
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}else if(fileType.equals("xlsx")){
SeedCvtXLSXToHtml convert = new SeedCvtXLSXToHtml();
convert.convert(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + fileType,
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}else if(fileType.equals("ppt")){
SeedCvtPPTToImg convert = new SeedCvtPPTToImg();
convert.convert(rootPath, tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + fileType,
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}else if(fileType.equals("pptx")){
SeedCvtPPTXToImg convert = new SeedCvtPPTXToImg();
convert.convert(rootPath, tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + fileType,
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}else if(fileType.equals("pdf")){
SeedCvtPDFToImg convert = new SeedCvtPDFToImg();
convert.convert(rootPath, tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + fileType,
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}
}
}
}
}
}
}catch(IOException e){
log.error("CHECK ERROR:",e);
}
}else{
List<T_COMMON_FILE> tCommonFileList = commonFileService.getCommonFileList(tBbsDataDB.gettBbsSet().getBbsSetIdx(), fileCode);
if(tCommonFileList != null && tCommonFileList.size() > 0){
SeedUtils.setSeedMkDirs(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx());
for(int f=0; f<tCommonFileList.size(); f++){
String reFileName = tBbsDataDB.gettBbsSet().getBbsSetIdx() + "_" + sdfFormat.format(new Date()) + "_" + SeedUtils.getSeedMD5Code(String.valueOf(SeedUtils.getRandom(999,1)));
T_COMMON_FILE tCommonFile = tCommonFileList.get(f);
SeedUtils.setSeedFileCopy(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/tempFiles/"+tCommonFile.getCommonFileDate()+"/"+tCommonFile.getCommonFileCode()+"/"+tCommonFile.getCommonFileReName()
, rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx()+"/"+reFileName+"."+tCommonFile.getCommonFileType());
//WEB 서버의 경로
seedFtpType.setDestFilePath(tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 파일명
seedFtpType.setFileName(reFileName+"."+tCommonFile.getCommonFileType());
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
SeedUtils.setSeedDeleteFile(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/tempFiles/"+tCommonFile.getCommonFileDate()+"/"+tCommonFile.getCommonFileCode()+"/thumb_"+tCommonFile.getCommonFileReName());
//썸네일 작성
try{
//TempFiles에 복호화 후 삭제
String fileName = rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/tempFiles/"+tCommonFile.getCommonFileDate()+"/"+tCommonFile.getCommonFileCode()+"/"+tCommonFile.getCommonFileReName();
if(tCommonFile.getCommonFileEncryption().equals("Y")){
//파일 복호화
SeedFileUtils.getSeedDecryptFile(fileName);
fileName = rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/tempFiles/"+tCommonFile.getCommonFileDate()+"/"+tCommonFile.getCommonFileCode()+"/"+tCommonFile.getCommonFileReName()+".dcr";
}
if(tCommonFile.getCommonFileType().toLowerCase().equals("jpg") ||
tCommonFile.getCommonFileType().toLowerCase().equals("jpeg") ||
tCommonFile.getCommonFileType().toLowerCase().equals("bmp") ||
tCommonFile.getCommonFileType().toLowerCase().equals("png")){
Thumbnails.of(
new File(fileName)).
size(thumbWidth, thumbHeight).
toFile(new File(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+
tBbsDataDB.gettBbsSet().getBbsSetIdx()+"/thumb_"+reFileName+"."+tCommonFile.getCommonFileType())
);
if(tBbsDataDB.gettBbsSet().getBbsSetType().equals("A") || tBbsDataDB.gettBbsSet().getBbsSetType().equals("M") || tBbsDataDB.gettBbsSet().getBbsSetType().equals("T")){
if(tBbsDataDB.getBbsDataThumb().equals(tCommonFile.getCommonFileReName())){
thumImg = reFileName+"."+tCommonFile.getCommonFileType();
thumImgText = tCommonFile.getCommonFileText();
}
}else{
thumImg = reFileName+"."+tCommonFile.getCommonFileType();
thumImgText = tCommonFile.getCommonFileText();
}
//WEB 서버의 경로
seedFtpType.setDestFilePath(tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 파일명
seedFtpType.setFileName("thumb_"+reFileName+"."+tCommonFile.getCommonFileType());
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
}else if(tCommonFile.getCommonFileType().toLowerCase().equals("gif")){
int width = 100;
int height = 50;
File thumbFile = new File(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+
tBbsDataDB.gettBbsSet().getBbsSetIdx()+"/thumb_"+reFileName+"."+tCommonFile.getCommonFileType());
RenderedOp renderedOp = JAI.create("fileload", fileName);
BufferedImage bi = renderedOp.getAsBufferedImage();
BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);
Graphics2D graphics2D = bufferedImage.createGraphics();
graphics2D.drawImage(bi, 0, 0, width, height, null);
ImageIO.write(bufferedImage, "jpg", thumbFile);
if(tBbsDataDB.gettBbsSet().getBbsSetType().equals("A") || tBbsDataDB.gettBbsSet().getBbsSetType().equals("M") || tBbsDataDB.gettBbsSet().getBbsSetType().equals("T")){
if(tBbsDataDB.getBbsDataThumb().equals(tCommonFile.getCommonFileReName())){
thumImg = reFileName+"."+tCommonFile.getCommonFileType();
thumImgText = tCommonFile.getCommonFileText();
}
}else{
thumImg = reFileName+"."+tCommonFile.getCommonFileType();
thumImgText = tCommonFile.getCommonFileText();
}
//WEB 서버의 경로
seedFtpType.setDestFilePath(tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 파일명
seedFtpType.setFileName("thumb_"+reFileName+"."+tCommonFile.getCommonFileType());
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
}
T_BBS_FILE tBbsFile = new T_BBS_FILE();
tBbsFile.setBbsFileName(tCommonFile.getCommonFileName());
tBbsFile.setBbsFileReName(reFileName+"."+tCommonFile.getCommonFileType());
tBbsFile.setBbsFileSize(tCommonFile.getCommonFileSize());
tBbsFile.setBbsFileType(tCommonFile.getCommonFileType().toLowerCase());
tBbsFile.setBbsFileText(tCommonFile.getCommonFileText());
tBbsFile.setBbsFileEncryption(tCommonFile.getCommonFileEncryption());
tBbsFile.setBbsFileRegDate(new Date());
tBbsFile.setBbsFileDownCnt(0);
tBbsFile.settBbsData(tBbsDataDB);
//앨범게시판이고 워터마크 사용일때 이미지에 워크마크 적용
if(tBbsDataDB.gettBbsSet().getBbsSetType().equals("A")){
if(SeedUtils.setReplaceNull(tBbsDataDB.gettBbsSet().getBbsSetWaterMark()).equals("Y")){
SeedFileUtils.setWaterMarkImg(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx()+"/"+reFileName+"."+tCommonFile.getCommonFileType(),
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx()+"/"+tBbsDataDB.gettBbsSet().getBbsSetWaterMarkReImg());
//WEB 서버의 경로
seedFtpType.setDestFilePath(tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 서버의 경로
seedFtpType.setSrcFilePath(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/"+tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 파일명
seedFtpType.setFileName(reFileName+"."+tCommonFile.getCommonFileType());
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("regFile");
seedFtpType.setSeedFtp();
}
}
if(bbsFileDAO.setBbsFileRegProc(tBbsFile)){
commonFileService.setCommonFileDelProc(tCommonFile.getCommonFileIdx(), tBbsDataDB.gettBbsSet().gettSite().getSiteIdx(), rootPath);
if(filePreviewChk){
SeedUtils.setSeedMkDirs(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert");
if(tCommonFile.getCommonFileType().equals("doc")){
SeedCvtDOCToHtml convert = new SeedCvtDOCToHtml();
convert.convert(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + tCommonFile.getCommonFileType(),
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}else if(tCommonFile.getCommonFileType().equals("docx")){
SeedCvtDOCXToHtml convert = new SeedCvtDOCXToHtml();
convert.convert(rootPath, tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + tCommonFile.getCommonFileType(),
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}else if(tCommonFile.getCommonFileType().equals("xls")){
SeedCvtXLSToHtml convert = new SeedCvtXLSToHtml();
convert.convert(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + tCommonFile.getCommonFileType(),
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}else if(tCommonFile.getCommonFileType().equals("xlsx")){
SeedCvtXLSXToHtml convert = new SeedCvtXLSXToHtml();
convert.convert(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + tCommonFile.getCommonFileType(),
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}else if(tCommonFile.getCommonFileType().equals("ppt")){
SeedCvtPPTToImg convert = new SeedCvtPPTToImg();
convert.convert(rootPath, tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + tCommonFile.getCommonFileType(),
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}else if(tCommonFile.getCommonFileType().equals("pptx")){
SeedCvtPPTXToImg convert = new SeedCvtPPTXToImg();
convert.convert(rootPath, tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + tCommonFile.getCommonFileType(),
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}else if(tCommonFile.getCommonFileType().equals("pdf")){
SeedCvtPDFToImg convert = new SeedCvtPDFToImg();
convert.convert(rootPath, tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "." + tCommonFile.getCommonFileType(),
rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx()
+ "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() + "/" + reFileName + "/convert/");
}
}
}
//복호화파일 삭제
SeedUtils.setSeedDeleteFile(fileName);
}catch(IOException e){
log.error("CHECK ERROR:",e);
}
}
}
}
tBbsDataDB.setBbsDataThumb(thumImg);
tBbsDataDB.setBbsDataThumbText(thumImgText);
if(SeedUtils.setReplaceNull(tBbsDataDB.gettBbsSet().getBbsSetYoutube()).equals("Y") &&
!SeedUtils.setReplaceNull(tBbsDataDB.getBbsDataYoutube()).equals("") &&
SeedUtils.setReplaceNull(thumImg).equals("")){
String youtubeVi = SeedUtils.setReplaceNull(tBbsDataDB.getBbsDataYoutube());
youtubeVi = youtubeVi.substring(youtubeVi.lastIndexOf("/")+1);
tBbsDataDB.setBbsDataThumb("http://img.youtube.com/vi/"+youtubeVi+"/mqdefault.jpg");
tBbsDataDB.setBbsDataThumbText("유튜브 썸네일 이미지 "+youtubeVi);
}
tBbsDataDB.setBbsFileCount(Integer.parseInt(bbsFileDAO.getBbsFileListCnt(tBbsDataDB.getBbsDataIdx()).toString()));
bbsDataDAO.setBbsDataModProc(tBbsDataDB);
success = "Y";
}
return success;
}
//UserBbsController
@Transactional
public String setBbsDataModPwProc(Integer bbsDataIdx, Integer memberIdx, String memberGrant, boolean memberAuthM, boolean memberAuth, String bbsDataPw){
String success = "Y";
T_BBS_DATA tBbsDataDB = bbsDataDAO.getBbsDataForm(bbsDataIdx);
if(!memberGrant.equals("S") && !memberAuthM && !memberAuth){
boolean errorChk = true;
boolean pwChk = true;
//해당글이 자신글 인지 또는 패스워드가 같은지 확인
if(tBbsDataDB.gettMember() != null){
if(!tBbsDataDB.gettMember().getMemberIdx().equals(memberIdx)){
errorChk = false;
}
}else{
if(!tBbsDataDB.getBbsDataPw().equals(SeedUtils.getSeedSHA256Code(SeedUtils.getSeedMD5Code(bbsDataPw)))){
pwChk = false;
}
}
//해당글이 답글 이고 해당글이 자신의 글이 아닐때 다시 한번 권한 확인
if(tBbsDataDB.getBbsDataDepth() > 0 && (!errorChk || !pwChk)){
errorChk = true;
pwChk = true;
T_BBS_DATA tBbsDataParentDB = bbsDataDAO.getBbsDataForm(tBbsDataDB.getBbsDataFam());
if(tBbsDataParentDB.gettMember() != null){
if(!tBbsDataParentDB.gettMember().getMemberIdx().equals(memberIdx)){
errorChk = false;
}
}else{
if(!tBbsDataParentDB.getBbsDataPw().equals(SeedUtils.getSeedSHA256Code(SeedUtils.getSeedMD5Code(bbsDataPw)))){
pwChk = false;
}
}
}
if(!errorChk){
return "ERROR";
}else if(!pwChk){
return "PW";
}
}
return success;
}
//UserBbsController
@Transactional
public String setBbsDataDelProc(Integer bbsDataIdx, Integer memberIdx, String memberGrant, boolean memberAuthM, boolean memberAuth, String bbsDataPw, String bbsSetTrash, String rootPath){
String success = "N";
T_BBS_DATA tBbsDataDB = bbsDataDAO.getBbsDataForm(bbsDataIdx);
if(!memberGrant.equals("S") && !memberAuthM && !memberAuth){
if(tBbsDataDB.gettMember() != null){
if(!tBbsDataDB.gettMember().getMemberIdx().equals(memberIdx)){
return "ERROR";
}
}else{
if(!tBbsDataDB.getBbsDataPw().equals(bbsDataPw)){
return "PW";
}
}
}
if(bbsDataDAO.getBbsDataReplyCnt(tBbsDataDB.gettBbsSet().getBbsSetIdx(), tBbsDataDB.getBbsDataGroup(), tBbsDataDB.getBbsDataDepth()) > 0){
return "RE";
}
if(bbsSetTrash.equals("Y")){
tBbsDataDB.setBbsDataStatus("D");
if(bbsDataDAO.setBbsDataModProc(tBbsDataDB)){
success = "Y";
}
}else{
String[] qryColumns = null;
List<T_BBS_FILE> tBbsFileList = bbsFileDAO.getBbsFileList(tBbsDataDB.getBbsDataIdx(), qryColumns);
if(tBbsFileList != null && tBbsFileList.size() > 0){
//FTP 전송
SeedFtpType seedFtpType = new SeedFtpType();
for(int f=0; f<tBbsFileList.size(); f++){
T_BBS_FILE tBbsFile = tBbsFileList.get(f);
SeedUtils.setSeedDeleteFile(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() +
"/" + tBbsFile.getBbsFileReName());
SeedUtils.setSeedDeleteFiles(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() +
"/" + tBbsFile.getBbsFileReName().substring(0, tBbsFile.getBbsFileReName().lastIndexOf(".")), "");
//WEB 서버의 경로
seedFtpType.setDestFilePath(tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 서버의 경로
seedFtpType.setSrcFilePath("");
//WAS 파일명
seedFtpType.setFileName(tBbsFile.getBbsFileReName());
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("delFile");
seedFtpType.setSeedFtp();
SeedUtils.setSeedDeleteFile(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() +
"/thumb_" + tBbsFile.getBbsFileReName());
if(tBbsFile.getBbsFileType().toLowerCase().equals("jpg") ||
tBbsFile.getBbsFileType().toLowerCase().equals("jpeg") ||
tBbsFile.getBbsFileType().toLowerCase().equals("bmp") ||
tBbsFile.getBbsFileType().toLowerCase().equals("png")){
//WEB 서버의 경로
seedFtpType.setDestFilePath(tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 서버의 경로
seedFtpType.setSrcFilePath("");
//WAS 파일명
seedFtpType.setFileName("thumb_"+tBbsFile.getBbsFileReName());
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("delFile");
seedFtpType.setSeedFtp();
}
bbsFileDAO.setBbsFileDelProc(tBbsFile);
}
}
if(bbsDataDAO.setBbsDataDelProc(tBbsDataDB)){
success = "Y";
List<T_FILE_DOWNLOAD> tFileDownLoadList = fileDownLoadDAO.getFileDownLoadList("bbs", String.valueOf(tBbsDataDB.gettBbsSet().getBbsSetIdx()), String.valueOf(tBbsDataDB.getBbsDataIdx()));
if(tFileDownLoadList != null && tFileDownLoadList.size() > 0){
for(int d=0; d<tFileDownLoadList.size(); d++){
T_FILE_DOWNLOAD tFileDownLoadDB = tFileDownLoadList.get(d);
if(!fileDownLoadDAO.setFileDownLoadDelProc(tFileDownLoadDB)){
success = "N";
break;
}
}
}
}
}
return success;
}
//UserBbsController
@Transactional
public String setBbsDataDelPwProc(Integer bbsDataIdx, Integer memberIdx, String memberGrant, boolean memberAuthM, boolean memberAuth, String bbsDataPw, String bbsSetTrash, String rootPath){
String success = "N";
T_BBS_DATA tBbsDataDB = bbsDataDAO.getBbsDataForm(bbsDataIdx);
if(!memberGrant.equals("S") && !memberAuthM && !memberAuth){
if(tBbsDataDB.gettMember() != null){
if(!tBbsDataDB.gettMember().getMemberIdx().equals(memberIdx)){
return "ERROR";
}
}else{
if(!tBbsDataDB.getBbsDataPw().equals(SeedUtils.getSeedSHA256Code(SeedUtils.getSeedMD5Code(bbsDataPw)))){
return "PW";
}
}
}
if(bbsDataDAO.getBbsDataReplyCnt(tBbsDataDB.gettBbsSet().getBbsSetIdx(), tBbsDataDB.getBbsDataGroup(), tBbsDataDB.getBbsDataDepth()) > 0){
return "RE";
}
if(bbsSetTrash.equals("Y")){
tBbsDataDB.setBbsDataStatus("D");
if(bbsDataDAO.setBbsDataModProc(tBbsDataDB)){
success = "Y";
}
}else{
String[] qryColumns = null;
List<T_BBS_FILE> tBbsFileList = bbsFileDAO.getBbsFileList(tBbsDataDB.getBbsDataIdx(), qryColumns);
if(tBbsFileList != null && tBbsFileList.size() > 0){
//FTP 전송
SeedFtpType seedFtpType = new SeedFtpType();
for(int f=0; f<tBbsFileList.size(); f++){
T_BBS_FILE tBbsFile = tBbsFileList.get(f);
SeedUtils.setSeedDeleteFile(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() +
"/" + tBbsFile.getBbsFileReName());
SeedUtils.setSeedDeleteFiles(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() +
"/" + tBbsFile.getBbsFileReName().substring(0, tBbsFile.getBbsFileReName().lastIndexOf(".")), "");
//WEB 서버의 경로
seedFtpType.setDestFilePath(tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 서버의 경로
seedFtpType.setSrcFilePath("");
//WAS 파일명
seedFtpType.setFileName(tBbsFile.getBbsFileReName());
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("delFile");
seedFtpType.setSeedFtp();
SeedUtils.setSeedDeleteFile(rootPath + "/" + tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx() +
"/thumb_" + tBbsFile.getBbsFileReName());
if(tBbsFile.getBbsFileType().toLowerCase().equals("jpg") ||
tBbsFile.getBbsFileType().toLowerCase().equals("jpeg") ||
tBbsFile.getBbsFileType().toLowerCase().equals("bmp") ||
tBbsFile.getBbsFileType().toLowerCase().equals("png")){
//WEB 서버의 경로
seedFtpType.setDestFilePath(tBbsDataDB.gettBbsSet().gettSite().getSiteIdx() + "/upload/bbs/" + tBbsDataDB.gettBbsSet().getBbsSetIdx());
//WAS 서버의 경로
seedFtpType.setSrcFilePath("");
//WAS 파일명
seedFtpType.setFileName("thumb_"+tBbsFile.getBbsFileReName());
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("delFile");
seedFtpType.setSeedFtp();
}
bbsFileDAO.setBbsFileDelProc(tBbsFile);
}
}
if(bbsDataDAO.setBbsDataDelProc(tBbsDataDB)){
success = "Y";
}
}
return success;
}
//UserBbsController
@Transactional
public boolean setBbsDataStatusProc(Integer bbsDataIdx, String status, String memberIp, String rootPath){
T_BBS_DATA tBbsDataDB = bbsDataDAO.getBbsDataForm(bbsDataIdx);
String siteIdx = tBbsDataDB.gettBbsSet().gettSite().getSiteIdx();
Integer bbsSetIdx = tBbsDataDB.gettBbsSet().getBbsSetIdx();
String bbsSetType = tBbsDataDB.gettBbsSet().getBbsSetType();
Integer bbsDataGroup = tBbsDataDB.getBbsDataGroup();
Integer bbsDataFam = tBbsDataDB.getBbsDataFam();
if(status.equals("Y")){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//답글 게시판인 경우 해당 글의 답글도 휴지통으로 이동
if(bbsSetType.equals("W")){
T_BBS_DATA tBbsReplyDB = bbsDataDAO.getBbsReplyForm(bbsDataGroup, bbsDataFam);
if(tBbsReplyDB != null){
tBbsReplyDB.setBbsDataMemberIp(memberIp);
tBbsReplyDB.setBbsDataModDate(sdf.format(new Date()));
tBbsReplyDB.setBbsDataStatus("D");
bbsDataDAO.setBbsDataModProc(tBbsReplyDB);
}
}
tBbsDataDB.setBbsDataMemberIp(memberIp);
tBbsDataDB.setBbsDataModDate(sdf.format(new Date()));
tBbsDataDB.setBbsDataStatus("D");
return bbsDataDAO.setBbsDataModProc(tBbsDataDB);
}else{
//답글 게시판인 경우 해당 글의 답글도 삭제
if(bbsSetType.equals("W")){
T_BBS_DATA tBbsReplyDB = bbsDataDAO.getBbsReplyForm(bbsDataGroup, bbsDataFam);
if(tBbsReplyDB != null){
List<T_BBS_FILE> tBbsFileReplyList = bbsFileDAO.getBbsFileList(tBbsReplyDB.getBbsDataIdx(), new String[] {});
if(tBbsFileReplyList != null && tBbsFileReplyList.size() > 0){
//FTP 전송
SeedFtpType seedFtpType = new SeedFtpType();
for(int f=0; f<tBbsFileReplyList.size(); f++){
T_BBS_FILE tBbsReplyFile = tBbsFileReplyList.get(f);
SeedUtils.setSeedDeleteFile(rootPath + "/" + siteIdx + "/upload/bbs/" + bbsSetIdx +
"/" + tBbsReplyFile.getBbsFileReName());
SeedUtils.setSeedDeleteFiles(rootPath + "/" + siteIdx + "/upload/bbs/" + bbsSetIdx +
"/" + tBbsReplyFile.getBbsFileReName().substring(0, tBbsReplyFile.getBbsFileReName().lastIndexOf(".")), "");
//WEB 서버의 경로
seedFtpType.setDestFilePath(siteIdx + "/upload/bbs/" + bbsSetIdx);
//WAS 서버의 경로
seedFtpType.setSrcFilePath("");
//WAS 파일명
seedFtpType.setFileName(tBbsReplyFile.getBbsFileReName());
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("delFile");
seedFtpType.setSeedFtp();
SeedUtils.setSeedDeleteFile(rootPath + "/" + siteIdx + "/upload/bbs/" + bbsSetIdx +
"/thumb_" + tBbsReplyFile.getBbsFileReName());
if(tBbsReplyFile.getBbsFileType().toLowerCase().equals("jpg") ||
tBbsReplyFile.getBbsFileType().toLowerCase().equals("jpeg") ||
tBbsReplyFile.getBbsFileType().toLowerCase().equals("bmp") ||
tBbsReplyFile.getBbsFileType().toLowerCase().equals("png")){
//WEB 서버의 경로
seedFtpType.setDestFilePath(siteIdx + "/upload/bbs/" + bbsSetIdx);
//WAS 서버의 경로
seedFtpType.setSrcFilePath("");
//WAS 파일명
seedFtpType.setFileName("thumb_"+tBbsReplyFile.getBbsFileReName());
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("delFile");
seedFtpType.setSeedFtp();
}
bbsFileDAO.setBbsFileDelProc(tBbsReplyFile);
}
}
bbsDataDAO.setBbsDataDelProc(tBbsReplyDB);
}
}
List<T_BBS_FILE> tBbsFileList = bbsFileDAO.getBbsFileList(bbsDataIdx, new String[]{});
if(tBbsFileList != null && tBbsFileList.size() > 0){
//FTP 전송
SeedFtpType seedFtpType = new SeedFtpType();
for(int f=0; f<tBbsFileList.size(); f++){
T_BBS_FILE tBbsFile = tBbsFileList.get(f);
SeedUtils.setSeedDeleteFile(rootPath + "/" + siteIdx + "/upload/bbs/" + bbsSetIdx +
"/" + tBbsFile.getBbsFileReName());
SeedUtils.setSeedDeleteFiles(rootPath + "/" + siteIdx + "/upload/bbs/" + bbsSetIdx +
"/" + tBbsFile.getBbsFileReName().substring(0, tBbsFile.getBbsFileReName().lastIndexOf(".")), "");
//WEB 서버의 경로
seedFtpType.setDestFilePath(siteIdx + "/upload/bbs/" + bbsSetIdx);
//WAS 서버의 경로
seedFtpType.setSrcFilePath("");
//WAS 파일명
seedFtpType.setFileName(tBbsFile.getBbsFileReName());
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("delFile");
seedFtpType.setSeedFtp();
SeedUtils.setSeedDeleteFile(rootPath + "/" + siteIdx + "/upload/bbs/" + bbsSetIdx +
"/thumb_" + tBbsFile.getBbsFileReName());
if(tBbsFile.getBbsFileType().toLowerCase().equals("jpg") ||
tBbsFile.getBbsFileType().toLowerCase().equals("jpeg") ||
tBbsFile.getBbsFileType().toLowerCase().equals("bmp") ||
tBbsFile.getBbsFileType().toLowerCase().equals("png")){
//WEB 서버의 경로
seedFtpType.setDestFilePath(siteIdx + "/upload/bbs/" + bbsSetIdx);
//WAS 서버의 경로
seedFtpType.setSrcFilePath("");
//WAS 파일명
seedFtpType.setFileName("thumb_"+tBbsFile.getBbsFileReName());
//파일 전송 타입 regFile=WEB 서버에 파일전송, delFile=WEB 서버에 파일삭제
seedFtpType.setFtpType("delFile");
seedFtpType.setSeedFtp();
}
bbsFileDAO.setBbsFileDelProc(tBbsFile);
}
}
return bbsDataDAO.setBbsDataDelProc(tBbsDataDB);
}
}
//UserBbsController
@Transactional
public void setBbsDataHitProc(Integer bbsDataIdx){
bbsDataDAO.setBbsDataHitProc(bbsDataIdx);
}
}