|
|
@ -29,9 +29,7 @@ import lombok.extern.slf4j.Slf4j; |
|
|
|
@Service |
|
|
|
@Service |
|
|
|
@Slf4j |
|
|
|
@Slf4j |
|
|
|
@RequiredArgsConstructor |
|
|
|
@RequiredArgsConstructor |
|
|
|
public class CnsQnaService { |
|
|
|
public class CnsQnaService { |
|
|
|
|
|
|
|
|
|
|
|
private final ComnFileService comnFileService; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private final CnsQnaBasRepository cnsQnaBasRepository; |
|
|
|
private final CnsQnaBasRepository cnsQnaBasRepository; |
|
|
|
|
|
|
|
|
|
|
@ -39,9 +37,18 @@ public class CnsQnaService { |
|
|
|
|
|
|
|
|
|
|
|
private final ComFileBasRepository comFileBasRepository; |
|
|
|
private final ComFileBasRepository comFileBasRepository; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private final ComnFileService comnFileService; |
|
|
|
|
|
|
|
|
|
|
|
private final JwtTokenUtil jwtTokenUtil; |
|
|
|
private final JwtTokenUtil jwtTokenUtil; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public boolean deleteQnaFile(int fileSno){ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
comnFileService.deleteFile(fileSno); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Qna 삭제하기, file들도 모두 논리삭제함. |
|
|
|
* Qna 삭제하기, file들도 모두 논리삭제함. |
|
|
|
* @param qnaSno |
|
|
|
* @param qnaSno |
|
|
@ -50,10 +57,10 @@ public class CnsQnaService { |
|
|
|
@Transactional |
|
|
|
@Transactional |
|
|
|
public boolean deleteQna(int qnaSno){ |
|
|
|
public boolean deleteQna(int qnaSno){ |
|
|
|
|
|
|
|
|
|
|
|
CnsQnaBas entity = cnsQnaBasRepository.findFirstByQnaSnoAndTargetSno(qnaSno, 0); |
|
|
|
CnsQnaBas entity = cnsQnaBasRepository.findByQnaSnoAndDelYnAndExpsrYn(qnaSno, "N", "Y"); |
|
|
|
if(entity == null) throw new CustomException(ErrorCode.DATA_NOTFIND); |
|
|
|
if(entity == null) throw new CustomException(ErrorCode.DATA_NOTFIND); |
|
|
|
|
|
|
|
|
|
|
|
boolean fileDelete = comnFileService.deleteFiles(entity.getFileGroupNo()); |
|
|
|
if(entity.getFileGroupNo() != null) comnFileService.deleteFiles(entity.getFileGroupNo()); |
|
|
|
|
|
|
|
|
|
|
|
entity.setDelYn("Y"); |
|
|
|
entity.setDelYn("Y"); |
|
|
|
|
|
|
|
|
|
|
@ -65,7 +72,7 @@ public class CnsQnaService { |
|
|
|
// 대댓글 불러오기
|
|
|
|
// 대댓글 불러오기
|
|
|
|
while(true){ |
|
|
|
while(true){ |
|
|
|
|
|
|
|
|
|
|
|
CnsQnaBas cnsQnaBas = cnsQnaBasRepository.findFirstByTargetSno(targetSno); |
|
|
|
CnsQnaBas cnsQnaBas = cnsQnaBasRepository.findFirstByTargetSnoAndDelYnAndExpsrYn(targetSno, "N", "Y"); |
|
|
|
if(cnsQnaBas == null) break; |
|
|
|
if(cnsQnaBas == null) break; |
|
|
|
|
|
|
|
|
|
|
|
cnsQnaBas.setDelYn("Y"); |
|
|
|
cnsQnaBas.setDelYn("Y"); |
|
|
@ -77,7 +84,7 @@ public class CnsQnaService { |
|
|
|
|
|
|
|
|
|
|
|
deleteList = cnsQnaBasRepository.saveAll(deleteList); |
|
|
|
deleteList = cnsQnaBasRepository.saveAll(deleteList); |
|
|
|
|
|
|
|
|
|
|
|
return deleteList != null && fileDelete; |
|
|
|
return true; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
@ -89,7 +96,7 @@ public class CnsQnaService { |
|
|
|
@Transactional |
|
|
|
@Transactional |
|
|
|
public boolean updateQna(int qnaSno, QnaInsertRQModel rq){ |
|
|
|
public boolean updateQna(int qnaSno, QnaInsertRQModel rq){ |
|
|
|
|
|
|
|
|
|
|
|
CnsQnaBas entity = cnsQnaBasRepository.findFirstByQnaSnoAndTargetSno(qnaSno, 0); |
|
|
|
CnsQnaBas entity = cnsQnaBasRepository.findFirstByQnaSnoAndTargetSnoAndDelYnAndExpsrYn(qnaSno, 0, "N", "Y"); |
|
|
|
if(entity == null) throw new CustomException(ErrorCode.DATA_NOTFIND); |
|
|
|
if(entity == null) throw new CustomException(ErrorCode.DATA_NOTFIND); |
|
|
|
|
|
|
|
|
|
|
|
List<MultipartFile> files = rq.getFiles(); |
|
|
|
List<MultipartFile> files = rq.getFiles(); |
|
|
@ -114,9 +121,9 @@ public class CnsQnaService { |
|
|
|
|
|
|
|
|
|
|
|
cnsQnaBasRepository.pulsViewCount(qnaSno); |
|
|
|
cnsQnaBasRepository.pulsViewCount(qnaSno); |
|
|
|
|
|
|
|
|
|
|
|
CnsQnaBas qnaBasModel = cnsQnaBasRepository.findFirstByQnaSnoAndTargetSno(qnaSno, 0); |
|
|
|
CnsQnaBas qnaBasModel = cnsQnaBasRepository.findFirstByQnaSnoAndTargetSnoAndDelYnAndExpsrYn(qnaSno, 0, "N", "Y"); |
|
|
|
List<ComFileBas> files = null; |
|
|
|
List<ComFileBas> files = null; |
|
|
|
if(qnaBasModel.getFileGroupNo() != 0) files = comFileBasRepository.findByFileGroupNo(qnaBasModel.getFileGroupNo()); |
|
|
|
if(qnaBasModel.getFileGroupNo() != 0) files = comFileBasRepository.findByFileGroupNoAndDelYn(qnaBasModel.getFileGroupNo(), "N"); |
|
|
|
|
|
|
|
|
|
|
|
QnaDetailRSModel node = new QnaDetailRSModel(); |
|
|
|
QnaDetailRSModel node = new QnaDetailRSModel(); |
|
|
|
node.setQnaSno(qnaSno); |
|
|
|
node.setQnaSno(qnaSno); |
|
|
@ -139,7 +146,7 @@ public class CnsQnaService { |
|
|
|
// 대댓글 불러오기
|
|
|
|
// 대댓글 불러오기
|
|
|
|
while(true){ |
|
|
|
while(true){ |
|
|
|
|
|
|
|
|
|
|
|
CnsQnaBas cnsQnaBas = cnsQnaBasRepository.findFirstByTargetSno(targetSno); |
|
|
|
CnsQnaBas cnsQnaBas = cnsQnaBasRepository.findFirstByTargetSnoAndDelYnAndExpsrYn(targetSno, "N", "Y"); |
|
|
|
if(cnsQnaBas == null) break; |
|
|
|
if(cnsQnaBas == null) break; |
|
|
|
|
|
|
|
|
|
|
|
QnaDetailRSModel detailNode = new QnaDetailRSModel(); |
|
|
|
QnaDetailRSModel detailNode = new QnaDetailRSModel(); |
|
|
|