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
@Tag(name = "QNA", description = "QNA 관련 API")
@ApiOperation(value = "QnA 리스트 조회-관리자")
public ResponseEntity<? extends BasicResponse> selectQna(QnaSelectListRQ rq) {
public ResponseEntity<? extends BasicResponse> selectQna(QnaListAdminRQ rq) {
List<QnaBasModel> result = new ArrayList<>();
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 int fileGroupNo;
private Integer fileGroupNo;
private String expsrYn;
private String delYn;
// private String delYn;
private int viewCnt;
private String createUserNm;
private String createUserId;
private Instant createDt;
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;
import java.time.Instant;
import java.util.List;
import com.palnet.biz.api.comn.file.model.ComnFileModel;
import com.palnet.biz.jpa.entity.ComFileBas;
import lombok.Data;
import java.time.Instant;
import java.util.List;
@Data
public class QnaDetailRSModel {
@ -21,8 +19,22 @@ public class QnaDetailRSModel {
private String content;
private String anserContent;
private String anserUserNm;
private Instant anserProcDt;
private String anserStatus;
private Integer viewCnt;
private Integer fileGroupNo;
private String expsrYn;
private String createUserNm;
private String createUserId;
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;
import com.palnet.biz.api.acnt.jwt.model.JwtUserModel;
import com.palnet.biz.api.acnt.jwt.utils.JwtTokenUtil;
import com.palnet.biz.api.cns.qna.model.*;
import com.palnet.biz.api.comn.file.model.ComnFileModel;
import com.palnet.biz.api.comn.file.service.ComnFileService;
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.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.exception.CustomException;
import lombok.RequiredArgsConstructor;
@ -17,6 +23,7 @@ import org.springframework.web.multipart.MultipartFile;
import javax.transaction.Transactional;
import java.time.Instant;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
@Service
@ -27,6 +34,9 @@ public class CnsQnaService {
private final CnsQnaBasRepository cnsQnaBasRepository;
private final CnsQnaQueryRepository cnsQnaQueryRepository;
private final PtyCstmrBasRepository ptyCstmrBasRepository;
private final PtyCstmrDtlRepository ptyCstmrDtlRepository;
private final ComFileBasRepository comFileBasRepository;
private final ComnFileService comnFileService;
@ -103,12 +113,18 @@ public class CnsQnaService {
cnsQnaBasRepository.pulsViewCount(qnaSno);
CnsQnaBas qnaBasModel = cnsQnaBasRepository.findFirstByQnaSnoAndTargetSnoAndDelYnAndExpsrYn(qnaSno, 0, "N", "Y");
CnsQnaBas entity = cnsQnaBasRepository.findFirstByQnaSnoAndTargetSnoAndDelYnAndExpsrYn(qnaSno, 0, "N", "Y");
List<ComnFileModel> files = null;
if (qnaBasModel.getFileGroupNo() != null && qnaBasModel.getFileGroupNo() != 0)
files = comnFileService.getNormalFileListByGroupNo(qnaBasModel.getFileGroupNo());
if (entity.getFileGroupNo() != null && entity.getFileGroupNo() != 0)
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);
@ -121,7 +137,7 @@ public class CnsQnaService {
* @param rq
* @return
*/
public List<QnaBasModel> selectQnaList(QnaSelectListRQ rq) {
public List<QnaBasModel> selectQnaList(QnaListAdminRQ 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 com.palnet.biz.api.cns.qna.model.QnaListAdminRQ;
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 com.palnet.biz.api.cns.qna.model.QnaBasModel;
@ -27,8 +30,10 @@ public class CnsQnaQueryRepository {
* @param rq
* @return
*/
public List<QnaBasModel> getQnaList(QnaSelectListRQ rq) {
public List<QnaBasModel> getQnaList(QnaListAdminRQ rq) {
QCnsQnaBas bas = QCnsQnaBas.cnsQnaBas;
QPtyCstmrBas cBas = QPtyCstmrBas.ptyCstmrBas;
QPtyCstmrDtl cDtl = QPtyCstmrDtl.ptyCstmrDtl;
BooleanBuilder builder = new BooleanBuilder();
builder.and(bas.delYn.eq("N"));
@ -40,10 +45,16 @@ public class CnsQnaQueryRepository {
builder.and(bas.category.eq(rq.getCategory()));
}
if (rq.getWord() != null) {
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 builder.and(bas.title.contains(rq.getWord()).or(bas.content.contains(rq.getWord())));
// if (rq.getWord() != null) {
// 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 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.createDt,
bas.updateUserId,
bas.updateDt
bas.updateDt,
cDtl.memberName.as("createUserNm")
))
.from(bas)
.leftJoin(cBas).on(bas.createUserId.eq(cBas.userId))
.leftJoin(cDtl).on(cBas.cstmrSno.eq(cDtl.cstmrSno))
.where(builder)
.orderBy(bas.createDt.desc())
.fetch();
@ -73,6 +87,8 @@ public class CnsQnaQueryRepository {
public List<QnaBasModel> getQnaListForUser(QnaSelectListRQ rq, String userId) {
QCnsQnaBas bas = QCnsQnaBas.cnsQnaBas;
QPtyCstmrBas cBas = QPtyCstmrBas.ptyCstmrBas;
QPtyCstmrDtl cDtl = QPtyCstmrDtl.ptyCstmrDtl;
BooleanBuilder builder = new BooleanBuilder();
builder.and(bas.delYn.eq("N"));
@ -106,9 +122,12 @@ public class CnsQnaQueryRepository {
bas.createUserId,
bas.createDt,
bas.updateUserId,
bas.updateDt
bas.updateDt,
cDtl.memberName.as("createUserNm")
))
.from(bas)
.leftJoin(cBas).on(bas.createUserId.eq(cBas.userId))
.leftJoin(cDtl).on(cBas.cstmrSno.eq(cDtl.cstmrSno))
.where(builder)
.orderBy(bas.createDt.desc())
.fetch();

Loading…
Cancel
Save