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") @Tag(name = "QNA", description = "QNA 관련 API")
@ApiOperation(value = "QnA 등록[답변추가]") @ApiOperation(value = "QnA 등록[답변추가]")
public ResponseEntity<QnaRSModel> insertQna(QnaInsertRQModel rq){ public ResponseEntity<QnaRSModel> insertQna(QnaInsertRQModel rq){
log.warn("CnsFaqController - insertQna()");
boolean success = cnsQnaService.insertQna(rq); boolean success = cnsQnaService.insertQna(rq);
@ -48,8 +47,7 @@ public class CnsQnaController {
@GetMapping("/select") @GetMapping("/select")
@Tag(name = "QNA", description = "QNA 관련 API") @Tag(name = "QNA", description = "QNA 관련 API")
@ApiOperation(value = "QnA 리스트 조회") @ApiOperation(value = "QnA 리스트 조회")
public ResponseEntity<List<QnaBasModel>> selectQna(QnaSelectListRQ rq){ public ResponseEntity<List<QnaBasModel>> selectQna(QnaSelectListRQ rq){
log.warn("CnsFaqController - selectQna()");
List<QnaBasModel> result = cnsQnaService.selectQnaList(rq); List<QnaBasModel> result = cnsQnaService.selectQnaList(rq);
@ -58,9 +56,7 @@ public class CnsQnaController {
@GetMapping("/{qnaSno}/detail") @GetMapping("/{qnaSno}/detail")
public ResponseEntity<Object> detailQna(@PathVariable int qnaSno){ public ResponseEntity<List<QnaDetailRSModel>> detailQna(@PathVariable int qnaSno){
log.warn("CnsFaqController - selectQna()");
log.warn("rq -> {}", qnaSno);
List<QnaDetailRSModel> reulst = cnsQnaService.getQnaDetail(qnaSno); List<QnaDetailRSModel> reulst = cnsQnaService.getQnaDetail(qnaSno);
@ -68,12 +64,13 @@ public class CnsQnaController {
} }
@PostMapping("/{qnaSno}/update") @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("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") @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 @Data
public class QnaInsertRQModel { public class QnaInsertRQModel {
private Integer qnaSno;
private Integer targetSno; // 상위 Qna 번호 private Integer targetSno; // 상위 Qna 번호
private String category; 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 javax.transaction.Transactional;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import com.palnet.biz.api.acnt.jwt.utils.JwtTokenUtil; 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.CnsQnaBasRepository;
import com.palnet.biz.jpa.repository.cns.CnsQnaQueryRepository; import com.palnet.biz.jpa.repository.cns.CnsQnaQueryRepository;
import com.palnet.biz.jpa.repository.com.ComFileBasRepository; 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.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -40,13 +43,39 @@ public class CnsQnaService {
private final JwtTokenUtil jwtTokenUtil; 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 상세불러오기 * Qna 상세불러오기
* @param qnaSno * @param qnaSno
* @return * @return
*/ */
@Transactional // 조회수 증가하기떄문
public List<QnaDetailRSModel> getQnaDetail(int qnaSno){ public List<QnaDetailRSModel> getQnaDetail(int qnaSno){
cnsQnaBasRepository.pulsViewCount(qnaSno);
QnaBasModel qnaBasModel = cnsQnaQueryRepository.getQnaDetail(qnaSno).get(0); QnaBasModel qnaBasModel = cnsQnaQueryRepository.getQnaDetail(qnaSno).get(0);
List<ComFileBas> files = null; List<ComFileBas> files = null;
if(qnaBasModel.getFileGroupNo() != 0) files = comFileBasRepository.findByFileGroupNo(qnaBasModel.getFileGroupNo()); if(qnaBasModel.getFileGroupNo() != 0) files = comFileBasRepository.findByFileGroupNo(qnaBasModel.getFileGroupNo());
@ -89,7 +118,7 @@ public class CnsQnaService {
result.add(detailNode); result.add(detailNode);
targetSno = cnsQnaBas.getQnaSno(); targetSno = cnsQnaBas.getQnaSno();
} }
return result; 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; 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.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 org.springframework.stereotype.Repository;
import com.palnet.biz.jpa.entity.CnsQnaBas; 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>{ public interface CnsQnaBasRepository extends JpaRepository<CnsQnaBas, Integer>{
CnsQnaBas findFirstByTargetSno(int targetSno); 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