구자현 구자현 2024-07-29
240729 구자현 로드맵 CRUD 추가 및 교재 CRUD 수정
@5006c47d5fb63a0041e497cdf5b54fad3b9f37c1
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
@@ -70,6 +70,7 @@
                 .requestMatchers("/file/**").permitAll() // 파일 정보 진입 허용
                 .requestMatchers("/classes/**").permitAll() // 반 정보 진입 허용
                 .requestMatchers("/classBook/**").permitAll() // 반 - 책 정보 진입 허용
+                .requestMatchers("/unitLearning/**").permitAll() // 로드맵 정보 진입 허용
                 .requestMatchers("/unit/**").permitAll()
                 .requestMatchers("/photo/**").permitAll()
                 .requestMatchers("/wordbook/**").permitAll()
src/main/java/com/takensoft/ai_lms/lms/book/vo/BookVO.java
--- src/main/java/com/takensoft/ai_lms/lms/book/vo/BookVO.java
+++ src/main/java/com/takensoft/ai_lms/lms/book/vo/BookVO.java
@@ -16,6 +16,7 @@
 @NoArgsConstructor
 @AllArgsConstructor
 public class BookVO {
+
     // 교재 아이디
     private String book_id;
     // 교재 제목
src/main/java/com/takensoft/ai_lms/lms/book/web/BookController.java
--- src/main/java/com/takensoft/ai_lms/lms/book/web/BookController.java
+++ src/main/java/com/takensoft/ai_lms/lms/book/web/BookController.java
@@ -21,57 +21,58 @@
     private final BookServiceImpl bookServiceImpl;
 
     /**
-     * @author  : 구자현
-     * @since   : 2024.07.25
+     * @author : 구자현
+     * @since : 2024.07.25
      *
      * 전체 교재 목록 출력
      */
-    @GetMapping
+    @GetMapping("/findAll.json")
     public List<BookVO> getAllBooks() {
         return bookServiceImpl.getAllBooks();
     }
 
     /**
-     * @author  : 구자현
-     * @since   : 2024.07.25
+     * @author : 구자현
+     * @since : 2024.07.25
      *
      * 책의 상세 정보
      */
-    @GetMapping("/{book_id}")
-    public BookVO getBookById(@PathVariable String book_id) {
-        return bookServiceImpl.getBookById(book_id);
+    @GetMapping("/find.json")
+    public BookVO getBookById(@RequestBody BookVO bookVO) {
+        return bookServiceImpl.getBookById(bookVO.getBook_id());
     }
 
     /**
-     * @author  : 구자현
-     * @since   : 2024.07.25
+     * @author : 구자현
+     * @since : 2024.07.25
      *
      * 교재 등록
      */
-    @PostMapping
+    @PostMapping("/insert.json")
     public void insertBook(@RequestBody BookVO book) {
         bookServiceImpl.insertBook(book);
     }
 
     /**
-     * @author  : 구자현
-     * @since   : 2024.07.25
+     * @author : 구자현
+     * @since : 2024.07.25
      *
      * 교재 제목 수정
      */
-    @PutMapping
+    @PutMapping("/update.json")
     public void updateBook(@RequestBody BookVO book) {
         bookServiceImpl.updateBook(book);
     }
 
     /**
-     * @author  : 구자현
-     * @since   : 2024.07.25
+     * @author : 구자현
+     * @since : 2024.07.25
      *
      * 교재 삭제
      */
-    @DeleteMapping("/{book_id}")
-    public void deleteBook(@PathVariable String book_id) {
-        bookServiceImpl.deleteBook(book_id);
+    @DeleteMapping("/delete.json")
+    public void deleteBook(@RequestBody BookVO bookVO) {
+        bookServiceImpl.deleteBook(bookVO.getBook_id());
     }
+
 }
(No newline at end of file)
 
src/main/java/com/takensoft/ai_lms/lms/unit_learning/dao/UnitLearningDAO.java (added)
+++ src/main/java/com/takensoft/ai_lms/lms/unit_learning/dao/UnitLearningDAO.java
@@ -0,0 +1,56 @@
+package com.takensoft.ai_lms.lms.unit_learning.dao;
+
+import com.takensoft.ai_lms.lms.unit_learning.vo.UnitLearningVO;
+import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
+
+import java.util.List;
+
+/**
+ * @author  : 구자현
+ * @since   : 2024.07.26
+ *
+ * 로드맵 관련 Mapper
+ */
+@Mapper("unitLearningDAO")
+public interface UnitLearningDAO {
+
+    /**
+     * @author  : 구자현
+     * @since   : 2024.07.26
+     *
+     * 전체 로드맵 목록 출력
+     */
+    List<UnitLearningVO> getAllUnitLearning();
+
+    /**
+     * @author  : 구자현
+     * @since   : 2024.07.26
+     *
+     * 로드맵의 상세 정보
+     */
+    UnitLearningVO getUnitLearningBySeq(int seq);
+
+    /**
+     * @author  : 구자현
+     * @since   : 2024.07.26
+     *
+     * 로드맵 등록
+     */
+    void insertUnitLearning(UnitLearningVO scheduleVO);
+
+    /**
+     * @author  : 구자현
+     * @since   : 2024.07.26
+     *
+     * 로드맵 순서 수정
+     */
+    void updateUnitLearning(UnitLearningVO scheduleVO);
+
+    /**
+     * @author  : 구자현
+     * @since   : 2024.07.26
+     *
+     * 로드맵 삭제
+     */
+    void deleteUnitLearning(int seq);
+}
 
src/main/java/com/takensoft/ai_lms/lms/unit_learning/service/Impl/UnitLearningServiceImpl.java (added)
+++ src/main/java/com/takensoft/ai_lms/lms/unit_learning/service/Impl/UnitLearningServiceImpl.java
@@ -0,0 +1,76 @@
+package com.takensoft.ai_lms.lms.unit_learning.service.Impl;
+
+import com.takensoft.ai_lms.lms.unit_learning.dao.UnitLearningDAO;
+import com.takensoft.ai_lms.lms.unit_learning.service.UnitLearningService;
+import com.takensoft.ai_lms.lms.unit_learning.vo.UnitLearningVO;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import java.util.List;
+
+/**
+ * @author  : 구자현
+ * @since   : 2024.07.26
+ *
+ * 로드맵 관련 Mapper
+ */
+@Service
+@RequiredArgsConstructor
+public class UnitLearningServiceImpl implements UnitLearningService {
+
+    private final UnitLearningDAO unitLearningDAO;
+
+    /**
+     * @author  : 구자현
+     * @since   : 2024.07.26
+     *
+     * 전체 로드맵 목록 출력
+     */
+    @Override
+    public List<UnitLearningVO> getAllUnitLearning() {
+        return unitLearningDAO.getAllUnitLearning();
+    };
+
+    /**
+     * @author  : 구자현
+     * @since   : 2024.07.26
+     *
+     * 로드맵의 상세 정보
+     */
+    @Override
+    public UnitLearningVO getUnitLearningBySeq(int seq) {
+        return unitLearningDAO.getUnitLearningBySeq(seq);
+    };
+
+    /**
+     * @author  : 구자현
+     * @since   : 2024.07.26
+     *
+     * 로드맵 등록
+     */
+    @Override
+    public void insertUnitLearning(UnitLearningVO unitLearningVO) {
+        unitLearningDAO.insertUnitLearning(unitLearningVO);
+    };
+
+    /**
+     * @author  : 구자현
+     * @since   : 2024.07.26
+     *
+     * 로드맵 순서 수정
+     */
+    @Override
+    public void updateUnitLearning(UnitLearningVO unitLearningVO) {
+        unitLearningDAO.updateUnitLearning(unitLearningVO);
+    };
+
+    /**
+     * @author  : 구자현
+     * @since   : 2024.07.26
+     *
+     * 로드맵 삭제
+     */
+    @Override
+    public void deleteUnitLearning(int seq) {
+        unitLearningDAO.deleteUnitLearning(seq);
+    };
+}
 
src/main/java/com/takensoft/ai_lms/lms/unit_learning/service/UnitLearningService.java (added)
+++ src/main/java/com/takensoft/ai_lms/lms/unit_learning/service/UnitLearningService.java
@@ -0,0 +1,54 @@
+package com.takensoft.ai_lms.lms.unit_learning.service;
+
+import com.takensoft.ai_lms.lms.unit_learning.vo.UnitLearningVO;
+
+import java.util.List;
+
+/**
+ * @author  : 구자현
+ * @since   : 2024.07.26
+ *
+ * 로드맵 관련 Service 클래스
+ */
+public interface UnitLearningService {
+
+    /**
+     * @author  : 구자현
+     * @since   : 2024.07.26
+     *
+     * 전체 로드맵 목록 출력
+     */
+    List<UnitLearningVO> getAllUnitLearning();
+
+    /**
+     * @author  : 구자현
+     * @since   : 2024.07.26
+     *
+     * 로드맵의 상세 정보
+     */
+    UnitLearningVO getUnitLearningBySeq(int seq);
+
+    /**
+     * @author  : 구자현
+     * @since   : 2024.07.26
+     *
+     * 로드맵 등록
+     */
+    void insertUnitLearning(UnitLearningVO unitLearningVO);
+
+    /**
+     * @author  : 구자현
+     * @since   : 2024.07.26
+     *
+     * 로드맵 순서 수정
+     */
+    void updateUnitLearning(UnitLearningVO unitLearningVO);
+
+    /**
+     * @author  : 구자현
+     * @since   : 2024.07.26
+     *
+     * 로드맵 삭제
+     */
+    void deleteUnitLearning(int seq);
+}
 
src/main/java/com/takensoft/ai_lms/lms/unit_learning/vo/UnitLearningVO.java (added)
+++ src/main/java/com/takensoft/ai_lms/lms/unit_learning/vo/UnitLearningVO.java
@@ -0,0 +1,36 @@
+package com.takensoft.ai_lms.lms.unit_learning.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+/**
+ * @author  : 구자현
+ * @since   : 2024.07.26
+ *
+ * 로드맵 관련 VO
+ */
+@Setter
+@Getter
+@NoArgsConstructor
+@AllArgsConstructor
+public class UnitLearningVO {
+    // 단원 아이디
+    private String unit_id;
+
+    // 문제 아이디
+    private String prblm_id;
+
+    // 단어 관리 아이디
+    private String wd_book_id;
+
+    // 지문 아이디
+    private String text_id;
+
+    // 단원 평가 아이디
+    private String eval_id;
+
+    // 순서
+    private int seq;
+}
 
src/main/java/com/takensoft/ai_lms/lms/unit_learning/web/UnitLearningController.java (added)
+++ src/main/java/com/takensoft/ai_lms/lms/unit_learning/web/UnitLearningController.java
@@ -0,0 +1,71 @@
+package com.takensoft.ai_lms.lms.unit_learning.web;
+
+import com.takensoft.ai_lms.lms.unit_learning.service.Impl.UnitLearningServiceImpl;
+import com.takensoft.ai_lms.lms.unit_learning.vo.UnitLearningVO;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/unitLearning")
+public class UnitLearningController {
+
+    private final UnitLearningServiceImpl unitLearningServiceImpl;
+
+    /**
+     * @author  : 구자현
+     * @since   : 2024.07.26
+     *
+     * 전체 로드맵 목록 출력
+     */
+    @GetMapping("/findAll.json")
+    public List<UnitLearningVO> getAllUnitLearning(){
+        return unitLearningServiceImpl.getAllUnitLearning();
+    }
+
+    /**
+     * @author  : 구자현
+     * @since   : 2024.07.26
+     *
+     * 로드맵의 상세 정보
+     */
+    @GetMapping("/find.json")
+    public UnitLearningVO getUnitLearningBySeq(@RequestBody UnitLearningVO unitLearningVO){
+        return unitLearningServiceImpl.getUnitLearningBySeq(unitLearningVO.getSeq());
+    }
+
+    /**
+     * @author  : 구자현
+     * @since   : 2024.07.26
+     *
+     * 로드맵 등록
+     */
+    @PostMapping("/insert.json")
+    public void insertUnitLearning(@RequestBody UnitLearningVO unitLearningVO) {
+        unitLearningServiceImpl.insertUnitLearning(unitLearningVO);
+    }
+
+    /**
+     * @author  : 구자현
+     * @since   : 2024.07.26
+     *
+     * 로드맵 순서 수정
+     */
+    @PutMapping("/update.json")
+    public void updateUnitLearning(@RequestBody UnitLearningVO unitLearningVO) {
+        unitLearningServiceImpl.updateUnitLearning(unitLearningVO);
+    }
+
+    /**
+     * @author  : 구자현
+     * @since   : 2024.07.26
+     *
+     * 로드맵 삭제
+     */
+    @DeleteMapping("/delete.json")
+    public void deleteUnitLearning(@RequestBody UnitLearningVO unitLearningVO) {
+        unitLearningServiceImpl.deleteUnitLearning(unitLearningVO.getSeq());
+    }
+}
 
src/main/resources/mybatis/mapper/lms/unit_learning-SQL.xml (added)
+++ src/main/resources/mybatis/mapper/lms/unit_learning-SQL.xml
@@ -0,0 +1,97 @@
+<?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.unit_learning.dao.UnitLearningDAO">
+
+    <resultMap id="unitLearningMap" type="UnitLearningVO">
+        <result property="unit_id" column="unit_id"/>
+        <result property="prblm_id" column="prblm_id"/>
+        <result property="wd_book_id" column="wd_book_id"/>
+        <result property="text_id" column="text_id"/>
+        <result property="eval_id" column="eval_id"/>
+        <result property="seq" column="seq"/>
+    </resultMap>
+
+    <!--
+        작 성 자 : 구자현
+        작 성 일 : 2024.07.26
+        내   용 : 전체 로드맵 목록 출력
+    -->
+    <select id="getAllUnitLearning" resultMap="unitLearningMap">
+        SELECT
+            unit_id,
+            prblm_id,
+            wd_book_id,
+            text_id,
+            eval_id,
+            seq
+         FROM unit_learning
+    </select>
+
+    <!--
+        작 성 자 : 구자현
+        작 성 일 : 2024.07.26
+        내   용 : 로드맵의 상세 정보
+    -->
+    <select id="getUnitLearningBySeq" parameterType="int" resultMap="unitLearningMap">
+        SELECT
+            unit_id,
+            prblm_id,
+            wd_book_id,
+            text_id,
+            eval_id,
+            seq
+         FROM unit_learning
+        WHERE seq = #{seq}
+    </select>
+
+    <!--
+        작 성 자 : 구자현
+        작 성 일 : 2024.07.26
+        내   용 : 로드맵 등록
+    -->
+    <insert id="insertUnitLearning" parameterType="unitLearningVO">
+        INSERT INTO unit_learning
+            (
+            unit_id,
+            prblm_id,
+            wd_book_id,
+            text_id,
+            eval_id,
+            seq
+            )
+            VALUES
+            (
+            #{unit_id},
+            #{prblm_id},
+            #{wd_book_id},
+            #{text_id},
+            #{eval_id},
+            #{seq}
+            )
+    </insert>
+
+    <!--
+        작 성 자 : 구자현
+        작 성 일 : 2024.07.26
+        내   용 : 로드맵 수정
+    -->
+    <update id="updateUnitLearning" parameterType="unitLearningVO">
+        UPDATE unit_learning
+           SET seq = #{seq}
+         WHERE unit_id = #{unit_id}
+           AND prblm_id = #{prblm_id}
+           AND wd_book_id = #{wd_book_id}
+           AND text_id = #{text_id}
+           AND eval_id = #{eval_id}
+    </update>
+
+    <!--
+        작 성 자 : 구자현
+        작 성 일 : 2024.07.26
+        내   용 : 로드맵 삭제
+    -->
+    <delete id="deleteUnitLearning" parameterType="int">
+        DELETE FROM unit_learning
+         WHERE seq = #{seq}
+    </delete>
+</mapper>(No newline at end of file)
Add a comment
List