diff --git a/src/main/java/go/kr/project/biz/minwon/init/dto/SampleDto.java b/src/main/java/go/kr/project/biz/minwon/init/dto/SampleDto.java index 95075f6..31bd082 100644 --- a/src/main/java/go/kr/project/biz/minwon/init/dto/SampleDto.java +++ b/src/main/java/go/kr/project/biz/minwon/init/dto/SampleDto.java @@ -3,7 +3,8 @@ package go.kr.project.biz.minwon.init.dto; import lombok.Getter; import lombok.Setter; -public class SampleDto { +public class +SampleDto { // 요즘 트렌드에 맞춰 이너클레스를 사용한다. // Request(파라미터를 받을 형식 객체) 와 Response(응답해줄 형식 객체)로 나눠서 관리한다. diff --git a/src/main/java/go/kr/project/biz/minwon/wait/controller/MinwonWaitController.java b/src/main/java/go/kr/project/biz/minwon/wait/controller/MinwonWaitController.java new file mode 100644 index 0000000..2566647 --- /dev/null +++ b/src/main/java/go/kr/project/biz/minwon/wait/controller/MinwonWaitController.java @@ -0,0 +1,50 @@ +package go.kr.project.biz.minwon.wait.controller; + + +import egovframework.constant.TilesConstants; +import go.kr.project.biz.minwon.wait.dto.MinwonWaitDto; +import go.kr.project.biz.minwon.wait.service.MinwonWaitService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +import java.util.List; + +@Controller +@Slf4j +@RequiredArgsConstructor + +public class MinwonWaitController { + + private final MinwonWaitService minwonWaitService; + + /** + * 민원접수 대기자료 목록 페이지 + * @return 뷰 경로 + */ + @GetMapping("/minwon/wait/wait.do") + @Operation(summary = "민원접수 대기자료", description="민원접수 대기자료 목록 페이지를 조회합니다.") + @ApiResponses({ + @ApiResponse(responseCode = "200", description = "조회 성공") + }) + public String minwonWaitView(){ + + return "biz/minwon/wait/wait" + TilesConstants.BASE; + } + + @PostMapping("/minwon/wait/minwonwait-myBatis.ajax") + public ResponseEntity minwonwaitAjaxMybatis(@RequestBody MinwonWaitDto.Request.Search waitDto, String searchKeyword) { + + List result = minwonWaitService.findminwonwaitMybatis(waitDto); + + return ResponseEntity.ok(result); + } + +} diff --git a/src/main/java/go/kr/project/biz/minwon/wait/dto/MinwonWaitDto.java b/src/main/java/go/kr/project/biz/minwon/wait/dto/MinwonWaitDto.java new file mode 100644 index 0000000..09c3076 --- /dev/null +++ b/src/main/java/go/kr/project/biz/minwon/wait/dto/MinwonWaitDto.java @@ -0,0 +1,35 @@ +package go.kr.project.biz.minwon.wait.dto; + + +import lombok.Getter; +import lombok.Setter; + +public class MinwonWaitDto { + public static class Request { + + @Getter + @Setter + public static class Search { + private String mmRegse; + } + + } + + public static class Response { + @Getter + @Setter + public static class cpMainAnswerCancel{ + private String mmCode; + private String mmDlgb; + private String asBbsNo; + private String mmSgnm; + private String mmSgtel; + private String mmDate; + private String asLimitDt; + private String mmIndt; + private String asJsno; + private String mmCarno; + private String ccCause; + } + } +} diff --git a/src/main/java/go/kr/project/biz/minwon/wait/mapper/MinwonWaitMapper.java b/src/main/java/go/kr/project/biz/minwon/wait/mapper/MinwonWaitMapper.java new file mode 100644 index 0000000..6c12abc --- /dev/null +++ b/src/main/java/go/kr/project/biz/minwon/wait/mapper/MinwonWaitMapper.java @@ -0,0 +1,13 @@ +package go.kr.project.biz.minwon.wait.mapper; + +import go.kr.project.biz.minwon.wait.dto.MinwonWaitDto; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface MinwonWaitMapper { + List findminwonwaitMybatis(MinwonWaitDto.Request.Search waitDto); + + List findminwonwaitSearchMybatis(MinwonWaitDto.Request.Search waitDto, String searchKeyword); +} diff --git a/src/main/java/go/kr/project/biz/minwon/wait/repository/MinwonWaitQueryDsRepository.java b/src/main/java/go/kr/project/biz/minwon/wait/repository/MinwonWaitQueryDsRepository.java new file mode 100644 index 0000000..eeb8fbe --- /dev/null +++ b/src/main/java/go/kr/project/biz/minwon/wait/repository/MinwonWaitQueryDsRepository.java @@ -0,0 +1,178 @@ +//package go.kr.project.biz.minwon.wait.repository; +// +//import com.querydsl.core.types.Projections; +//import com.querydsl.jpa.impl.JPAQueryFactory; +//import lombok.RequiredArgsConstructor; +//import org.springframework.stereotype.Repository; +// +//import java.util.List; +// +//import static go.kr.project.domain.entity.QCpAnswer.cpAnswer; +//import static go.kr.project.domain.entity.QCpMain.cpMain; +// +//@Repository +//@RequiredArgsConstructor +//public class MinwonWaitQueryDsRepository { +// +// private final JPAQueryFactory queryFactory; +// +// public List findWaitAnswers(MinwonWaitDto.Request.SearchMinwonWaitList dto) { +// +// List result = queryFactory +// .select( +// Projections.fields( +// MinwonWaitDto.Response.WaitAnswers.class, +// cpAnswer.asJsdate, +// cpAnswer.asJsno, +// cpAnswer.asJsnoM, +// cpAnswer.asState, +// cpAnswer.asPostCd, +// cpAnswer.asLimitDt, +// cpAnswer.asPostDt, +// cpMain.mmCarno +// ) +// ) +// .from(cpMain) +// .innerJoin(cpAnswer).on(cpMain.mmCode.eq(cpAnswer.asMmcode)) +// .where( +// //cpAnswer.asState.eq("01") +// cpMain.mmState.eq("01"), +// cpAnswer.asState.eq("0") +// ) +// .fetch(); +// return result; +// } +// +// public List findWaitAnswersSearch(MinwonWaitDto.Request.SearchMinwonWaitList dto, String searchCondition, String searchKeyword, String searchStartDt, String searchEndDt) { +// +// if (searchCondition.equals("jsdate")) { +// List result = queryFactory +// .select( +// Projections.fields( +// MinwonWaitDto.Response.WaitAnswers.class, +// cpAnswer.asJsdate, +// cpAnswer.asJsno, +// cpAnswer.asJsnoM, +// cpAnswer.asState, +// cpAnswer.asPostCd, +// cpAnswer.asLimitDt, +// cpAnswer.asPostDt, +// cpMain.mmCarno +// ) +// ) +// .from(cpMain) +// .innerJoin(cpAnswer).on(cpMain.mmCode.eq(cpAnswer.asMmcode)) +// .where( +// cpMain.mmState.eq("01"), +//// cpAnswer.asState.eq("0"), +// cpAnswer.asJsdate.between(searchStartDt, searchEndDt) +// ) +// .fetch(); +// return result; +// +// } else if (searchCondition.equals("jsno")) { +// List result = queryFactory +// .select( +// Projections.fields( +// MinwonWaitDto.Response.WaitAnswers.class, +// cpAnswer.asJsdate, +// cpAnswer.asJsno, +// cpAnswer.asJsnoM, +// cpAnswer.asState, +// cpAnswer.asPostCd, +// cpAnswer.asLimitDt, +// cpAnswer.asPostDt, +// cpMain.mmCarno +// ) +// ) +// .from(cpMain) +// .innerJoin(cpAnswer).on(cpMain.mmCode.eq(cpAnswer.asMmcode)) +// .where( +// cpMain.mmState.eq("01"), +//// cpAnswer.asState.eq("0"), +// cpAnswer.asJsno.like("%" + searchKeyword + "%") +// ) +// .fetch(); +// return result; +// +// } else if (searchCondition.equals("iimitdt")) { +// List result = queryFactory +// .select( +// Projections.fields( +// MinwonWaitDto.Response.WaitAnswers.class, +// cpAnswer.asJsdate, +// cpAnswer.asJsno, +// cpAnswer.asJsnoM, +// cpAnswer.asState, +// cpAnswer.asPostCd, +// cpAnswer.asLimitDt, +// cpAnswer.asPostDt, +// cpMain.mmCarno +// ) +// ) +// .from(cpMain) +// .innerJoin(cpAnswer).on(cpMain.mmCode.eq(cpAnswer.asMmcode)) +// .where( +// cpMain.mmState.eq("01"), +//// cpAnswer.asState.eq("0"), +// cpAnswer.asLimitDt.between(searchStartDt, searchEndDt) +// ) +// .fetch(); +// return result; +// +// } else { +// List result = queryFactory +// .select( +// Projections.fields( +// MinwonWaitDto.Response.WaitAnswers.class, +// cpAnswer.asJsdate, +// cpAnswer.asJsno, +// cpAnswer.asJsnoM, +// cpAnswer.asState, +// cpAnswer.asPostCd, +// cpAnswer.asLimitDt, +// cpAnswer.asPostDt, +// cpMain.mmCarno +// ) +// ) +// .from(cpMain) +// .innerJoin(cpAnswer).on(cpMain.mmCode.eq(cpAnswer.asMmcode)) +// .where( +// cpMain.mmState.eq("01"), +//// cpAnswer.asState.eq("0") +// cpAnswer.asJsno.like("%" +searchKeyword + "%") +// ) +// .fetch(); +// return result; +// } +// +// +///* +// List result = queryFactory +// .select( +// Projections.fields( +// MinwonWaitDto.Response.WaitAnswers.class, +// cpAnswer.asJsdate, +// cpAnswer.asJsno, +// cpAnswer.asJsnoM, +// cpAnswer.asState, +// cpAnswer.asPostCd, +// cpAnswer.asLimitDt, +// cpAnswer.asPostDt, +// cpMain.mmCarno +// ) +// ) +// .from(cpMain) +// .innerJoin(cpAnswer).on(cpMain.mmCode.eq(cpAnswer.asMmcode)) +// .where( +// cpMain.mmState.eq("01"), +//// cpAnswer.asState.eq("0"), +// cpAnswer.asJsno.like("%" + searchKeyword + "%") +// ) +// .fetch(); +// return result; +// +// */ +// +// } +//} diff --git a/src/main/java/go/kr/project/biz/minwon/wait/service/MinwonWaitService.java b/src/main/java/go/kr/project/biz/minwon/wait/service/MinwonWaitService.java new file mode 100644 index 0000000..39b040c --- /dev/null +++ b/src/main/java/go/kr/project/biz/minwon/wait/service/MinwonWaitService.java @@ -0,0 +1,13 @@ +package go.kr.project.biz.minwon.wait.service; + + +import go.kr.project.biz.minwon.wait.dto.MinwonWaitDto; + +import java.util.List; + +public interface MinwonWaitService { + + List findminwonwaitMybatis(MinwonWaitDto.Request.Search waitDto); + + List findminwonwaitSearchMybatis(MinwonWaitDto.Request.Search waitDto, String searchKeyword); +} diff --git a/src/main/java/go/kr/project/biz/minwon/wait/service/impl/MinwonWaitServiceImpl.java b/src/main/java/go/kr/project/biz/minwon/wait/service/impl/MinwonWaitServiceImpl.java new file mode 100644 index 0000000..ec61381 --- /dev/null +++ b/src/main/java/go/kr/project/biz/minwon/wait/service/impl/MinwonWaitServiceImpl.java @@ -0,0 +1,37 @@ +package go.kr.project.biz.minwon.wait.service.impl; + + +import go.kr.project.biz.minwon.wait.dto.MinwonWaitDto; +import go.kr.project.biz.minwon.wait.mapper.MinwonWaitMapper; +import go.kr.project.biz.minwon.wait.service.MinwonWaitService; +import go.kr.project.domain.repo.cp.CpAnswerRepository; +import go.kr.project.domain.repo.cp.CpMainRepository; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +@Slf4j +@RequiredArgsConstructor +public class MinwonWaitServiceImpl implements MinwonWaitService { + + private final CpMainRepository cpMainRepository; + private final CpAnswerRepository cpAnswerRepository; +// private final MinwonWaitQueryDsRepository minwonWaitQueryDsRepository; + private final MinwonWaitMapper minwonWaitMapper; + + @Override + public List findminwonwaitMybatis(MinwonWaitDto.Request.Search waitDto) { + List result = minwonWaitMapper.findminwonwaitMybatis(waitDto); + return result; + } + + @Override + public List findminwonwaitSearchMybatis(MinwonWaitDto.Request.Search waitDto, String searchKeyword) { + List result = minwonWaitMapper.findminwonwaitSearchMybatis(waitDto, searchKeyword); + return result; + } + +} diff --git a/src/main/resources/mybatis/mapper/biz/minwon/MinwonWaitMapper_maria.xml b/src/main/resources/mybatis/mapper/biz/minwon/MinwonWaitMapper_maria.xml new file mode 100644 index 0000000..15ccf2a --- /dev/null +++ b/src/main/resources/mybatis/mapper/biz/minwon/MinwonWaitMapper_maria.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + diff --git a/src/main/webapp/WEB-INF/views/biz/minwon/wait/wait.jsp b/src/main/webapp/WEB-INF/views/biz/minwon/wait/wait.jsp new file mode 100644 index 0000000..d91c964 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/biz/minwon/wait/wait.jsp @@ -0,0 +1,313 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> + + +
+
+
+
+
+ +
+
+
+
+
+
    +
  • 검색구분
  • +
  • + +
  • +
  • 검색어
  • +
  • +
  • 담당자지정
  • +
  • +
  • 사용여부
  • +
  • + +
  • +
  • 접수일자 지정
  • +
  • + ~ + +
  • +
  • + +
  • +
+
    +
  • + + / Pages +
  • +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +