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/init/service/impl/MinwonInitServiceImpl.java b/src/main/java/go/kr/project/biz/minwon/init/service/impl/MinwonInitServiceImpl.java index baa236a..865579d 100644 --- a/src/main/java/go/kr/project/biz/minwon/init/service/impl/MinwonInitServiceImpl.java +++ b/src/main/java/go/kr/project/biz/minwon/init/service/impl/MinwonInitServiceImpl.java @@ -18,8 +18,6 @@ import java.util.stream.Collectors; @RequiredArgsConstructor public class MinwonInitServiceImpl implements MinwonInitService { - private final CpMainRepository cpMainRepository; - private final CpAnswerRepository cpAnswerRepository; private final MinwonInitQueryDslRepository minwonInitQueryDslRepository; @Override @@ -30,6 +28,7 @@ public class MinwonInitServiceImpl implements MinwonInitService { // Enum Desc 변환 result.forEach(item -> { item.setMmDlgb(MmDlgbEnum.getDescByCode(item.getMmDlgb())); + //item. (MmDlgbEnum.getDescByCode(item.getMmDlgb())); }); 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..910dcea --- /dev/null +++ b/src/main/java/go/kr/project/biz/minwon/wait/controller/MinwonWaitController.java @@ -0,0 +1,58 @@ +package go.kr.project.biz.minwon.wait.controller; + + +import egovframework.constant.TilesConstants; +import egovframework.util.ApiResponseUtil; +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.ModelAttribute; +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(@ModelAttribute MinwonWaitDto.Request.Search waitDto, String searchKeyword) { + // 총 게시물 수 조회 + int totalCount = 0; + waitDto.setTotalCount(totalCount); + + // 페이징 처리를 위한 설정 + waitDto.setPagingYn("N"); + + List result = minwonWaitService.findminwonwaitSearchMybatis(waitDto, searchKeyword); + + return ApiResponseUtil.successWithGrid(result, waitDto); + } + +} 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..c83d09a --- /dev/null +++ b/src/main/java/go/kr/project/biz/minwon/wait/dto/MinwonWaitDto.java @@ -0,0 +1,39 @@ +package go.kr.project.biz.minwon.wait.dto; + + +import go.kr.project.system.common.model.PagingVO; +import lombok.Getter; +import lombok.Setter; + +public class MinwonWaitDto { + public static class Request { + + @Getter + @Setter + public static class Search extends PagingVO { + private String mmDlgb; + } + + } + + 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; + private String asIngb; + private String mmText; + private String asText; + } + } +} 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..4ac0e25 --- /dev/null +++ b/src/main/java/go/kr/project/biz/minwon/wait/mapper/MinwonWaitMapper.java @@ -0,0 +1,11 @@ +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 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..591134b --- /dev/null +++ b/src/main/java/go/kr/project/biz/minwon/wait/service/MinwonWaitService.java @@ -0,0 +1,11 @@ +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 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..50b9434 --- /dev/null +++ b/src/main/java/go/kr/project/biz/minwon/wait/service/impl/MinwonWaitServiceImpl.java @@ -0,0 +1,40 @@ +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 go.kr.project.vo.code.AsIngbEnum; +import go.kr.project.vo.code.MmDlgbEnum; +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 findminwonwaitSearchMybatis(MinwonWaitDto.Request.Search waitDto, String searchKeyword) { + List result = minwonWaitMapper.findminwonwaitSearchMybatis(waitDto, searchKeyword); + + result.forEach(item -> { + item.setMmDlgb(MmDlgbEnum.getDescByCode(item.getMmDlgb())); + item.setAsIngb(AsIngbEnum.getDescByCode(item.getAsIngb())); + }); + + + return result; + } + +} diff --git a/src/main/java/go/kr/project/vo/code/AsIngbEnum.java b/src/main/java/go/kr/project/vo/code/AsIngbEnum.java index e21d36e..8bb1968 100644 --- a/src/main/java/go/kr/project/vo/code/AsIngbEnum.java +++ b/src/main/java/go/kr/project/vo/code/AsIngbEnum.java @@ -8,21 +8,21 @@ import java.util.Map; @Getter public enum AsIngbEnum { // APP(110, "생활불편신고"), // 안전신문고(120)으로 통합됨. - SMG_SEAL(120, "안전신문고"), - POLICE(130, "경찰청"), - SMG(183, "국민신문고"), - ETC(181, "기타"); + SMG_SEAL("120", "안전신문고"), + POLICE("130", "경찰청"), + SMG("183", "국민신문고"), + ETC("181", "기타"); - private int code; + private String code; private String desc; - AsIngbEnum(int code, String desc) { + AsIngbEnum(String code, String desc) { this.code = code; this.desc = desc; } - private static final Map CODE_MAP = new HashMap<>(); + private static final Map CODE_MAP = new HashMap<>(); private static final Map DESC_MAP = new HashMap<>(); static { @@ -33,19 +33,19 @@ public enum AsIngbEnum { } // code → desc - public static String getDescByCode(int code) { + public static String getDescByCode(String code) { AsIngbEnum e = CODE_MAP.get(code); return e != null ? e.desc : null; } // desc → code - public static Integer getCodeByDesc(String desc) { + public static String getCodeByDesc(String desc) { AsIngbEnum e = DESC_MAP.get(desc); return e != null ? e.code : null; } // code → enum - public static AsIngbEnum fromCode(int code) { + public static AsIngbEnum fromCode(String code) { return CODE_MAP.get(code); } 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..51f5626 --- /dev/null +++ b/src/main/resources/mybatis/mapper/biz/minwon/MinwonWaitMapper_maria.xml @@ -0,0 +1,38 @@ + + + + + + + + + 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..0ef3fc3 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/biz/minwon/wait/wait.jsp @@ -0,0 +1,308 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> + + +
+
+
+
+
+
+
+
+
+
    +    +    +
+
+
+
+
    +
  • 등록구분
  • +
  • + +
  • +
  • + +
  • +
+
    +
  • + + / Pages +
  • +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + +