Browse Source

Qna 업데이트 기능 추가 / 파일 업데이트 제외

pull/9/head
lkd9125 11 months ago
parent
commit
9736eab347
  1. 15
      pav-server/src/main/java/com/palnet/biz/api/cns/qna/controller/CnsQnaController.java
  2. 2
      pav-server/src/main/java/com/palnet/biz/api/cns/qna/model/QnaInsertRQModel.java
  3. 31
      pav-server/src/main/java/com/palnet/biz/api/cns/qna/service/CnsQnaService.java
  4. 11
      pav-server/src/main/java/com/palnet/biz/jpa/repository/cns/CnsQnaBasRepository.java

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

@ -36,7 +36,6 @@ public class CnsQnaController {
@Tag(name = "QNA", description = "QNA 관련 API")
@ApiOperation(value = "QnA 등록[답변추가]")
public ResponseEntity<QnaRSModel> insertQna(QnaInsertRQModel rq){
log.warn("CnsFaqController - insertQna()");
boolean success = cnsQnaService.insertQna(rq);
@ -48,8 +47,7 @@ public class CnsQnaController {
@GetMapping("/select")
@Tag(name = "QNA", description = "QNA 관련 API")
@ApiOperation(value = "QnA 리스트 조회")
public ResponseEntity<List<QnaBasModel>> selectQna(QnaSelectListRQ rq){
log.warn("CnsFaqController - selectQna()");
public ResponseEntity<List<QnaBasModel>> selectQna(QnaSelectListRQ rq){
List<QnaBasModel> result = cnsQnaService.selectQnaList(rq);
@ -58,9 +56,7 @@ public class CnsQnaController {
@GetMapping("/{qnaSno}/detail")
public ResponseEntity<Object> detailQna(@PathVariable int qnaSno){
log.warn("CnsFaqController - selectQna()");
log.warn("rq -> {}", qnaSno);
public ResponseEntity<List<QnaDetailRSModel>> detailQna(@PathVariable int qnaSno){
List<QnaDetailRSModel> reulst = cnsQnaService.getQnaDetail(qnaSno);
@ -68,12 +64,13 @@ public class CnsQnaController {
}
@PostMapping("/{qnaSno}/update")
public ResponseEntity<Object> updateQna(@RequestBody QnaInsertRQModel rq){
public ResponseEntity<Object> updateQna(@PathVariable int qnaSno,@RequestBody QnaInsertRQModel rq){
log.warn("CnsFaqController - updateQna()");
log.warn("rq -> {}", rq);
log.warn("qnaSno -> {} rq -> {}", qnaSno, rq);
boolean result = cnsQnaService.updateQna(qnaSno, rq);
return ResponseEntity.ok().body(null);
return ResponseEntity.ok().body(result);
}
@GetMapping("/{qnaSno}/delete")

2
pav-server/src/main/java/com/palnet/biz/api/cns/qna/model/QnaInsertRQModel.java

@ -9,6 +9,8 @@ import lombok.Data;
@Data
public class QnaInsertRQModel {
private Integer qnaSno;
private Integer targetSno; // 상위 Qna 번호
private String category;

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

@ -7,6 +7,7 @@ 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;
@ -20,6 +21,8 @@ import com.palnet.biz.jpa.entity.ComFileBas;
import com.palnet.biz.jpa.repository.cns.CnsQnaBasRepository;
import com.palnet.biz.jpa.repository.cns.CnsQnaQueryRepository;
import com.palnet.biz.jpa.repository.com.ComFileBasRepository;
import com.palnet.comn.code.ErrorCode;
import com.palnet.comn.exception.CustomException;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -40,13 +43,39 @@ public class CnsQnaService {
private final JwtTokenUtil jwtTokenUtil;
/**
* Qna 업데이트하기
* @param qnaSno
* @param rq
* @return
*/
@Transactional
public boolean updateQna(int qnaSno, QnaInsertRQModel rq){
CnsQnaBas entity = cnsQnaBasRepository.findById(qnaSno).orElse(null);
if(entity == null) throw new CustomException(ErrorCode.DATA_NOTFIND);
if(rq.getCategory() != null) entity.setCategory(rq.getCategory());
if(rq.getContent() != null) entity.setContent(rq.getContent());
if(rq.getTitle() != null) entity.setTitle(rq.getTitle());
cnsQnaBasRepository.save(entity);
return true;
}
/**
* Qna 상세불러오기
* @param qnaSno
* @return
*/
@Transactional // 조회수 증가하기떄문
public List<QnaDetailRSModel> getQnaDetail(int qnaSno){
cnsQnaBasRepository.pulsViewCount(qnaSno);
QnaBasModel qnaBasModel = cnsQnaQueryRepository.getQnaDetail(qnaSno).get(0);
List<ComFileBas> files = null;
if(qnaBasModel.getFileGroupNo() != 0) files = comFileBasRepository.findByFileGroupNo(qnaBasModel.getFileGroupNo());
@ -89,7 +118,7 @@ public class CnsQnaService {
result.add(detailNode);
targetSno = cnsQnaBas.getQnaSno();
}
}
return result;
}

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

@ -1,10 +1,9 @@
package com.palnet.biz.jpa.repository.cns;
import java.util.List;
import javax.persistence.Id;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import com.palnet.biz.jpa.entity.CnsQnaBas;
@ -13,4 +12,8 @@ import com.palnet.biz.jpa.entity.CnsQnaBas;
public interface CnsQnaBasRepository extends JpaRepository<CnsQnaBas, Integer>{
CnsQnaBas findFirstByTargetSno(int targetSno);
@Modifying
@Query("UPDATE CnsQnaBas q SET q.viewCnt = q.viewCnt + 1 WHERE q.qnaSno = :qnaSno")
void pulsViewCount(@Param("qnaSno")int qnaSno);
}

Loading…
Cancel
Save