lkd9125
11 months ago
6 changed files with 188 additions and 25 deletions
@ -1,29 +1,45 @@
|
||||
package com.palnet.biz.api.cns.faq.controller; |
||||
|
||||
import org.springframework.http.ResponseEntity; |
||||
import java.util.List; |
||||
|
||||
import org.springframework.web.bind.annotation.GetMapping; |
||||
import org.springframework.web.bind.annotation.PostMapping; |
||||
import org.springframework.web.bind.annotation.RequestBody; |
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
import com.palnet.biz.api.cns.qna.model.QnaBasModel; |
||||
import com.palnet.biz.api.cns.qna.model.QnaInsertRQModel; |
||||
import com.palnet.biz.api.cns.qna.service.CnsQnaService; |
||||
import com.palnet.biz.api.cns.faq.model.FaqListRQModel; |
||||
import com.palnet.biz.api.cns.faq.model.FaqListRSModel; |
||||
import com.palnet.biz.api.cns.faq.service.CnsFaqService; |
||||
|
||||
import io.swagger.annotations.ApiOperation; |
||||
import io.swagger.v3.oas.annotations.tags.Tag; |
||||
import io.swagger.v3.oas.annotations.parameters.RequestBody; |
||||
import lombok.RequiredArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
|
||||
@Slf4j |
||||
@RestController |
||||
@Slf4j |
||||
@RequiredArgsConstructor |
||||
@Tag(name = "QNA", description = "QNA 관련 API") |
||||
@RequestMapping(value = "/api/bas/cns") |
||||
public class CnsFaqController { |
||||
|
||||
private final CnsFaqService service; |
||||
|
||||
@PostMapping("/list") |
||||
public List<FaqListRSModel> getFaqList(@RequestBody FaqListRQModel model) { |
||||
|
||||
List<FaqListRSModel> result = null; |
||||
|
||||
result = service.getFaqList(model); |
||||
|
||||
return result; |
||||
} |
||||
|
||||
@GetMapping("/detail") |
||||
public FaqListRSModel getFaqDetail(int sno) { |
||||
|
||||
FaqListRSModel result = null; |
||||
|
||||
result = service.getFaqDetail(sno); |
||||
|
||||
return result; |
||||
} |
||||
} |
@ -1,8 +1,32 @@
|
||||
package com.palnet.biz.api.cns.faq.model; |
||||
|
||||
import java.time.Instant; |
||||
|
||||
import lombok.Data; |
||||
|
||||
@Data |
||||
public class FaqListRSModel { |
||||
|
||||
private int qnaSno; |
||||
|
||||
private String category; |
||||
|
||||
private String title; |
||||
|
||||
private String content; |
||||
|
||||
private int viewCnt; |
||||
|
||||
private String expsrYn; |
||||
|
||||
private String delYn; |
||||
|
||||
private String createUserId; |
||||
|
||||
private Instant createDt; |
||||
|
||||
private String updateUserId; |
||||
|
||||
private Instant updateDt; |
||||
|
||||
} |
@ -1,5 +1,102 @@
|
||||
package com.palnet.biz.jpa.repository.cns; |
||||
|
||||
import java.util.List; |
||||
|
||||
import org.springframework.stereotype.Repository; |
||||
|
||||
import com.palnet.biz.api.bas.flight.model.BasFlightPlanPilotModel; |
||||
import com.palnet.biz.api.cns.faq.model.FaqListRSModel; |
||||
import com.palnet.biz.jpa.entity.QCnsFaqBas; |
||||
import com.querydsl.core.BooleanBuilder; |
||||
import com.querydsl.core.types.Projections; |
||||
import com.querydsl.jpa.impl.JPAQueryFactory; |
||||
|
||||
import lombok.RequiredArgsConstructor; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
|
||||
@Slf4j |
||||
@Repository |
||||
@RequiredArgsConstructor |
||||
public class CnsFaqQueryRepository { |
||||
|
||||
private final JPAQueryFactory query; |
||||
|
||||
public List<FaqListRSModel> getFaqList(String category, String word) { |
||||
|
||||
QCnsFaqBas bas = QCnsFaqBas.cnsFaqBas; |
||||
|
||||
BooleanBuilder builder = new BooleanBuilder(); |
||||
builder.and(bas.delYn.eq("N")); |
||||
builder.and(bas.expsrYn.eq("Y")); |
||||
|
||||
if(category != null) { |
||||
builder.and(bas.category.eq(category)); |
||||
} |
||||
|
||||
if(word != null) { |
||||
builder.and(bas.title.contains(word)); |
||||
} |
||||
|
||||
List<FaqListRSModel> r = query |
||||
.select(Projections.bean( |
||||
FaqListRSModel.class, |
||||
bas.faqSno, |
||||
bas.category, |
||||
bas.title, |
||||
bas.content, |
||||
bas.viewCnt, |
||||
bas.expsrYn, |
||||
bas.delYn, |
||||
bas.createUserId, |
||||
bas.createDt, |
||||
bas.updateUserId, |
||||
bas.updateDt |
||||
)) |
||||
.from(bas) |
||||
.where(builder) |
||||
.fetch(); |
||||
|
||||
|
||||
return r; |
||||
} |
||||
|
||||
public FaqListRSModel getFaqDetail(int sno) { |
||||
|
||||
QCnsFaqBas bas = QCnsFaqBas.cnsFaqBas; |
||||
|
||||
BooleanBuilder builder = new BooleanBuilder(); |
||||
builder.and(bas.delYn.eq("N")); |
||||
builder.and(bas.expsrYn.eq("Y")); |
||||
|
||||
// if(category != null) {
|
||||
// builder.and(bas.category.eq(category));
|
||||
// }
|
||||
//
|
||||
// if(word != null) {
|
||||
// builder.and(bas.title.contains(word));
|
||||
// }
|
||||
|
||||
FaqListRSModel r = query |
||||
.select(Projections.bean( |
||||
FaqListRSModel.class, |
||||
bas.faqSno, |
||||
bas.category, |
||||
bas.title, |
||||
bas.content, |
||||
bas.viewCnt, |
||||
bas.expsrYn, |
||||
bas.delYn, |
||||
bas.createUserId, |
||||
bas.createDt, |
||||
bas.updateUserId, |
||||
bas.updateDt |
||||
)) |
||||
.from(bas) |
||||
.where(builder) |
||||
.fetchOne(); |
||||
|
||||
|
||||
return r; |
||||
} |
||||
|
||||
} |
Loading…
Reference in new issue