
--- src/main/java/com/takensoft/ai_lms/common/confing/SecurityConfig.java
+++ src/main/java/com/takensoft/ai_lms/common/confing/SecurityConfig.java
... | ... | @@ -64,6 +64,7 @@ |
64 | 64 |
.requestMatchers("/test/**").permitAll() |
65 | 65 |
.requestMatchers("/studentInfo/**").permitAll() // 학생 정보 진입 허용(민수) |
66 | 66 |
.requestMatchers("/board/**").permitAll() // 게시판 정보 진입 허용 |
67 |
+ .requestMatchers("/book/**").permitAll() // 교재 정보 진입 허용 |
|
67 | 68 |
.requestMatchers("/file/**").permitAll() // 게시판 정보 진입 허용 |
68 | 69 |
.anyRequest().authenticated()); // 나머지 경로는 인증 필요 |
69 | 70 |
|
--- src/main/java/com/takensoft/ai_lms/lms/board/dao/BoardDAO.java
+++ src/main/java/com/takensoft/ai_lms/lms/board/dao/BoardDAO.java
... | ... | @@ -35,4 +35,8 @@ |
35 | 35 |
// 게시글 삭제 |
36 | 36 |
int deleteBoard(String bbsId) throws Exception; |
37 | 37 |
|
38 |
+ // 게시글 검색 |
|
39 |
+ List<HashMap<String, Object>> searchBoard(HashMap<String, Object> params) throws Exception; |
|
40 |
+ |
|
41 |
+ |
|
38 | 42 |
} |
--- src/main/java/com/takensoft/ai_lms/lms/board/service/BoardService.java
+++ src/main/java/com/takensoft/ai_lms/lms/board/service/BoardService.java
... | ... | @@ -31,4 +31,7 @@ |
31 | 31 |
|
32 | 32 |
// 게시글 삭제 |
33 | 33 |
int deleteBoard(String bbsId) throws Exception; |
34 |
+ |
|
35 |
+ // 게시글 검색 |
|
36 |
+ List<HashMap<String, Object>> searchBoard(HashMap<String, Object> params) throws Exception; |
|
34 | 37 |
} |
--- src/main/java/com/takensoft/ai_lms/lms/board/service/impl/BoardServiceImpl.java
+++ src/main/java/com/takensoft/ai_lms/lms/board/service/impl/BoardServiceImpl.java
... | ... | @@ -65,6 +65,12 @@ |
65 | 65 |
return boardDAO.deleteBoard(bbsId); |
66 | 66 |
} |
67 | 67 |
|
68 |
+ // 게시글 검색 |
|
69 |
+ @Override |
|
70 |
+ public List<HashMap<String, Object>> searchBoard(HashMap<String, Object> params) throws Exception { |
|
71 |
+ return boardDAO.searchBoard(params); |
|
72 |
+ } |
|
73 |
+ |
|
68 | 74 |
|
69 | 75 |
|
70 | 76 |
|
--- src/main/java/com/takensoft/ai_lms/lms/board/web/BoardController.java
+++ src/main/java/com/takensoft/ai_lms/lms/board/web/BoardController.java
... | ... | @@ -11,6 +11,7 @@ |
11 | 11 |
import org.springframework.web.bind.annotation.*; |
12 | 12 |
|
13 | 13 |
import java.util.HashMap; |
14 |
+import java.util.List; |
|
14 | 15 |
import java.util.Map; |
15 | 16 |
|
16 | 17 |
/** |
... | ... | @@ -128,6 +129,22 @@ |
128 | 129 |
} |
129 | 130 |
} |
130 | 131 |
|
132 |
+ /** |
|
133 |
+ * @author 박세훈 |
|
134 |
+ * @since 2024.07.26 |
|
135 |
+ * |
|
136 |
+ * 게시글 검색 |
|
137 |
+ */ |
|
138 |
+ |
|
139 |
+ @PostMapping("/search.json") |
|
140 |
+ public ResponseEntity<?> searchBoard(@RequestBody HashMap<String, Object> params) throws Exception { |
|
141 |
+ HashMap<String, Object> result = new HashMap<>(); |
|
142 |
+ |
|
143 |
+ List<HashMap<String, Object>> boardList = boardService.searchBoard(params); |
|
144 |
+ result.put("list", boardList); |
|
145 |
+ return new ResponseEntity<>(result, HttpStatus.OK); |
|
146 |
+ } |
|
147 |
+ |
|
131 | 148 |
|
132 | 149 |
|
133 | 150 |
} |
+++ src/main/java/com/takensoft/ai_lms/lms/book/dao/BookDAO.java
... | ... | @@ -0,0 +1,56 @@ |
1 | +package com.takensoft.ai_lms.lms.book.dao; | |
2 | + | |
3 | +import com.takensoft.ai_lms.lms.book.vo.BookVO; | |
4 | +import org.egovframe.rte.psl.dataaccess.mapper.Mapper; | |
5 | + | |
6 | +import java.util.List; | |
7 | + | |
8 | +/** | |
9 | + * @author : 구자현 | |
10 | + * @since : 2024.07.25 | |
11 | + * | |
12 | + * 교재 관련 Mapper | |
13 | + */ | |
14 | +@Mapper("bookDAO") | |
15 | +public interface BookDAO { | |
16 | + | |
17 | + /** | |
18 | + * @author : 구자현 | |
19 | + * @since : 2024.07.25 | |
20 | + * | |
21 | + * 전체 교재 목록 출력 | |
22 | + */ | |
23 | + List<BookVO> getAllBooks(); | |
24 | + | |
25 | + /** | |
26 | + * @author : 구자현 | |
27 | + * @since : 2024.07.25 | |
28 | + * | |
29 | + * 책의 상세 정보 | |
30 | + */ | |
31 | + BookVO getBookById(String book_id); | |
32 | + | |
33 | + /** | |
34 | + * @author : 구자현 | |
35 | + * @since : 2024.07.25 | |
36 | + * | |
37 | + * 교재 등록 | |
38 | + */ | |
39 | + void insertBook(BookVO book); | |
40 | + | |
41 | + /** | |
42 | + * @author : 구자현 | |
43 | + * @since : 2024.07.25 | |
44 | + * | |
45 | + * 교재 제목 수정 | |
46 | + */ | |
47 | + void updateBook(BookVO book); | |
48 | + | |
49 | + /** | |
50 | + * @author : 구자현 | |
51 | + * @since : 2024.07.25 | |
52 | + * | |
53 | + * 교재 삭제 | |
54 | + */ | |
55 | + void deleteBook(String book_id); | |
56 | +} |
+++ src/main/java/com/takensoft/ai_lms/lms/book/service/BookService.java
... | ... | @@ -0,0 +1,53 @@ |
1 | +package com.takensoft.ai_lms.lms.book.service; | |
2 | + | |
3 | +import com.takensoft.ai_lms.lms.book.vo.BookVO; | |
4 | +import java.util.List; | |
5 | + | |
6 | +/** | |
7 | + * @author : 구자현 | |
8 | + * @since : 2024.07.25 | |
9 | + * | |
10 | + * 교재 관련 Service 클래스 | |
11 | + */ | |
12 | +public interface BookService { | |
13 | + | |
14 | + /** | |
15 | + * @author : 구자현 | |
16 | + * @since : 2024.07.25 | |
17 | + * | |
18 | + * 전체 교재 목록 출력 | |
19 | + */ | |
20 | + List<BookVO> getAllBooks(); | |
21 | + | |
22 | + /** | |
23 | + * @author : 구자현 | |
24 | + * @since : 2024.07.25 | |
25 | + * | |
26 | + * 책의 상세 정보 | |
27 | + */ | |
28 | + BookVO getBookById(String book_id); | |
29 | + | |
30 | + /** | |
31 | + * @author : 구자현 | |
32 | + * @since : 2024.07.25 | |
33 | + * | |
34 | + * 교재 등록 | |
35 | + */ | |
36 | + void insertBook(BookVO book); | |
37 | + | |
38 | + /** | |
39 | + * @author : 구자현 | |
40 | + * @since : 2024.07.25 | |
41 | + * | |
42 | + * 교재 제목 수정 | |
43 | + */ | |
44 | + void updateBook(BookVO book); | |
45 | + | |
46 | + /** | |
47 | + * @author : 구자현 | |
48 | + * @since : 2024.07.25 | |
49 | + * | |
50 | + * 교재 삭제 | |
51 | + */ | |
52 | + void deleteBook(String book_id); | |
53 | +} |
+++ src/main/java/com/takensoft/ai_lms/lms/book/service/Impl/BookServiceImpl.java
... | ... | @@ -0,0 +1,82 @@ |
1 | +package com.takensoft.ai_lms.lms.book.service.Impl; | |
2 | + | |
3 | +import com.takensoft.ai_lms.common.idgen.service.IdgenService; | |
4 | +import com.takensoft.ai_lms.lms.book.dao.BookDAO; | |
5 | +import com.takensoft.ai_lms.lms.book.service.BookService; | |
6 | +import com.takensoft.ai_lms.lms.book.vo.BookVO; | |
7 | +import lombok.RequiredArgsConstructor; | |
8 | +import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl; | |
9 | +import org.springframework.stereotype.Service; | |
10 | +import java.util.List; | |
11 | + | |
12 | +/** | |
13 | + * @author : 구자현 | |
14 | + * @since : 2024.07.25 | |
15 | + * | |
16 | + * 교재 관련 ServiceImpl 클래스 | |
17 | + */ | |
18 | +@Service | |
19 | +@RequiredArgsConstructor | |
20 | +public class BookServiceImpl extends EgovAbstractServiceImpl implements BookService { | |
21 | + | |
22 | + private final BookDAO bookDAO; | |
23 | + | |
24 | + private final IdgenService bookIdgn; | |
25 | + | |
26 | + /** | |
27 | + * @author : 구자현 | |
28 | + * @since : 2024.07.25 | |
29 | + * | |
30 | + * 전체 교재 목록 출력 | |
31 | + */ | |
32 | + @Override | |
33 | + public List<BookVO> getAllBooks() { | |
34 | + return bookDAO.getAllBooks(); | |
35 | + } | |
36 | + | |
37 | + /** | |
38 | + * @author : 구자현 | |
39 | + * @since : 2024.07.25 | |
40 | + * | |
41 | + * 책의 상세 정보 | |
42 | + */ | |
43 | + @Override | |
44 | + public BookVO getBookById(String book_id) { | |
45 | + return bookDAO.getBookById(book_id); | |
46 | + } | |
47 | + | |
48 | + /** | |
49 | + * @author : 구자현 | |
50 | + * @since : 2024.07.25 | |
51 | + * | |
52 | + * 교재 등록 | |
53 | + */ | |
54 | + @Override | |
55 | + public void insertBook(BookVO book) { | |
56 | + String book_id = bookIdgn.getNextStringId(); | |
57 | + book.setBook_id(book_id); | |
58 | + bookDAO.insertBook(book); | |
59 | + } | |
60 | + | |
61 | + /** | |
62 | + * @author : 구자현 | |
63 | + * @since : 2024.07.25 | |
64 | + * | |
65 | + * 교재 제목 수정 | |
66 | + */ | |
67 | + @Override | |
68 | + public void updateBook(BookVO book) { | |
69 | + bookDAO.updateBook(book); | |
70 | + } | |
71 | + | |
72 | + /** | |
73 | + * @author : 구자현 | |
74 | + * @since : 2024.07.25 | |
75 | + * | |
76 | + * 교재 삭제 | |
77 | + */ | |
78 | + @Override | |
79 | + public void deleteBook(String book_id) { | |
80 | + bookDAO.deleteBook(book_id); | |
81 | + } | |
82 | +}(No newline at end of file) |
+++ src/main/java/com/takensoft/ai_lms/lms/book/vo/BookVO.java
... | ... | @@ -0,0 +1,23 @@ |
1 | +package com.takensoft.ai_lms.lms.book.vo; | |
2 | + | |
3 | +import lombok.AllArgsConstructor; | |
4 | +import lombok.Getter; | |
5 | +import lombok.NoArgsConstructor; | |
6 | +import lombok.Setter; | |
7 | + | |
8 | +/** | |
9 | + * @author : 구자현 | |
10 | + * @since : 2024.07.25 | |
11 | + * | |
12 | + * 교재 관련 VO | |
13 | + */ | |
14 | +@Setter | |
15 | +@Getter | |
16 | +@NoArgsConstructor | |
17 | +@AllArgsConstructor | |
18 | +public class BookVO { | |
19 | + // 교재 아이디 | |
20 | + private String book_id; | |
21 | + // 교재 제목 | |
22 | + private String book_nm; | |
23 | +} |
+++ src/main/java/com/takensoft/ai_lms/lms/book/web/BookController.java
... | ... | @@ -0,0 +1,77 @@ |
1 | +package com.takensoft.ai_lms.lms.book.web; | |
2 | + | |
3 | +import com.takensoft.ai_lms.lms.book.service.Impl.BookServiceImpl; | |
4 | +import com.takensoft.ai_lms.lms.book.vo.BookVO; | |
5 | +import lombok.RequiredArgsConstructor; | |
6 | +import org.springframework.web.bind.annotation.*; | |
7 | + | |
8 | +import java.util.List; | |
9 | + | |
10 | +/** | |
11 | + * @author : 구자현 | |
12 | + * @since : 2024.07.25 | |
13 | + * | |
14 | + * 교재 관련 Controller 클래스 | |
15 | + */ | |
16 | +@RequiredArgsConstructor | |
17 | +@RestController | |
18 | +@RequestMapping("/book") | |
19 | +public class BookController { | |
20 | + | |
21 | + private final BookServiceImpl bookServiceImpl; | |
22 | + | |
23 | + /** | |
24 | + * @author : 구자현 | |
25 | + * @since : 2024.07.25 | |
26 | + * | |
27 | + * 전체 교재 목록 출력 | |
28 | + */ | |
29 | + @GetMapping | |
30 | + public List<BookVO> getAllBooks() { | |
31 | + return bookServiceImpl.getAllBooks(); | |
32 | + } | |
33 | + | |
34 | + /** | |
35 | + * @author : 구자현 | |
36 | + * @since : 2024.07.25 | |
37 | + * | |
38 | + * 책의 상세 정보 | |
39 | + */ | |
40 | + @GetMapping("/{book_id}") | |
41 | + public BookVO getBookById(@PathVariable String book_id) { | |
42 | + return bookServiceImpl.getBookById(book_id); | |
43 | + } | |
44 | + | |
45 | + /** | |
46 | + * @author : 구자현 | |
47 | + * @since : 2024.07.25 | |
48 | + * | |
49 | + * 교재 등록 | |
50 | + */ | |
51 | + @PostMapping | |
52 | + public void insertBook(@RequestBody BookVO book) { | |
53 | + bookServiceImpl.insertBook(book); | |
54 | + } | |
55 | + | |
56 | + /** | |
57 | + * @author : 구자현 | |
58 | + * @since : 2024.07.25 | |
59 | + * | |
60 | + * 교재 제목 수정 | |
61 | + */ | |
62 | + @PutMapping | |
63 | + public void updateBook(@RequestBody BookVO book) { | |
64 | + bookServiceImpl.updateBook(book); | |
65 | + } | |
66 | + | |
67 | + /** | |
68 | + * @author : 구자현 | |
69 | + * @since : 2024.07.25 | |
70 | + * | |
71 | + * 교재 삭제 | |
72 | + */ | |
73 | + @DeleteMapping("/{book_id}") | |
74 | + public void deleteBook(@PathVariable String book_id) { | |
75 | + bookServiceImpl.deleteBook(book_id); | |
76 | + } | |
77 | +}(No newline at end of file) |
--- src/main/java/com/takensoft/ai_lms/lms/student/dao/StudentInfoDAO.java
+++ src/main/java/com/takensoft/ai_lms/lms/student/dao/StudentInfoDAO.java
... | ... | @@ -4,6 +4,8 @@ |
4 | 4 |
import org.apache.ibatis.annotations.Param; |
5 | 5 |
import org.egovframe.rte.psl.dataaccess.mapper.Mapper; |
6 | 6 |
|
7 |
+import java.util.List; |
|
8 |
+ |
|
7 | 9 |
/** |
8 | 10 |
* @author 권민수 |
9 | 11 |
* @since 2024.07.25 |
--- src/main/java/com/takensoft/ai_lms/lms/student/service/Impl/StudentInfoServiceImpl.java
+++ src/main/java/com/takensoft/ai_lms/lms/student/service/Impl/StudentInfoServiceImpl.java
... | ... | @@ -6,6 +6,8 @@ |
6 | 6 |
import lombok.RequiredArgsConstructor; |
7 | 7 |
import org.springframework.stereotype.Service; |
8 | 8 |
|
9 |
+import java.util.List; |
|
10 |
+ |
|
9 | 11 |
/** |
10 | 12 |
* @author 권민수 |
11 | 13 |
* @since 2024.07.25 |
+++ src/main/java/com/takensoft/ai_lms/lms/student/vo/HistoryVO.java
... | ... | @@ -0,0 +1,25 @@ |
1 | +package com.takensoft.ai_lms.lms.student.vo; | |
2 | + | |
3 | +import lombok.Getter; | |
4 | +import lombok.Setter; | |
5 | + | |
6 | +import java.sql.Timestamp; | |
7 | + | |
8 | +/** | |
9 | + * @author 권민수 | |
10 | + * @since 2024.07.26 | |
11 | + * | |
12 | + * 학생 최근 학습 정보 VO 클래스 | |
13 | + */ | |
14 | + | |
15 | +@Getter | |
16 | +@Setter | |
17 | +public class HistoryVO { | |
18 | + | |
19 | + private String bookId; | |
20 | + private String bookName; | |
21 | + private String unitId; | |
22 | + private String unitName; | |
23 | + private String completionTime; | |
24 | + | |
25 | +} |
--- src/main/java/com/takensoft/ai_lms/lms/student/vo/StudentInfoVO.java
+++ src/main/java/com/takensoft/ai_lms/lms/student/vo/StudentInfoVO.java
... | ... | @@ -3,6 +3,8 @@ |
3 | 3 |
import lombok.Getter; |
4 | 4 |
import lombok.Setter; |
5 | 5 |
|
6 |
+import java.util.List; |
|
7 |
+ |
|
6 | 8 |
/** |
7 | 9 |
* @author 권민수 |
8 | 10 |
* @since 2024.07.25 |
... | ... | @@ -13,11 +15,13 @@ |
13 | 15 |
@Setter |
14 | 16 |
@Getter |
15 | 17 |
public class StudentInfoVO { |
18 |
+ |
|
16 | 19 |
private String studentName; |
17 | 20 |
private String institutionName; |
18 |
- private String grade; |
|
21 |
+ private int grade; |
|
19 | 22 |
private String className; |
20 | 23 |
private String studentQuestion; |
24 |
+ private List<HistoryVO> history; |
|
21 | 25 |
|
22 | 26 |
} |
23 | 27 |
|
--- src/main/resources/mybatis/mapper/auth/auth-SQL.xml
+++ src/main/resources/mybatis/mapper/auth/auth-SQL.xml
... | ... | @@ -66,7 +66,6 @@ |
66 | 66 |
, use_at |
67 | 67 |
, reg |
68 | 68 |
, regist_dt |
69 |
- , ednst_id |
|
70 | 69 |
)VALUES( #{usid} |
71 | 70 |
, #{loginId} |
72 | 71 |
, #{password} |
... | ... | @@ -76,7 +75,6 @@ |
76 | 75 |
, 'Y' |
77 | 76 |
, #{reg} |
78 | 77 |
, now() |
79 |
- , '1' |
|
80 | 78 |
); |
81 | 79 |
</insert> |
82 | 80 |
<!-- |
--- src/main/resources/mybatis/mapper/lms/board-SQL.xml
+++ src/main/resources/mybatis/mapper/lms/board-SQL.xml
... | ... | @@ -45,7 +45,7 @@ |
45 | 45 |
내 용 : 게시글 전체 조회 |
46 | 46 |
--> |
47 | 47 |
<select id="findAllBoard" resultMap="boardMap"> |
48 |
- SELECT bbs_id, bbs_ttl, bbs_cls, bbs_cnt,bbs_tm, file_mng_id, scls_id |
|
48 |
+ SELECT * |
|
49 | 49 |
FROM board |
50 | 50 |
WHERE scls_id = #{sclsId} |
51 | 51 |
ORDER BY bbs_id DESC |
... | ... | @@ -58,7 +58,7 @@ |
58 | 58 |
내 용 : 게시글 상세 조회 |
59 | 59 |
--> |
60 | 60 |
<select id="findByBoardId" parameterType="BoardVO" resultMap="boardMap"> |
61 |
- SELECT bbs_id, bbs_ttl, bbs_cls, bbs_cnt,bbs_tm, file_mng_id |
|
61 |
+ SELECT * |
|
62 | 62 |
FROM board |
63 | 63 |
WHERE bbs_id = #{bbsId} |
64 | 64 |
ORDER BY bbs_id DESC |
... | ... | @@ -66,6 +66,32 @@ |
66 | 66 |
|
67 | 67 |
<!-- |
68 | 68 |
작성자 : 박세훈 |
69 |
+ 작성일 : 2024.07.26 |
|
70 |
+ 내 용 : 게시글 검색 |
|
71 |
+ --> |
|
72 |
+ <select id="searchBoard" parameterType="BoardVO" resultMap="boardMap"> |
|
73 |
+ SELECT * |
|
74 |
+ FROM board |
|
75 |
+ WHERE 1 = 1 |
|
76 |
+ <if test="option != null and keyword != null"> |
|
77 |
+ <choose> |
|
78 |
+ <when test="option == 'bbsTitle'"> |
|
79 |
+ AND bbs_ttl LIKE CONCAT('%', #{keyword}, '%') |
|
80 |
+ </when> |
|
81 |
+ <when test="option == 'bbsCategory'"> |
|
82 |
+ AND bbs_cls LIKE CONCAT('%', #{keyword}, '%') |
|
83 |
+ </when> |
|
84 |
+ <otherwise> |
|
85 |
+ AND bbs_cnt LIKE CONCAT('%', #{keyword}, '%') |
|
86 |
+ </otherwise> |
|
87 |
+ </choose> |
|
88 |
+ </if> |
|
89 |
+ ORDER BY bbs_id DESC |
|
90 |
+ LIMIT #{pageSize} OFFSET #{startIndex} |
|
91 |
+ </select> |
|
92 |
+ |
|
93 |
+ <!-- |
|
94 |
+ 작성자 : 박세훈 |
|
69 | 95 |
작성일 : 2024.07.25 |
70 | 96 |
내 용 : 게시글 수정 |
71 | 97 |
--> |
+++ src/main/resources/mybatis/mapper/lms/book-SQL.xml
... | ... | @@ -0,0 +1,65 @@ |
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |
3 | +<mapper namespace="com.takensoft.ai_lms.lms.book.dao.BookDAO"> | |
4 | + | |
5 | + <resultMap id="bookMap" type="BookVO"> | |
6 | + <result property="book_id" column="book_id"/> | |
7 | + <result property="book_nm" column="book_nm"/> | |
8 | + </resultMap> | |
9 | + | |
10 | + <!-- | |
11 | + 작 성 자 : 구자현 | |
12 | + 작 성 일 : 2024.07.25 | |
13 | + 내 용 : 전체 교재 목록 출력 | |
14 | + --> | |
15 | + <select id="getAllBooks" resultMap="bookMap"> | |
16 | + SELECT | |
17 | + book_id, | |
18 | + book_nm | |
19 | + FROM book | |
20 | + </select> | |
21 | + | |
22 | + <!-- | |
23 | + 작 성 자 : 구자현 | |
24 | + 작 성 일 : 2024.07.25 | |
25 | + 내 용 : 책의 상세 정보 | |
26 | + --> | |
27 | + <select id="getBookById" parameterType="String" resultMap="bookMap"> | |
28 | + SELECT | |
29 | + book_id, | |
30 | + book_nm | |
31 | + FROM book | |
32 | + WHERE book_id = #{book_id} | |
33 | + </select> | |
34 | + | |
35 | + <!-- | |
36 | + 작 성 자 : 구자현 | |
37 | + 작 성 일 : 2024.07.25 | |
38 | + 내 용 : 교재 등록 | |
39 | + --> | |
40 | + <insert id="insertBook" parameterType="bookVO"> | |
41 | + INSERT INTO book (book_id, book_nm) | |
42 | + VALUES (#{book_id}, #{book_nm}) | |
43 | + </insert> | |
44 | + | |
45 | + <!-- | |
46 | + 작 성 자 : 구자현 | |
47 | + 작 성 일 : 2024.07.25 | |
48 | + 내 용 : 교재 제목 수정 | |
49 | + --> | |
50 | + <update id="updateBook" parameterType="bookVO"> | |
51 | + UPDATE book | |
52 | + SET book_nm = #{book_nm} | |
53 | + WHERE book_id = #{book_id} | |
54 | + </update> | |
55 | + | |
56 | + <!-- | |
57 | + 작 성 자 : 구자현 | |
58 | + 작 성 일 : 2024.07.25 | |
59 | + 내 용 : 교재 삭제 | |
60 | + --> | |
61 | + <delete id="deleteBook" parameterType="String"> | |
62 | + DELETE FROM book | |
63 | + WHERE book_id = #{book_id} | |
64 | + </delete> | |
65 | +</mapper>(No newline at end of file) |
--- src/main/resources/mybatis/mapper/lms/change.xml
... | ... | @@ -1,14 +0,0 @@ |
1 | -<?xml version="1.0" encoding="UTF-8"?> | |
2 | -<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |
3 | -<mapper namespace="com.takensoft.ai_lms.lms.test.dao.TestDAO"> | |
4 | - <!-- | |
5 | - 작 성 자 : 박민혁 | |
6 | - 작 성 일 : 2024.07.25 | |
7 | - 내 용 : 경로 생성을 위해 만들어 놓은 xml, | |
8 | - CRUD를 이용하는데 삭제하거나 수정해서 사용해주세요 | |
9 | - --> | |
10 | - <select id="testList" resultType="HashMap"> | |
11 | - SELECT test_data | |
12 | - FROM test_info | |
13 | - </select> | |
14 | -</mapper>(No newline at end of file) |
--- src/main/resources/mybatis/mapper/lms/student-SQL.xml
+++ src/main/resources/mybatis/mapper/lms/student-SQL.xml
... | ... | @@ -14,20 +14,46 @@ |
14 | 14 |
<result property="grade" column="grade"/> |
15 | 15 |
<result property="className" column="className"/> |
16 | 16 |
<result property="studentQuestion" column="studentQuestion"/> |
17 |
+ <collection property="history" ofType="com.takensoft.ai_lms.lms.student.vo.HistoryVO"> |
|
18 |
+ <result property="bookName" column="bookName"/> |
|
19 |
+ <result property="bookId" column="bookId"/> |
|
20 |
+ <result property="unitName" column="unitName"/> |
|
21 |
+ <result property="unitId" column="unitId"/> |
|
22 |
+ <result property="completionTime" column="completionTime"/> |
|
23 |
+ </collection> |
|
17 | 24 |
</resultMap> |
18 | 25 |
|
19 |
- <select id="getStudentInfo" resultType="com.takensoft.ai_lms.lms.student.vo.StudentInfoVO"> |
|
26 |
+ <select id="getStudentInfo" resultMap="StudentInfoResultMap"> |
|
20 | 27 |
SELECT |
21 | 28 |
u.user_nm AS studentName, |
22 | 29 |
i.ednst_nm AS institutionName, |
23 |
- g.grd_no AS grade, |
|
24 |
- c.scls_nm AS className, |
|
25 |
- uc.stn_qna AS studentQuestion |
|
30 |
+ ui.grd_no AS grade, |
|
31 |
+ ui.scls_nm AS className, |
|
32 |
+ uc.stn_qna AS studentQuestion, |
|
33 |
+ hu.book_id AS bookId, |
|
34 |
+ hu.book_nm AS bookName, |
|
35 |
+ hu.unit_id AS unitId, |
|
36 |
+ hu.unit_nm AS unitName, |
|
37 |
+ hu.cmptn_tm AS completionTime |
|
26 | 38 |
FROM users u |
27 |
- JOIN institution i ON u.ednst_id = i.ednst_id |
|
39 |
+ JOIN user_institution ui ON u.user_id = ui.user_id |
|
40 |
+ JOIN institution i ON ui.ednst_id = i.ednst_id |
|
28 | 41 |
JOIN user_class uc ON u.user_id = uc.user_id |
29 |
- JOIN class c ON uc.scls_id = c.scls_id |
|
30 |
- JOIN grade g ON c.sgrd_id = g.sgrd_id |
|
42 |
+ LEFT JOIN ( |
|
43 |
+ SELECT |
|
44 |
+ uu.user_id, |
|
45 |
+ b.book_id, |
|
46 |
+ b.book_nm, |
|
47 |
+ un.unit_id, |
|
48 |
+ un.unit_nm, |
|
49 |
+ uu.cmptn_tm |
|
50 |
+ FROM user_unit uu |
|
51 |
+ JOIN unit un ON uu.unit_id = un.unit_id |
|
52 |
+ JOIN book b ON un.book_id = b.book_id |
|
53 |
+ WHERE uu.user_id = #{userId} |
|
54 |
+ ORDER BY uu.cmptn_tm DESC |
|
55 |
+ LIMIT 3 |
|
56 |
+ ) hu ON u.user_id = hu.user_id |
|
31 | 57 |
WHERE u.user_id = #{userId} |
32 | 58 |
</select> |
33 | 59 |
|
--- src/main/resources/mybatis/mapper/test/test-SQL.xml
+++ src/main/resources/mybatis/mapper/test/test-SQL.xml
... | ... | @@ -4,7 +4,7 @@ |
4 | 4 |
<!-- |
5 | 5 |
작 성 자 : 방선주 |
6 | 6 |
작 성 일 : 2024.07.05 |
7 |
- 내 용 : 테스트 xml |
|
7 |
+ 내 용 : 테스트 xml2 |
|
8 | 8 |
--> |
9 | 9 |
<select id="testList" resultType="HashMap"> |
10 | 10 |
SELECT test_data |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?