kcgFileManager/src/main/java/com/dbnt/kcgfilemanager/service/BoardService.java

69 lines
2.5 KiB
Java
Raw Normal View History

2021-12-14 09:36:44 +00:00
package com.dbnt.kcgfilemanager.service;
import com.dbnt.kcgfilemanager.model.Board;
import com.dbnt.kcgfilemanager.model.BoardLog;
import com.dbnt.kcgfilemanager.model.HashTag;
import com.dbnt.kcgfilemanager.model.HashTagLink;
import com.dbnt.kcgfilemanager.repository.BoardLogRepository;
import com.dbnt.kcgfilemanager.repository.BoardRepository;
import com.dbnt.kcgfilemanager.repository.HashTagLinkRepository;
import com.dbnt.kcgfilemanager.repository.HashTagRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
@Service
@RequiredArgsConstructor
public class BoardService {
private BoardRepository boardRepository;
private BoardLogRepository boardLogRepository;
private HashTagRepository hashTagRepository;
private HashTagLinkRepository hashTagLinkRepository;
@Transactional
public Integer saveContent(Board content){
boardRepository.save(content);
saveBoardLog(content.getContentSeq(), "I", null, content.getCreateId());
saveHashTagLink(content.getContentSeq(), content.getHashTagStr());
saveUploadFiles(content.getContentSeq(), content.getFileList());
return content.getContentSeq();
}
public void saveBoardLog(Integer contentSeq, String status, String description, String createId){
BoardLog lastLog = boardLogRepository.findTopByContentSeqOrderByLogSeqDesc(contentSeq).orElse(null);
BoardLog log = new BoardLog();
log.setContentSeq(contentSeq);
log.setLogSeq(lastLog == null?1:(lastLog.getLogSeq()+1));
log.setLogStatus(status);
log.setDescription(description);
log.setCreateId(createId);
boardLogRepository.save(log);
}
public HashTag saveHashTag(String tagName){
HashTag tag = new HashTag();
tag.setTagName(tagName);
return hashTagRepository.save(tag);
}
public void saveHashTagLink(Integer contentSeq, String hashTagStr){
String[] hashTagAry = hashTagStr.trim().replaceAll(",", "").split("#");
for(String tagName : hashTagAry){
HashTag tag = hashTagRepository.findByTagName(tagName).orElse(null);
if(tag==null){
tag = saveHashTag(tagName);
}
HashTagLink link = new HashTagLink();
link.setContentSeq(contentSeq);
link.setTagSeq(tag.getTagSeq());
hashTagLinkRepository.save(link);
}
}
public void saveUploadFiles(Integer contentSeq, List<MultipartFile> files){
}
}