Browse Source

qna admin 검색조건 수정 및 작성자명 추가

pull/12/head
지대한 11 months ago
parent
commit
650256d8b6
  1. 2
      pav-server/src/main/java/com/palnet/biz/api/cns/qna/controller/CnsQnaController.java
  2. 8
      pav-server/src/main/java/com/palnet/biz/api/cns/qna/model/QnaBasModel.java
  3. 22
      pav-server/src/main/java/com/palnet/biz/api/cns/qna/model/QnaDetailRSModel.java
  4. 15
      pav-server/src/main/java/com/palnet/biz/api/cns/qna/model/QnaListAdminRQ.java
  5. 26
      pav-server/src/main/java/com/palnet/biz/api/cns/qna/service/CnsQnaService.java
  6. 33
      pav-server/src/main/java/com/palnet/biz/jpa/repository/cns/CnsQnaQueryRepository.java

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

@ -59,7 +59,7 @@ public class CnsQnaController {
@GetMapping @GetMapping
@Tag(name = "QNA", description = "QNA 관련 API") @Tag(name = "QNA", description = "QNA 관련 API")
@ApiOperation(value = "QnA 리스트 조회-관리자") @ApiOperation(value = "QnA 리스트 조회-관리자")
public ResponseEntity<? extends BasicResponse> selectQna(QnaSelectListRQ rq) { public ResponseEntity<? extends BasicResponse> selectQna(QnaListAdminRQ rq) {
List<QnaBasModel> result = new ArrayList<>(); List<QnaBasModel> result = new ArrayList<>();
try { try {

8
pav-server/src/main/java/com/palnet/biz/api/cns/qna/model/QnaBasModel.java

@ -25,16 +25,18 @@ public class QnaBasModel {
private String anserStatus; private String anserStatus;
private int fileGroupNo; private Integer fileGroupNo;
private String expsrYn; private String expsrYn;
private String delYn; // private String delYn;
private int viewCnt; private int viewCnt;
private String createUserNm;
private String createUserId; private String createUserId;
private Instant createDt; private Instant createDt;
private String updateUserId; private String updateUserId;

22
pav-server/src/main/java/com/palnet/biz/api/cns/qna/model/QnaDetailRSModel.java

@ -1,13 +1,11 @@
package com.palnet.biz.api.cns.qna.model; package com.palnet.biz.api.cns.qna.model;
import java.time.Instant;
import java.util.List;
import com.palnet.biz.api.comn.file.model.ComnFileModel; import com.palnet.biz.api.comn.file.model.ComnFileModel;
import com.palnet.biz.jpa.entity.ComFileBas;
import lombok.Data; import lombok.Data;
import java.time.Instant;
import java.util.List;
@Data @Data
public class QnaDetailRSModel { public class QnaDetailRSModel {
@ -21,8 +19,22 @@ public class QnaDetailRSModel {
private String content; private String content;
private String anserContent;
private String anserUserNm;
private Instant anserProcDt;
private String anserStatus;
private Integer viewCnt; private Integer viewCnt;
private Integer fileGroupNo;
private String expsrYn;
private String createUserNm;
private String createUserId; private String createUserId;
private Instant createDt; private Instant createDt;

15
pav-server/src/main/java/com/palnet/biz/api/cns/qna/model/QnaListAdminRQ.java

@ -0,0 +1,15 @@
package com.palnet.biz.api.cns.qna.model;
import lombok.Data;
@Data
public class QnaListAdminRQ {
// 문의유형
private String category;
// 답변상태
private String anserStatus;
// 작성자
private String createUserNm;
}

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

@ -1,12 +1,18 @@
package com.palnet.biz.api.cns.qna.service; package com.palnet.biz.api.cns.qna.service;
import com.palnet.biz.api.acnt.jwt.model.JwtUserModel;
import com.palnet.biz.api.acnt.jwt.utils.JwtTokenUtil; import com.palnet.biz.api.acnt.jwt.utils.JwtTokenUtil;
import com.palnet.biz.api.cns.qna.model.*; import com.palnet.biz.api.cns.qna.model.*;
import com.palnet.biz.api.comn.file.model.ComnFileModel; import com.palnet.biz.api.comn.file.model.ComnFileModel;
import com.palnet.biz.api.comn.file.service.ComnFileService; import com.palnet.biz.api.comn.file.service.ComnFileService;
import com.palnet.biz.jpa.entity.CnsQnaBas; import com.palnet.biz.jpa.entity.CnsQnaBas;
import com.palnet.biz.jpa.entity.PtyCstmrBas;
import com.palnet.biz.jpa.entity.PtyCstmrDtl;
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.pty.PtyCstmrBasRepository;
import com.palnet.biz.jpa.repository.pty.PtyCstmrDtlRepository;
import com.palnet.comn.code.ErrorCode; import com.palnet.comn.code.ErrorCode;
import com.palnet.comn.exception.CustomException; import com.palnet.comn.exception.CustomException;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -17,6 +23,7 @@ import org.springframework.web.multipart.MultipartFile;
import javax.transaction.Transactional; import javax.transaction.Transactional;
import java.time.Instant; import java.time.Instant;
import java.util.List; import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service @Service
@ -27,6 +34,9 @@ public class CnsQnaService {
private final CnsQnaBasRepository cnsQnaBasRepository; private final CnsQnaBasRepository cnsQnaBasRepository;
private final CnsQnaQueryRepository cnsQnaQueryRepository; private final CnsQnaQueryRepository cnsQnaQueryRepository;
private final PtyCstmrBasRepository ptyCstmrBasRepository;
private final PtyCstmrDtlRepository ptyCstmrDtlRepository;
private final ComFileBasRepository comFileBasRepository;
private final ComnFileService comnFileService; private final ComnFileService comnFileService;
@ -103,12 +113,18 @@ public class CnsQnaService {
cnsQnaBasRepository.pulsViewCount(qnaSno); cnsQnaBasRepository.pulsViewCount(qnaSno);
CnsQnaBas qnaBasModel = cnsQnaBasRepository.findFirstByQnaSnoAndTargetSnoAndDelYnAndExpsrYn(qnaSno, 0, "N", "Y"); CnsQnaBas entity = cnsQnaBasRepository.findFirstByQnaSnoAndTargetSnoAndDelYnAndExpsrYn(qnaSno, 0, "N", "Y");
List<ComnFileModel> files = null; List<ComnFileModel> files = null;
if (qnaBasModel.getFileGroupNo() != null && qnaBasModel.getFileGroupNo() != 0) if (entity.getFileGroupNo() != null && entity.getFileGroupNo() != 0)
files = comnFileService.getNormalFileListByGroupNo(qnaBasModel.getFileGroupNo()); files = comnFileService.getNormalFileListByGroupNo(entity.getFileGroupNo());
QnaDetailRSModel model = CnsQnaMapper.MAPPER.toModel(entity);
JwtUserModel user = ptyCstmrBasRepository.findByUserId(entity.getCreateUserId()).orElse(null);
if (user != null) {
PtyCstmrDtl ptyCstmrDtl = ptyCstmrDtlRepository.findById(user.getCstmrSno()).orElse(null);
if (ptyCstmrDtl != null) model.setCreateUserNm(ptyCstmrDtl.getMemberName());
}
QnaDetailRSModel model = CnsQnaMapper.MAPPER.toModel(qnaBasModel);
model.setFiles(files); model.setFiles(files);
@ -121,7 +137,7 @@ public class CnsQnaService {
* @param rq * @param rq
* @return * @return
*/ */
public List<QnaBasModel> selectQnaList(QnaSelectListRQ rq) { public List<QnaBasModel> selectQnaList(QnaListAdminRQ rq) {
return cnsQnaQueryRepository.getQnaList(rq); return cnsQnaQueryRepository.getQnaList(rq);
} }

33
pav-server/src/main/java/com/palnet/biz/jpa/repository/cns/CnsQnaQueryRepository.java

@ -2,7 +2,10 @@ package com.palnet.biz.jpa.repository.cns;
import java.util.List; import java.util.List;
import com.palnet.biz.api.cns.qna.model.QnaListAdminRQ;
import com.palnet.biz.api.cns.qna.model.QnaSelectListRQ; import com.palnet.biz.api.cns.qna.model.QnaSelectListRQ;
import com.palnet.biz.jpa.entity.QPtyCstmrBas;
import com.palnet.biz.jpa.entity.QPtyCstmrDtl;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import com.palnet.biz.api.cns.qna.model.QnaBasModel; import com.palnet.biz.api.cns.qna.model.QnaBasModel;
@ -27,8 +30,10 @@ public class CnsQnaQueryRepository {
* @param rq * @param rq
* @return * @return
*/ */
public List<QnaBasModel> getQnaList(QnaSelectListRQ rq) { public List<QnaBasModel> getQnaList(QnaListAdminRQ rq) {
QCnsQnaBas bas = QCnsQnaBas.cnsQnaBas; QCnsQnaBas bas = QCnsQnaBas.cnsQnaBas;
QPtyCstmrBas cBas = QPtyCstmrBas.ptyCstmrBas;
QPtyCstmrDtl cDtl = QPtyCstmrDtl.ptyCstmrDtl;
BooleanBuilder builder = new BooleanBuilder(); BooleanBuilder builder = new BooleanBuilder();
builder.and(bas.delYn.eq("N")); builder.and(bas.delYn.eq("N"));
@ -40,10 +45,16 @@ public class CnsQnaQueryRepository {
builder.and(bas.category.eq(rq.getCategory())); builder.and(bas.category.eq(rq.getCategory()));
} }
if (rq.getWord() != null) { // if (rq.getWord() != null) {
if ("TITLE".equals(rq.getSearchType())) builder.and(bas.title.contains(rq.getWord())); // if ("TITLE".equals(rq.getSearchType())) builder.and(bas.title.contains(rq.getWord()));
else if ("CONTENT".equals(rq.getSearchType())) builder.and(bas.content.contains(rq.getWord())); // else if ("CONTENT".equals(rq.getSearchType())) builder.and(bas.content.contains(rq.getWord()));
else builder.and(bas.title.contains(rq.getWord()).or(bas.content.contains(rq.getWord()))); // else builder.and(bas.title.contains(rq.getWord()).or(bas.content.contains(rq.getWord())));
// }
if (rq.getCreateUserNm() != null) {
builder.and(cDtl.memberName.contains(rq.getCreateUserNm()));
}
if (rq.getAnserStatus() != null) {
builder.and(bas.anserStatus.eq(rq.getAnserStatus()));
} }
} }
@ -61,9 +72,12 @@ public class CnsQnaQueryRepository {
bas.createUserId, bas.createUserId,
bas.createDt, bas.createDt,
bas.updateUserId, bas.updateUserId,
bas.updateDt bas.updateDt,
cDtl.memberName.as("createUserNm")
)) ))
.from(bas) .from(bas)
.leftJoin(cBas).on(bas.createUserId.eq(cBas.userId))
.leftJoin(cDtl).on(cBas.cstmrSno.eq(cDtl.cstmrSno))
.where(builder) .where(builder)
.orderBy(bas.createDt.desc()) .orderBy(bas.createDt.desc())
.fetch(); .fetch();
@ -73,6 +87,8 @@ public class CnsQnaQueryRepository {
public List<QnaBasModel> getQnaListForUser(QnaSelectListRQ rq, String userId) { public List<QnaBasModel> getQnaListForUser(QnaSelectListRQ rq, String userId) {
QCnsQnaBas bas = QCnsQnaBas.cnsQnaBas; QCnsQnaBas bas = QCnsQnaBas.cnsQnaBas;
QPtyCstmrBas cBas = QPtyCstmrBas.ptyCstmrBas;
QPtyCstmrDtl cDtl = QPtyCstmrDtl.ptyCstmrDtl;
BooleanBuilder builder = new BooleanBuilder(); BooleanBuilder builder = new BooleanBuilder();
builder.and(bas.delYn.eq("N")); builder.and(bas.delYn.eq("N"));
@ -106,9 +122,12 @@ public class CnsQnaQueryRepository {
bas.createUserId, bas.createUserId,
bas.createDt, bas.createDt,
bas.updateUserId, bas.updateUserId,
bas.updateDt bas.updateDt,
cDtl.memberName.as("createUserNm")
)) ))
.from(bas) .from(bas)
.leftJoin(cBas).on(bas.createUserId.eq(cBas.userId))
.leftJoin(cDtl).on(cBas.cstmrSno.eq(cDtl.cstmrSno))
.where(builder) .where(builder)
.orderBy(bas.createDt.desc()) .orderBy(bas.createDt.desc())
.fetch(); .fetch();

Loading…
Cancel
Save