

240726 박세훈 class-book 테이블 등록 및 삭제
@5631cdd8259e7d83fa83d6717182c4182a9e5b24
--- src/main/java/com/takensoft/ai_lms/common/confing/SecurityConfig.java
+++ src/main/java/com/takensoft/ai_lms/common/confing/SecurityConfig.java
... | ... | @@ -69,6 +69,7 @@ |
69 | 69 |
.requestMatchers("/book/**").permitAll() // 교재 정보 진입 허용 |
70 | 70 |
.requestMatchers("/file/**").permitAll() // 파일 정보 진입 허용 |
71 | 71 |
.requestMatchers("/classes/**").permitAll() // 반 정보 진입 허용 |
72 |
+ .requestMatchers("/classBook/**").permitAll() // 반 - 책 정보 진입 허용 |
|
72 | 73 |
.anyRequest().authenticated()); // 나머지 경로는 인증 필요 |
73 | 74 |
|
74 | 75 |
// jwt 필터 처리 적용 |
+++ src/main/java/com/takensoft/ai_lms/lms/class_book/dao/ClassBookDAO.java
... | ... | @@ -0,0 +1,22 @@ |
1 | +package com.takensoft.ai_lms.lms.class_book.dao; | |
2 | + | |
3 | + | |
4 | +import com.takensoft.ai_lms.lms.class_book.vo.ClassBookVO; | |
5 | +import org.egovframe.rte.psl.dataaccess.mapper.Mapper; | |
6 | + | |
7 | +/** | |
8 | + * @author : 박세훈 | |
9 | + * since : 2024.07.20 | |
10 | + * | |
11 | + * class - book관련 Mapper | |
12 | + */ | |
13 | + | |
14 | +@Mapper("classBookDAO") | |
15 | +public interface ClassBookDAO { | |
16 | + | |
17 | + // 책 등록 | |
18 | + int registerBook(ClassBookVO classBookVO) throws Exception; | |
19 | + | |
20 | + // 책 삭제 | |
21 | + int deleteClassBook(ClassBookVO classBookVO) throws Exception; | |
22 | +} |
+++ src/main/java/com/takensoft/ai_lms/lms/class_book/service/ClassBookService.java
... | ... | @@ -0,0 +1,20 @@ |
1 | +package com.takensoft.ai_lms.lms.class_book.service; | |
2 | + | |
3 | +import com.takensoft.ai_lms.lms.class_book.vo.ClassBookVO; | |
4 | + | |
5 | + | |
6 | +/** | |
7 | + * @author : 박세훈 | |
8 | + * since : 2024.07.20 | |
9 | + * | |
10 | + * class - book관련 Service | |
11 | + */ | |
12 | + | |
13 | +public interface ClassBookService { | |
14 | + | |
15 | + // 책 등록 | |
16 | + int registerBook(ClassBookVO classBookVO) throws Exception; | |
17 | + | |
18 | + // 책 삭제 | |
19 | + int deleteClassBook(ClassBookVO classBookVO) throws Exception; | |
20 | +} |
+++ src/main/java/com/takensoft/ai_lms/lms/class_book/service/Impl/ClassBookServiceImpl.java
... | ... | @@ -0,0 +1,32 @@ |
1 | +package com.takensoft.ai_lms.lms.class_book.service.Impl; | |
2 | + | |
3 | + | |
4 | +import com.takensoft.ai_lms.lms.class_book.dao.ClassBookDAO; | |
5 | +import com.takensoft.ai_lms.lms.class_book.service.ClassBookService; | |
6 | +import com.takensoft.ai_lms.lms.class_book.vo.ClassBookVO; | |
7 | +import lombok.RequiredArgsConstructor; | |
8 | +import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl; | |
9 | +import org.springframework.stereotype.Service; | |
10 | + | |
11 | + | |
12 | +/** | |
13 | + * @author : 박세훈 | |
14 | + * since : 2024.07.20 | |
15 | + * | |
16 | + * class - book관련 ServiceImpl | |
17 | + */ | |
18 | +@Service("classBookService") | |
19 | +@RequiredArgsConstructor | |
20 | +public class ClassBookServiceImpl extends EgovAbstractServiceImpl implements ClassBookService { | |
21 | + | |
22 | + private final ClassBookDAO classBookDAO; | |
23 | + | |
24 | + @Override | |
25 | + public int registerBook(ClassBookVO classBookVO) throws Exception { | |
26 | + return classBookDAO.registerBook(classBookVO); | |
27 | + } | |
28 | + @Override | |
29 | + public int deleteClassBook(ClassBookVO classBookVO) throws Exception { | |
30 | + return classBookDAO.deleteClassBook(classBookVO); | |
31 | + } | |
32 | +} |
+++ src/main/java/com/takensoft/ai_lms/lms/class_book/vo/ClassBookVO.java
... | ... | @@ -0,0 +1,20 @@ |
1 | +package com.takensoft.ai_lms.lms.class_book.vo; | |
2 | + | |
3 | + | |
4 | +import lombok.AllArgsConstructor; | |
5 | +import lombok.Getter; | |
6 | +import lombok.NoArgsConstructor; | |
7 | +import lombok.Setter; | |
8 | + | |
9 | +@Getter | |
10 | +@Setter | |
11 | +@AllArgsConstructor | |
12 | +@NoArgsConstructor | |
13 | +public class ClassBookVO { | |
14 | + // 반 아이디 | |
15 | + private String sclsId; | |
16 | + | |
17 | + // 책 아이디 | |
18 | + private String bookId; | |
19 | + | |
20 | +} |
+++ src/main/java/com/takensoft/ai_lms/lms/class_book/web/ClassBookController.java
... | ... | @@ -0,0 +1,67 @@ |
1 | +package com.takensoft.ai_lms.lms.class_book.web; | |
2 | + | |
3 | +import com.takensoft.ai_lms.lms.class_book.service.ClassBookService; | |
4 | +import com.takensoft.ai_lms.lms.class_book.vo.ClassBookVO; | |
5 | +import lombok.RequiredArgsConstructor; | |
6 | +import org.springframework.web.bind.annotation.*; | |
7 | + | |
8 | +import java.util.HashMap; | |
9 | + | |
10 | +@RestController | |
11 | +@RequiredArgsConstructor | |
12 | +@RequestMapping(value = "/classBook") | |
13 | +public class ClassBookController { | |
14 | + | |
15 | + private final ClassBookService classBookService; | |
16 | + | |
17 | + /** | |
18 | + * @author 박세훈 | |
19 | + * @since 2024.07.29 | |
20 | + * param ClassBookDAO | |
21 | + * @return | |
22 | + * @throws Exception | |
23 | + * | |
24 | + * 반 책 등록 | |
25 | + */ | |
26 | + @PostMapping("/register.json") | |
27 | + public String registerBook(@RequestBody ClassBookVO classBookVO) throws Exception { | |
28 | + try { | |
29 | + int result = classBookService.registerBook(classBookVO); | |
30 | + if (result > 0) { | |
31 | + return "success"; | |
32 | + } else { | |
33 | + return "fail"; | |
34 | + } | |
35 | + } catch (Exception e) { | |
36 | + e.printStackTrace(); | |
37 | + return "Error"; | |
38 | + } | |
39 | + } | |
40 | + | |
41 | + | |
42 | + /** | |
43 | + * @author 박세훈 | |
44 | + * @since 2024.07.29 | |
45 | + * param ClassBookDAO | |
46 | + * @return | |
47 | + * @throws Exception | |
48 | + * | |
49 | + * 반 책 삭제 | |
50 | + */ | |
51 | + @DeleteMapping("/deleteClassBook.json") | |
52 | + public String deleteClassBook(@RequestBody ClassBookVO classBookVO) throws Exception { | |
53 | + try { | |
54 | + int result = classBookService.deleteClassBook(classBookVO); | |
55 | + System.out.println("result = " + result); | |
56 | + if (result > 0) { | |
57 | + return "success"; | |
58 | + } else { | |
59 | + return "fail"; | |
60 | + } | |
61 | + } catch (Exception e) { | |
62 | + e.printStackTrace(); | |
63 | + return "Error"; | |
64 | + } | |
65 | + } | |
66 | + | |
67 | +} |
+++ src/main/resources/mybatis/mapper/lms/class_book-SQL.xml
... | ... | @@ -0,0 +1,36 @@ |
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.class_book.dao.ClassBookDAO"> | |
4 | + | |
5 | + | |
6 | + <resultMap id="classBookMap" type="ClassBookVO" > | |
7 | + <result property="sclsId" column="scls_id"/> | |
8 | + <result property="sclsNm" column="scls_nm"/> | |
9 | + </resultMap> | |
10 | + | |
11 | + <!-- | |
12 | + 작성자 : 박세훈 | |
13 | + 작성일 : 2024.07.26 | |
14 | + 내 용 : 반에 책 등록 | |
15 | + --> | |
16 | + <insert id="registerBook" parameterType="String" > | |
17 | + INSERT INTO class_book( book_id, | |
18 | + scls_id | |
19 | + ) VALUES ( #{bookId}, | |
20 | + #{sclsId} | |
21 | + ); | |
22 | + </insert> | |
23 | + | |
24 | + <!-- | |
25 | + 작성자 : 박세훈 | |
26 | + 작성일 : 2024.07.26 | |
27 | + 내 용 : 반에 등록 된 책 삭제 | |
28 | + --> | |
29 | + <delete id="deleteClassBook" parameterType="String"> | |
30 | + DELETE FROM class_book | |
31 | + WHERE | |
32 | + book_id = #{bookId} AND | |
33 | + scls_id = #{sclsId} | |
34 | + </delete> | |
35 | + | |
36 | +</mapper>(No newline at end of file) |
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?