inkoreakim 2 роки тому
батько
коміт
9e98e4d012

+ 59 - 0
src/main/generated/com/example/ili_web/board/domain/QBoard.java

@@ -0,0 +1,59 @@
+package com.example.ili_web.board.domain;
+
+import static com.querydsl.core.types.PathMetadataFactory.*;
+
+import com.querydsl.core.types.dsl.*;
+
+import com.querydsl.core.types.PathMetadata;
+import javax.annotation.processing.Generated;
+import com.querydsl.core.types.Path;
+
+
+/**
+ * QBoard is a Querydsl query type for Board
+ */
+@Generated("com.querydsl.codegen.DefaultEntitySerializer")
+public class QBoard extends EntityPathBase<Board> {
+
+    private static final long serialVersionUID = -1986682040L;
+
+    public static final QBoard board = new QBoard("board");
+
+    public final StringPath company = createString("company");
+
+    public final StringPath content = createString("content");
+
+    public final NumberPath<Long> id = createNumber("id", Long.class);
+
+    public final StringPath nickName = createString("nickName");
+
+    public final StringPath password = createString("password");
+
+    public final StringPath phoneNum = createString("phoneNum");
+
+    public final DateTimePath<java.time.LocalDateTime> regDt = createDateTime("regDt", java.time.LocalDateTime.class);
+
+    public final StringPath title = createString("title");
+
+    public final StringPath type = createString("type");
+
+    public final DateTimePath<java.time.LocalDateTime> upDt = createDateTime("upDt", java.time.LocalDateTime.class);
+
+    public final StringPath userName = createString("userName");
+
+    public final StringPath useYn = createString("useYn");
+
+    public QBoard(String variable) {
+        super(Board.class, forVariable(variable));
+    }
+
+    public QBoard(Path<? extends Board> path) {
+        super(path.getType(), path.getMetadata());
+    }
+
+    public QBoard(PathMetadata metadata) {
+        super(Board.class, metadata);
+    }
+
+}
+

+ 2 - 0
src/main/java/com/example/ili_web/board/controller/BoardController.java

@@ -0,0 +1,2 @@
+package com.example.ili_web.board.controller;public class BoardController {
+}

+ 2 - 0
src/main/java/com/example/ili_web/board/domain/Board.java

@@ -0,0 +1,2 @@
+package com.example.ili_web.board.domain;public class Board {
+}

+ 2 - 0
src/main/java/com/example/ili_web/board/dto/AdviceList.java

@@ -0,0 +1,2 @@
+package com.example.ili_web.board.dto;public class AdviceList {
+}

+ 2 - 0
src/main/java/com/example/ili_web/board/dto/BoardList.java

@@ -0,0 +1,2 @@
+package com.example.ili_web.board.dto;public class BoardList {
+}

+ 2 - 0
src/main/java/com/example/ili_web/board/dto/BoardReq.java

@@ -0,0 +1,2 @@
+package com.example.ili_web.board.dto;public class BoardReq {
+}

+ 2 - 0
src/main/java/com/example/ili_web/board/dto/BoardRes.java

@@ -0,0 +1,2 @@
+package com.example.ili_web.board.dto;public class BoardRes {
+}

+ 2 - 0
src/main/java/com/example/ili_web/board/repository/BoardRepository.java

@@ -0,0 +1,2 @@
+package com.example.ili_web.board.repository;public interface BoardRepository {
+}

+ 27 - 0
src/main/java/com/example/ili_web/board/repository/BoardRepositoryDsl.java

@@ -0,0 +1,27 @@
+package com.example.ili_web.board.repository;
+
+import com.example.ili_web.board.domain.QBoard;
+import com.example.ili_web.board.dto.BoardList;
+import com.querydsl.core.types.Projections;
+import com.querydsl.jpa.impl.JPAQueryFactory;
+import jakarta.persistence.EntityManager;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@RequiredArgsConstructor
+@Repository
+public class BoardRepositoryImpl {
+    private final JPAQueryFactory queryFactory;
+
+    public List<BoardList> boardList() {
+        QBoard b = QBoard.board;
+        return queryFactory
+                .select(Projections.constructor(BoardList.class, b.title, b.userName, b.content, b.regDt))
+                .from(b)
+                .where(b.type.eq("NT"))
+                .fetch();
+    }
+
+}

+ 2 - 0
src/main/java/com/example/ili_web/board/service/BoardService.java

@@ -0,0 +1,2 @@
+package com.example.ili_web.board.service;public class BoardService {
+}

+ 2 - 0
src/main/java/com/example/ili_web/config/QueryDslConfig.java

@@ -0,0 +1,2 @@
+package com.example.ili_web.config;public class QueryDslConfig {
+}

+ 35 - 0
src/main/resources/static/js/contact/getList.js

@@ -0,0 +1,35 @@
+/*function getList(type, page) {
+    axios.post('/api/v1/board/list', {type , page, size : 5})
+        .then(res => {
+            if (res.status === 200) {
+                makeTable(res.data.dataList)
+                pagenation(res.data);
+            } else {
+                console.log(res.statusText)
+            }
+        })
+        .catch(error => console.error('Error:', error));
+}*/
+async function getList(type, page) {
+    try {
+        const response = await axios.post('/api/v1/board/list', {type , page, size : 5})
+        console.log(response);
+        return response;
+    } catch (e) {
+
+    }
+}
+
+function goToDetail (title, userName, regDt, content) {
+    document.getElementById('nt_dt').innerHTML = `<strong>일시:</strong> ${regDt}`;
+    document.getElementById('nt_name').innerHTML = `<strong>작성자:</strong> ${userName}`;
+    document.getElementById('nt_title').innerHTML = `<strong>제목:</strong> ${title}`;
+    document.getElementById('nt_content').innerText = content;
+}
+
+document.addEventListener('DOMContentLoaded', async function () {
+    //getList('NT', 1);
+    const res = await getList('NT', 1)
+    makeTable(res.data.dataList)
+    pagenation(res.data);
+});

+ 41 - 0
src/main/resources/static/js/contact/makeHtml.js

@@ -0,0 +1,41 @@
+function makeTable(list) {
+    const target = document.getElementById('notice_table').querySelector('tbody');
+    target.innerHTML = '';
+    let html = '';
+
+    for (let data of list) {
+        html += '<tr>';
+        html += `<td>${data.regDt}</td>`
+        html += `<td><a href="javascript:void(0);" onclick="goToDetail('${data.title}', '${data.userName}', '${data.regDt}', '${data.content}',)">${data.title}</a></td>`
+        html += `<td>${data.userName}</td>`
+        html += '</tr>';
+    }
+    target.innerHTML = html;
+    const firstRowLink = target.querySelector('tr:first-of-type td:nth-of-type(2) a');
+    firstRowLink.click();
+}
+
+function pagenation (data, type) {
+    let paginationHtml = '<ul class="pagination justify-content-center">';
+
+    // Previous 버튼
+    paginationHtml += '<li class="page-item ' + (data.page <= 1 ? 'disabled' : '') + '">';
+    paginationHtml += `<a class="page-link" href="javascript:void(0);" onclick="getList(${type}, '${data.page - 1}')" tabindex="-1">이전</a>`;
+    paginationHtml += '</li>';
+
+    // 페이지 번호
+    for (let i = 1; i <= data.total; i++) {
+        paginationHtml += '<li class="page-item ' + (i === data.page ? 'active' : '') + '">';
+        paginationHtml += '<a class="page-link" href="javascript:void(0);" onclick="getList(' + i + ')">' + i + '</a>';
+        paginationHtml += '</li>';
+    }
+
+    // Next 버튼
+    paginationHtml += '<li class="page-item ' + (data.page >= data.total ? 'disabled' : '') + '">';
+    paginationHtml += '<a class="page-link" href="javascript:void(0);" onclick="getList(' + (data.page + 1) + ')">다음</a>';
+    paginationHtml += '</li>';
+
+    paginationHtml += '</ul>';
+
+    document.getElementById('pageTag').innerHTML = paginationHtml;
+}

+ 10 - 0
src/main/resources/templates/html/contact-inner/estimate.html

@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8">
+  <title>$Title$</title>
+</head>
+<body>
+$END$
+</body>
+</html>