Browse Source

Qna File 개별삭제 [파일 업데이트 기획이 없어 만듬]

pull/9/head
lkd9125(이경도) 11 months ago
parent
commit
58709feba3
  1. 13
      pav-server/src/main/java/com/palnet/biz/api/cns/qna/controller/CnsQnaController.java
  2. 27
      pav-server/src/main/java/com/palnet/biz/api/cns/qna/service/CnsQnaService.java
  3. 20
      pav-server/src/main/java/com/palnet/biz/api/comn/file/service/ComnFileService.java
  4. 2
      pav-server/src/main/java/com/palnet/biz/jpa/entity/CnsQnaBas.java
  5. 6
      pav-server/src/main/java/com/palnet/biz/jpa/repository/cns/CnsQnaBasRepository.java
  6. 4
      pav-server/src/main/java/com/palnet/biz/jpa/repository/com/ComFileBasRepository.java

13
pav-server/src/main/java/com/palnet/biz/api/cns/qna/controller/CnsQnaController.java

@ -83,11 +83,20 @@ public class CnsQnaController {
return ResponseEntity.ok().body(result);
}
/**
* Qna Files 개별삭제 TODO:: 파일 업데이트의 기획이 어떻게 되는지 모름
* @param qnaSno
* @param fileSno
* @return
*/
@GetMapping("/{qnaSno}/{fileSno}/delete")
public ResponseEntity<Object> deleteQnaFile(){
@Tag(name = "QNA", description = "QNA 관련 API")
@ApiOperation(value = "QnA 파일 개별삭제")
public ResponseEntity<Boolean> deleteQnaFile(@PathVariable int qnaSno, @PathVariable int fileSno){
log.warn("CnsQnaController - deleteQnaFile()");
boolean result = cnsQnaService.deleteQnaFile(fileSno);
return ResponseEntity.ok().body(null);
return ResponseEntity.ok().body(result);
}
}

27
pav-server/src/main/java/com/palnet/biz/api/cns/qna/service/CnsQnaService.java

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

20
pav-server/src/main/java/com/palnet/biz/api/comn/file/service/ComnFileService.java

@ -328,7 +328,7 @@ public class ComnFileService {
@Transactional
public boolean deleteFiles(int fileGroupNo){
List<ComFileBas> files = comFileBasRepository.findByFileGroupNo(fileGroupNo);
List<ComFileBas> files = comFileBasRepository.findByFileGroupNoAndDelYn(fileGroupNo, "N");
String userId = jwtTokenUtil.getUserIdByToken();
@ -345,4 +345,22 @@ public class ComnFileService {
return true;
}
@Transactional
public boolean deleteFile(int fileSno){
ComFileBas file = comFileBasRepository.findByFileSnoAndDelYn(fileSno, "N");
String userId = jwtTokenUtil.getUserIdByToken();
if (userId == null) userId = "NONE";
file.setDelYn("Y");
file.setDelUserId(userId);
file.setDelDt(Instant.now());
comFileBasRepository.save(file);
return true;
}
}

2
pav-server/src/main/java/com/palnet/biz/jpa/entity/CnsQnaBas.java

@ -34,7 +34,7 @@ public class CnsQnaBas implements Serializable {
private String content;
@Column(name="FILE_GROUP_NO")
private int fileGroupNo;
private Integer fileGroupNo;
@Column(name="EXPSR_YN")
private String expsrYn = "N";

6
pav-server/src/main/java/com/palnet/biz/jpa/repository/cns/CnsQnaBasRepository.java

@ -11,9 +11,11 @@ import com.palnet.biz.jpa.entity.CnsQnaBas;
@Repository
public interface CnsQnaBasRepository extends JpaRepository<CnsQnaBas, Integer>{
CnsQnaBas findFirstByTargetSno(int targetSno);
CnsQnaBas findFirstByTargetSnoAndDelYnAndExpsrYn(int targetSno, String delYn, String expsrYn);
CnsQnaBas findFirstByQnaSnoAndTargetSno(int qnaSno, int targetSno);
CnsQnaBas findByQnaSnoAndDelYnAndExpsrYn(int qnaSno, String delYn, String expsrYn);
CnsQnaBas findFirstByQnaSnoAndTargetSnoAndDelYnAndExpsrYn(int qnaSno, int targetSno, String delYn, String expsrYn);
@Modifying
@Query("UPDATE CnsQnaBas q SET q.viewCnt = q.viewCnt + 1 WHERE q.qnaSno = :qnaSno")

4
pav-server/src/main/java/com/palnet/biz/jpa/repository/com/ComFileBasRepository.java

@ -14,6 +14,8 @@ public interface ComFileBasRepository extends JpaRepository<ComFileBas, Integer>
ComFileBas findFirstByOrderByFileGroupNoDesc();
List<ComFileBas> findByFileGroupNo(int fileGroupNo);
List<ComFileBas> findByFileGroupNoAndDelYn(int fileGroupNo, String delYn);
ComFileBas findByFileSnoAndDelYn(int fileSno, String delYn);
}

Loading…
Cancel
Save