|
|
|
@ -7,7 +7,6 @@ import java.util.List;
|
|
|
|
|
import javax.transaction.Transactional; |
|
|
|
|
|
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
import org.springframework.web.bind.annotation.RequestBody; |
|
|
|
|
import org.springframework.web.multipart.MultipartFile; |
|
|
|
|
|
|
|
|
|
import com.palnet.biz.api.acnt.jwt.utils.JwtTokenUtil; |
|
|
|
@ -43,10 +42,46 @@ public class CnsQnaService {
|
|
|
|
|
private final JwtTokenUtil jwtTokenUtil; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Qna 삭제하기, file들도 모두 논리삭제함. |
|
|
|
|
* @param qnaSno |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
@Transactional |
|
|
|
|
public boolean deleteQna(int qnaSno){ |
|
|
|
|
|
|
|
|
|
CnsQnaBas entity = cnsQnaBasRepository.findFirstByQnaSnoAndTargetSno(qnaSno, 0); |
|
|
|
|
if(entity == null) throw new CustomException(ErrorCode.DATA_NOTFIND); |
|
|
|
|
|
|
|
|
|
boolean fileDelete = comnFileService.deleteFiles(entity.getFileGroupNo()); |
|
|
|
|
|
|
|
|
|
entity.setDelYn("Y"); |
|
|
|
|
|
|
|
|
|
List<CnsQnaBas> deleteList = new ArrayList<>(); |
|
|
|
|
deleteList.add(entity); |
|
|
|
|
|
|
|
|
|
int targetSno = qnaSno; |
|
|
|
|
|
|
|
|
|
// 대댓글 불러오기
|
|
|
|
|
while(true){ |
|
|
|
|
|
|
|
|
|
CnsQnaBas cnsQnaBas = cnsQnaBasRepository.findFirstByTargetSno(targetSno); |
|
|
|
|
if(cnsQnaBas == null) break; |
|
|
|
|
|
|
|
|
|
cnsQnaBas.setDelYn("Y"); |
|
|
|
|
|
|
|
|
|
deleteList.add(cnsQnaBas); |
|
|
|
|
|
|
|
|
|
targetSno = cnsQnaBas.getQnaSno(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
deleteList = cnsQnaBasRepository.saveAll(deleteList); |
|
|
|
|
|
|
|
|
|
return deleteList != null && fileDelete; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Qna 업데이트하기 |
|
|
|
|
* Qna 업데이트하기 TODO :: File 업데이트 기능 아직 구현안함 |
|
|
|
|
* @param qnaSno |
|
|
|
|
* @param rq |
|
|
|
|
* @return |
|
|
|
@ -54,7 +89,7 @@ public class CnsQnaService {
|
|
|
|
|
@Transactional |
|
|
|
|
public boolean updateQna(int qnaSno, QnaInsertRQModel rq){ |
|
|
|
|
|
|
|
|
|
CnsQnaBas entity = cnsQnaBasRepository.findById(qnaSno).orElse(null); |
|
|
|
|
CnsQnaBas entity = cnsQnaBasRepository.findFirstByQnaSnoAndTargetSno(qnaSno, 0); |
|
|
|
|
if(entity == null) throw new CustomException(ErrorCode.DATA_NOTFIND); |
|
|
|
|
|
|
|
|
|
if(rq.getCategory() != null) entity.setCategory(rq.getCategory()); |
|
|
|
@ -76,7 +111,7 @@ public class CnsQnaService {
|
|
|
|
|
|
|
|
|
|
cnsQnaBasRepository.pulsViewCount(qnaSno); |
|
|
|
|
|
|
|
|
|
QnaBasModel qnaBasModel = cnsQnaQueryRepository.getQnaDetail(qnaSno).get(0); |
|
|
|
|
CnsQnaBas qnaBasModel = cnsQnaBasRepository.findFirstByQnaSnoAndTargetSno(qnaSno, 0); |
|
|
|
|
List<ComFileBas> files = null; |
|
|
|
|
if(qnaBasModel.getFileGroupNo() != 0) files = comFileBasRepository.findByFileGroupNo(qnaBasModel.getFileGroupNo()); |
|
|
|
|
|
|
|
|
@ -92,12 +127,12 @@ public class CnsQnaService {
|
|
|
|
|
node.setUpdateUserId(qnaBasModel.getUpdateUserId()); |
|
|
|
|
node.setUpdateDt(qnaBasModel.getUpdateDt()); |
|
|
|
|
node.setFiles(files); |
|
|
|
|
|
|
|
|
|
int targetSno = qnaSno; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<QnaDetailRSModel> result = new ArrayList<>(); |
|
|
|
|
result.add(node); |
|
|
|
|
|
|
|
|
|
int targetSno = qnaSno; |
|
|
|
|
|
|
|
|
|
// 대댓글 불러오기
|
|
|
|
|
while(true){ |
|
|
|
|
|
|
|
|
|