PsHooN7979 2024-07-29
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
+++ src/main/java/com/takensoft/ai_lms/common/confing/SecurityConfig.java
@@ -69,6 +69,7 @@
                 .requestMatchers("/book/**").permitAll() // 교재 정보 진입 허용
                 .requestMatchers("/file/**").permitAll() // 파일 정보 진입 허용
                 .requestMatchers("/classes/**").permitAll() // 반 정보 진입 허용
+                .requestMatchers("/classBook/**").permitAll() // 반 - 책 정보 진입 허용
                 .anyRequest().authenticated()); // 나머지 경로는 인증 필요
 
         // jwt 필터 처리 적용
 
src/main/java/com/takensoft/ai_lms/lms/class_book/dao/ClassBookDAO.java (added)
+++ src/main/java/com/takensoft/ai_lms/lms/class_book/dao/ClassBookDAO.java
@@ -0,0 +1,22 @@
+package com.takensoft.ai_lms.lms.class_book.dao;
+
+
+import com.takensoft.ai_lms.lms.class_book.vo.ClassBookVO;
+import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
+
+/**
+ * @author  : 박세훈
+ * since   : 2024.07.20
+ *
+ *  class - book관련 Mapper
+ */
+
+@Mapper("classBookDAO")
+public interface ClassBookDAO {
+
+    // 책 등록
+    int registerBook(ClassBookVO classBookVO) throws Exception;
+
+    // 책 삭제
+    int deleteClassBook(ClassBookVO classBookVO) throws Exception;
+}
 
src/main/java/com/takensoft/ai_lms/lms/class_book/service/ClassBookService.java (added)
+++ src/main/java/com/takensoft/ai_lms/lms/class_book/service/ClassBookService.java
@@ -0,0 +1,20 @@
+package com.takensoft.ai_lms.lms.class_book.service;
+
+import com.takensoft.ai_lms.lms.class_book.vo.ClassBookVO;
+
+
+/**
+ * @author  : 박세훈
+ * since   : 2024.07.20
+ *
+ *  class - book관련 Service
+ */
+
+public interface ClassBookService {
+
+    // 책 등록
+    int registerBook(ClassBookVO classBookVO) throws Exception;
+
+    // 책 삭제
+    int deleteClassBook(ClassBookVO classBookVO) throws Exception;
+}
 
src/main/java/com/takensoft/ai_lms/lms/class_book/service/Impl/ClassBookServiceImpl.java (added)
+++ src/main/java/com/takensoft/ai_lms/lms/class_book/service/Impl/ClassBookServiceImpl.java
@@ -0,0 +1,32 @@
+package com.takensoft.ai_lms.lms.class_book.service.Impl;
+
+
+import com.takensoft.ai_lms.lms.class_book.dao.ClassBookDAO;
+import com.takensoft.ai_lms.lms.class_book.service.ClassBookService;
+import com.takensoft.ai_lms.lms.class_book.vo.ClassBookVO;
+import lombok.RequiredArgsConstructor;
+import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
+import org.springframework.stereotype.Service;
+
+
+/**
+ * @author  : 박세훈
+ * since   : 2024.07.20
+ *
+ *  class - book관련 ServiceImpl
+ */
+@Service("classBookService")
+@RequiredArgsConstructor
+public class ClassBookServiceImpl extends EgovAbstractServiceImpl implements ClassBookService {
+
+    private final ClassBookDAO classBookDAO;
+
+    @Override
+    public int registerBook(ClassBookVO classBookVO) throws Exception {
+        return classBookDAO.registerBook(classBookVO);
+    }
+    @Override
+    public int deleteClassBook(ClassBookVO classBookVO) throws Exception {
+        return classBookDAO.deleteClassBook(classBookVO);
+    }
+}
 
src/main/java/com/takensoft/ai_lms/lms/class_book/vo/ClassBookVO.java (added)
+++ src/main/java/com/takensoft/ai_lms/lms/class_book/vo/ClassBookVO.java
@@ -0,0 +1,20 @@
+package com.takensoft.ai_lms.lms.class_book.vo;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@Getter
+@Setter
+@AllArgsConstructor
+@NoArgsConstructor
+public class ClassBookVO {
+    // 반 아이디
+    private String sclsId;
+
+    // 책 아이디
+    private String bookId;
+
+}
 
src/main/java/com/takensoft/ai_lms/lms/class_book/web/ClassBookController.java (added)
+++ src/main/java/com/takensoft/ai_lms/lms/class_book/web/ClassBookController.java
@@ -0,0 +1,67 @@
+package com.takensoft.ai_lms.lms.class_book.web;
+
+import com.takensoft.ai_lms.lms.class_book.service.ClassBookService;
+import com.takensoft.ai_lms.lms.class_book.vo.ClassBookVO;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.HashMap;
+
+@RestController
+@RequiredArgsConstructor
+@RequestMapping(value = "/classBook")
+public class ClassBookController {
+
+    private final ClassBookService classBookService;
+
+    /**
+     * @author  박세훈
+     * @since   2024.07.29
+     * param   ClassBookDAO
+     * @return
+     * @throws  Exception
+     *
+     * 반 책 등록
+     */
+    @PostMapping("/register.json")
+    public String registerBook(@RequestBody ClassBookVO classBookVO) throws Exception {
+        try {
+            int result = classBookService.registerBook(classBookVO);
+            if (result > 0) {
+                return "success";
+            } else {
+                return "fail";
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            return "Error";
+        }
+    }
+
+
+    /**
+     * @author  박세훈
+     * @since   2024.07.29
+     * param   ClassBookDAO
+     * @return
+     * @throws  Exception
+     *
+     * 반 책 삭제
+     */
+    @DeleteMapping("/deleteClassBook.json")
+    public String deleteClassBook(@RequestBody ClassBookVO classBookVO) throws Exception {
+        try {
+            int result = classBookService.deleteClassBook(classBookVO);
+            System.out.println("result = " + result);
+            if (result > 0) {
+                return "success";
+            } else {
+                return "fail";
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            return "Error";
+        }
+    }
+
+}
 
src/main/resources/mybatis/mapper/lms/class_book-SQL.xml (added)
+++ src/main/resources/mybatis/mapper/lms/class_book-SQL.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.takensoft.ai_lms.lms.class_book.dao.ClassBookDAO">
+
+
+    <resultMap id="classBookMap" type="ClassBookVO" >
+        <result property="sclsId" column="scls_id"/>
+        <result property="sclsNm" column="scls_nm"/>
+    </resultMap>
+
+    <!--
+         작성자 : 박세훈
+         작성일 : 2024.07.26
+         내 용 : 반에 책 등록
+     -->
+    <insert id="registerBook" parameterType="String" >
+        INSERT INTO class_book( book_id,
+                                scls_id
+        ) VALUES ( #{bookId},
+                    #{sclsId}
+        );
+    </insert>
+
+    <!--
+         작성자 : 박세훈
+         작성일 : 2024.07.26
+         내 용 : 반에 등록 된 책 삭제
+     -->
+    <delete id="deleteClassBook" parameterType="String">
+        DELETE FROM class_book
+        WHERE
+            book_id = #{bookId} AND 
+            scls_id = #{sclsId}
+    </delete>
+
+</mapper>(No newline at end of file)
Add a comment
List