guntaek 07-31
Merge remote-tracking branch 'origin/master'
# Conflicts:
#	src/main/java/com/takensoft/ai_lms/common/confing/SecurityConfig.java
@5cfc75742b2145ebbfc2b8c985bdfec91adb0ebd
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
@@ -74,6 +74,14 @@
                 .requestMatchers("/photo/**").permitAll() // 사진 정보 진입 허용
                 .requestMatchers("/photoMng/**").permitAll() // 사진첩 정보 진입 허용
                 .requestMatchers("/wordbook/**").permitAll()
+                .requestMatchers("/problem/**").permitAll() // 문제 정보 진입 허용
+                .requestMatchers("/evaluation/**").permitAll() // 단원 평가 정보 진입 허용
+                .requestMatchers("/evalProblem/**").permitAll() // 단원 평가 문제 진입 허용
+                .requestMatchers("/unitLearning/**").permitAll() // 로드맵 정보 진입 허용
+                .requestMatchers("/unit/**").permitAll()
+                .requestMatchers("/photo/**").permitAll()
+                .requestMatchers("/wordbook/**").permitAll() // 단어장 정보 진입 허용
+                .requestMatchers("/word/**").permitAll() // 단어 정보 진입 허용
                 .requestMatchers("/survey/**").permitAll()
                 .anyRequest().authenticated()); // 나머지 경로는 인증 필요
 
src/main/java/com/takensoft/ai_lms/common/idgen/context/ContextIdgen.java
--- src/main/java/com/takensoft/ai_lms/common/idgen/context/ContextIdgen.java
+++ src/main/java/com/takensoft/ai_lms/common/idgen/context/ContextIdgen.java
@@ -228,5 +228,16 @@
         return idgenServiceImpl;
     }
 
+    // 설문 조사 상세 정보
+    @Bean(name = "surveyDetailIdgn")
+    public IdgenService surveyDetail() {
+        IdgenService idgenServiceImpl = new IdgenService();
+        idgenServiceImpl.setCipers(15);
+        idgenServiceImpl.setFillChar('0');
+        idgenServiceImpl.setPrefix("SURVEY_DETAIL_");
+        idgenServiceImpl.setTblNm("SURVEY_DETAIL_ID");
+        return idgenServiceImpl;
+    }
+
 
 }
(파일 끝에 줄바꿈 문자 없음)
 
src/main/java/com/takensoft/ai_lms/lms/board/vo/BoardClassVO.java (added)
+++ src/main/java/com/takensoft/ai_lms/lms/board/vo/BoardClassVO.java
@@ -0,0 +1,34 @@
+package com.takensoft.ai_lms.lms.board.vo;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @author  : 박세훈
+ * since   : 2024.07.25
+ *
+ * 게시판 class 관련 VO
+ */
+
+
+
+@Getter
+@Setter
+@AllArgsConstructor
+@NoArgsConstructor
+public class BoardClassVO {
+
+    // 반 아이디
+    private String sclsId;
+
+    //반 이름
+    private String sclsNm;
+
+    // 게시판 테이블과 연결
+    private List<BoardVO> board;
+}
 
src/main/java/com/takensoft/ai_lms/lms/board/vo/BoardUserVO.java (added)
+++ src/main/java/com/takensoft/ai_lms/lms/board/vo/BoardUserVO.java
@@ -0,0 +1,34 @@
+package com.takensoft.ai_lms.lms.board.vo;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @author  : 박세훈
+ * since   : 2024.07.25
+ *
+ * 게시판 user 관련 VO
+ */
+
+
+
+@Getter
+@Setter
+@AllArgsConstructor
+@NoArgsConstructor
+public class BoardUserVO {
+
+    // 사용자 아이디
+    private String userId;
+
+    // 사용자 이름
+    private String userNm;
+
+    // 반 테이블과 연결
+    private List<BoardClassVO> boardClass;
+}
src/main/java/com/takensoft/ai_lms/lms/board/vo/BoardVO.java
--- src/main/java/com/takensoft/ai_lms/lms/board/vo/BoardVO.java
+++ src/main/java/com/takensoft/ai_lms/lms/board/vo/BoardVO.java
@@ -32,15 +32,15 @@
     // 게시판 아이디
     private String bbsId;
     // 게시판 제목
-    private String bbsTitle;
+    private String bbsTtl;
     // 게시판 카테고리
-    private String bbsCategory;
+    private String bbsCls;
     // 게시판 내용
-    private String bbsContents;
+    private String bbsCnt;
     // 게시판 등록 날짜
-    private String bbsTime;
+    private String bbsTm;
     // 파일 관리 아이디
-    private String fileManageId;
+    private String fileMngId;
     // 반 아이디
     private String sclsId;
 
src/main/java/com/takensoft/ai_lms/lms/board/web/BoardController.java
--- src/main/java/com/takensoft/ai_lms/lms/board/web/BoardController.java
+++ src/main/java/com/takensoft/ai_lms/lms/board/web/BoardController.java
@@ -59,15 +59,9 @@
     public ResponseEntity<?> findAllBoard(@RequestBody HashMap<String, Object> params) throws Exception {
         HashMap<String, Object> result = new HashMap<>();
 
-        // 페이지 번호와 페이지 크기를 파라미터로 전달
-        int page = Integer.parseInt(params.get("page").toString());
-        int pageSize = Integer.parseInt(params.get("pageSize").toString());
-
-
         // 전체 게시물 수 조회 및 추가
-        int totalBoard = boardService.boardCount(params);
-        result.put("totalBoard", totalBoard);
-        result.put("list", boardService.findAllBoard(params));
+        result.put("totalBoard", boardService.boardCount(params));
+        result.put("result", boardService.findAllBoard(params));
 
 
         return new ResponseEntity<>(result, HttpStatus.OK);
@@ -84,7 +78,7 @@
     public ResponseEntity<?> findByBoardId(@RequestBody HashMap<String, Object> params) throws Exception {
         HashMap<String, Object> result = new HashMap<>();
 
-        result.put("list", boardService.findByBoardId(params));
+        result.put("result", boardService.findByBoardId(params));
         return new ResponseEntity<>(result, HttpStatus.OK);
     }
     /**
@@ -93,7 +87,7 @@
      *
      * 게시글 수정
      */
-    @PutMapping("/update.json")
+    @PostMapping("/update.json")
     public String updateBoard(@RequestBody BoardVO boardVO) throws Exception {
         try {
             int result = boardService.updateBoard(boardVO);
@@ -113,7 +107,7 @@
      *
      * 게시글 삭제
      */
-    @DeleteMapping("/delete.json")
+    @PostMapping("/delete.json")
     public String deleteBoard(@RequestBody Map<String, String> request) throws Exception {
         try{
             String bbsId = request.get("bbsId");
@@ -141,7 +135,7 @@
         HashMap<String, Object> result = new HashMap<>();
 
         List<HashMap<String, Object>> boardList = boardService.searchBoard(params);
-        result.put("list", boardList);
+        result.put("result", boardList);
         return new ResponseEntity<>(result, HttpStatus.OK);
     }
 
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());
     }
+
 }
(파일 끝에 줄바꿈 문자 없음)
src/main/java/com/takensoft/ai_lms/lms/class_book/dao/ClassBookDAO.java
--- src/main/java/com/takensoft/ai_lms/lms/class_book/dao/ClassBookDAO.java
+++ src/main/java/com/takensoft/ai_lms/lms/class_book/dao/ClassBookDAO.java
@@ -18,7 +18,7 @@
 public interface ClassBookDAO {
 
     // 교재 등록
-    int registerBook(ClassBookVO classBookVO) throws Exception;
+    void registerBook(List<ClassBookVO> classBookVO) throws Exception;
 
     // 교재 삭제
     int deleteClassBook(ClassBookVO classBookVO) throws Exception;
src/main/java/com/takensoft/ai_lms/lms/class_book/service/ClassBookService.java
--- src/main/java/com/takensoft/ai_lms/lms/class_book/service/ClassBookService.java
+++ src/main/java/com/takensoft/ai_lms/lms/class_book/service/ClassBookService.java
@@ -16,7 +16,7 @@
 public interface ClassBookService {
 
     // 교재 등록
-    int registerBook(ClassBookVO classBookVO) throws Exception;
+    void registerBook(List<ClassBookVO> classBookVO) throws Exception;
 
     // 교재 삭제
     int deleteClassBook(ClassBookVO classBookVO) throws Exception;
src/main/java/com/takensoft/ai_lms/lms/class_book/service/Impl/ClassBookServiceImpl.java
--- src/main/java/com/takensoft/ai_lms/lms/class_book/service/Impl/ClassBookServiceImpl.java
+++ src/main/java/com/takensoft/ai_lms/lms/class_book/service/Impl/ClassBookServiceImpl.java
@@ -26,8 +26,8 @@
 
     // 교재 등록
     @Override
-    public int registerBook(ClassBookVO classBookVO) throws Exception {
-        return classBookDAO.registerBook(classBookVO);
+    public void registerBook(List<ClassBookVO> classBookVO) throws Exception {
+        classBookDAO.registerBook(classBookVO);
     }
 
     // 교재 삭제
src/main/java/com/takensoft/ai_lms/lms/class_book/web/ClassBookController.java
--- src/main/java/com/takensoft/ai_lms/lms/class_book/web/ClassBookController.java
+++ src/main/java/com/takensoft/ai_lms/lms/class_book/web/ClassBookController.java
@@ -8,6 +8,7 @@
 import org.springframework.web.bind.annotation.*;
 
 import java.util.HashMap;
+import java.util.List;
 
 @RestController
 @RequiredArgsConstructor
@@ -26,18 +27,9 @@
      * 반 교재 등록
      */
     @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";
-        }
+    public ResponseEntity<Void> registerBook(@RequestBody List<ClassBookVO> classBookVO) throws Exception {
+        classBookService.registerBook(classBookVO);
+        return new ResponseEntity<>(HttpStatus.OK);
     }
 
 
@@ -54,7 +46,7 @@
     public ResponseEntity<?> findByBookId(@RequestBody HashMap<String, Object> params) throws Exception {
         HashMap<String, Object> result = new HashMap<>();
 
-        result.put("list", classBookService.findByBookId(params));
+        result.put("result", classBookService.findByBookId(params));
 
         return new ResponseEntity<>(result, HttpStatus.OK);
     }
@@ -66,14 +58,13 @@
      * param   ClassBookDAO
      * @return
      * @throws  Exception
-     *
+
      * 반 교재 삭제
      */
-    @DeleteMapping("/delete.json")
+    @PostMapping("/delete.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 {
src/main/java/com/takensoft/ai_lms/lms/classes/web/ClassController.java
--- src/main/java/com/takensoft/ai_lms/lms/classes/web/ClassController.java
+++ src/main/java/com/takensoft/ai_lms/lms/classes/web/ClassController.java
@@ -149,7 +149,7 @@
      *
      * 반 삭제
      */
-    @DeleteMapping("/deleteClass.json")
+    @PostMapping("/deleteClass.json")
     @Operation(summary = "반 삭제")
     public String deleteClass(@RequestBody Map<String, Object> params) throws Exception{
         Gson gson = new Gson();
 
src/main/java/com/takensoft/ai_lms/lms/eval_problem/dao/EvalProblemDAO.java (added)
+++ src/main/java/com/takensoft/ai_lms/lms/eval_problem/dao/EvalProblemDAO.java
@@ -0,0 +1,32 @@
+package com.takensoft.ai_lms.lms.eval_problem.dao;
+
+import com.takensoft.ai_lms.lms.eval_problem.vo.EvalProblemVO;
+import com.takensoft.ai_lms.lms.evaluation.vo.EvaluationVO;
+import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
+
+/**
+ * @author 권지수
+ * @since 2024.07.29
+ *
+ * 단원 평가 문제 DAO 클래스
+ */
+
+@Mapper("evalProblemDAO")
+public interface EvalProblemDAO {
+
+    /**
+     * @author 권지수
+     * @since 2024.07.29
+     *
+     * 단원 평가 문제 정보 입력
+     */
+    int insertEvalProblem(EvalProblemVO evalProblemVO) throws Exception;
+
+    /**
+     * @author 권지수
+     * @since 2024.07.30
+     *
+     * 특정 단원의 문제 수 조회
+     */
+    int unitProblemNum(EvalProblemVO evalProblemVO) throws Exception;
+}
 
src/main/java/com/takensoft/ai_lms/lms/eval_problem/service/EvalProblemService.java (added)
+++ src/main/java/com/takensoft/ai_lms/lms/eval_problem/service/EvalProblemService.java
@@ -0,0 +1,28 @@
+package com.takensoft.ai_lms.lms.eval_problem.service;
+
+import com.takensoft.ai_lms.lms.eval_problem.vo.EvalProblemVO;
+
+/**
+ * @author 권지수
+ * @since 2024.07.29
+ *
+ * 단원 평가 문제 Service 클래스
+ */
+public interface EvalProblemService {
+
+    /**
+     * @author 권지수
+     * @since 2024.07.29
+     *
+     * 단원 평가 문제 정보 입력
+     */
+    int insertEvalProblem(EvalProblemVO evalProblemVO) throws Exception;
+
+    /**
+     * @author 권지수
+     * @since 2024.07.30
+     *
+     * 특정 단원의 문제 수 조회
+     */
+    int unitProblemNum(EvalProblemVO evalProblemVO) throws Exception;
+}
 
src/main/java/com/takensoft/ai_lms/lms/eval_problem/service/Impl/EvalProblemImpl.java (added)
+++ src/main/java/com/takensoft/ai_lms/lms/eval_problem/service/Impl/EvalProblemImpl.java
@@ -0,0 +1,42 @@
+package com.takensoft.ai_lms.lms.eval_problem.service.Impl;
+
+import com.takensoft.ai_lms.lms.eval_problem.dao.EvalProblemDAO;
+import com.takensoft.ai_lms.lms.eval_problem.service.EvalProblemService;
+import com.takensoft.ai_lms.lms.eval_problem.vo.EvalProblemVO;
+import lombok.RequiredArgsConstructor;
+import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author 권지수
+ * @since 2024.07.29
+ *
+ * 단원 평가 문제 ServiceImpl 클래스
+ */
+
+@Service("evalProblemService")
+@RequiredArgsConstructor
+public class EvalProblemImpl extends EgovAbstractServiceImpl implements EvalProblemService {
+
+    private final EvalProblemDAO evalProblemDAO;
+
+    /**
+     * @author 권지수
+     * @since 2024.07.29
+     *
+     * 단원 평가 문제 정보 입력
+     */
+    public int insertEvalProblem(EvalProblemVO evalProblemVO) throws Exception {
+        return evalProblemDAO.insertEvalProblem(evalProblemVO);
+    }
+
+    /**
+     * @author 권지수
+     * @since 2024.07.30
+     *
+     * 특정 단원의 문제 수 조회
+     */
+    public int unitProblemNum(EvalProblemVO evalProblemVO) throws Exception {
+        return evalProblemDAO.unitProblemNum(evalProblemVO);
+    }
+}
 
src/main/java/com/takensoft/ai_lms/lms/eval_problem/vo/EvalProblemVO.java (added)
+++ src/main/java/com/takensoft/ai_lms/lms/eval_problem/vo/EvalProblemVO.java
@@ -0,0 +1,17 @@
+package com.takensoft.ai_lms.lms.eval_problem.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@Getter
+@Setter
+@AllArgsConstructor
+@NoArgsConstructor
+public class EvalProblemVO {
+    // 단원 평가 아이디
+    private String evalId;
+    // 문제 아이디
+    private String prblmId;
+}
 
src/main/java/com/takensoft/ai_lms/lms/eval_problem/web/EvalProblemController.java (added)
+++ src/main/java/com/takensoft/ai_lms/lms/eval_problem/web/EvalProblemController.java
@@ -0,0 +1,55 @@
+package com.takensoft.ai_lms.lms.eval_problem.web;
+
+import com.takensoft.ai_lms.lms.eval_problem.service.EvalProblemService;
+import com.takensoft.ai_lms.lms.eval_problem.vo.EvalProblemVO;
+import com.takensoft.ai_lms.lms.evaluation.vo.EvaluationVO;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author 권지수
+ * @since 2024.07.29
+ *
+ * 단원 평가 Controller 클래스
+ */
+
+@RestController
+@RequiredArgsConstructor
+@Slf4j
+@RequestMapping(value = "/evalProblem")
+public class EvalProblemController {
+
+    private final EvalProblemService evalProblemService;
+
+    /**
+     * @author 권지수
+     * @since 2024.07.29
+     *
+     * 단원 평가 문제 입력
+     */
+    @PostMapping(path = "/insertEvalProblem.json")
+    public ResponseEntity<?> insertEvalProblem(@RequestBody EvalProblemVO evalProblemVO) throws Exception {
+        int result = evalProblemService.insertEvalProblem(evalProblemVO);
+
+        return new ResponseEntity<>(result, HttpStatus.OK);
+    }
+
+    /**
+     * @author 권지수
+     * @since 2024.07.30
+     *
+     * 특정 단원의 문제 수 조회
+     */
+    @PostMapping(path = "/unitProblemNum.json")
+    public ResponseEntity<?> unitProblemNum(@RequestBody EvalProblemVO evalProblemVO) throws Exception {
+        int result = evalProblemService.unitProblemNum(evalProblemVO);
+
+        return new ResponseEntity<>(result, HttpStatus.OK);
+    }
+}
src/main/java/com/takensoft/ai_lms/lms/evaluation/dao/EvaluationDAO.java
--- src/main/java/com/takensoft/ai_lms/lms/evaluation/dao/EvaluationDAO.java
+++ src/main/java/com/takensoft/ai_lms/lms/evaluation/dao/EvaluationDAO.java
@@ -1,4 +1,59 @@
 package com.takensoft.ai_lms.lms.evaluation.dao;
 
+import com.takensoft.ai_lms.lms.evaluation.vo.EvaluationVO;
+import com.takensoft.ai_lms.lms.problem.vo.SearchVO;
+import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
+
+import java.util.List;
+
+/**
+ * @author 권지수
+ * @since 2024.07.29
+ *
+ * 단원 평가 DAO 클래스
+ */
+
+@Mapper("evaluationDAO")
 public interface EvaluationDAO {
+
+    /**
+     * @author 권지수
+     * @since 2024.07.29
+     *
+     * 단원 평가 정보 입력
+     */
+    int insertEvaluation(EvaluationVO evaluationVO) throws Exception;
+
+    /**
+     * @author 권지수
+     * @since 2024.07.29
+     *
+     * 단원 평가 정보 조회
+     */
+    EvaluationVO evaluationInfo(EvaluationVO evaluationVO) throws Exception;
+
+    /**
+     * @author 권지수
+     * @since 2024.07.29
+     *
+     * 특정 단원 평가 정보 조회
+     */
+    List<EvaluationVO> evaluationUnitList(SearchVO searchVO) throws Exception;
+
+    /**
+     * @author 권지수
+     * @since 2024.07.29
+     *
+     * 단원 평가 정보 수정
+     */
+    int updateEvaluation(EvaluationVO evaluationVO) throws Exception;
+
+    /**
+     * @author 권지수
+     * @since 2024.07.29
+     *
+     * 단원 평가 정보 삭제
+     */
+    int deleteEvaluation(EvaluationVO evaluationVO) throws Exception;
+
 }
src/main/java/com/takensoft/ai_lms/lms/evaluation/service/EvaluationService.java
--- src/main/java/com/takensoft/ai_lms/lms/evaluation/service/EvaluationService.java
+++ src/main/java/com/takensoft/ai_lms/lms/evaluation/service/EvaluationService.java
@@ -1,4 +1,58 @@
 package com.takensoft.ai_lms.lms.evaluation.service;
 
+import com.takensoft.ai_lms.lms.evaluation.vo.EvaluationVO;
+import com.takensoft.ai_lms.lms.problem.vo.SearchVO;
+import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
+
+import java.util.List;
+
+/**
+ * @author 권지수
+ * @since 2024.07.29
+ *
+ * 단원 평가 Service 클래스
+ */
+
 public interface EvaluationService {
+
+    /**
+     * @author 권지수
+     * @since 2024.07.29
+     *
+     * 단원 평가 정보 입력
+     */
+    int insertEvaluation(EvaluationVO evaluationVO) throws Exception;
+
+    /**
+     * @author 권지수
+     * @since 2024.07.29
+     *
+     * 단원 평가 정보 조회
+     */
+    EvaluationVO evaluationInfo(EvaluationVO evaluationVO) throws Exception;
+
+    /**
+     * @author 권지수
+     * @since 2024.07.29
+     *
+     * 특정 단원 평가 정보 조회
+     */
+    List<EvaluationVO> evaluationUnitList(SearchVO searchVO) throws Exception;
+
+    /**
+     * @author 권지수
+     * @since 2024.07.29
+     *
+     * 단원 평가 정보 수정
+     */
+    int updateEvaluation(EvaluationVO evaluationVO) throws Exception;
+
+    /**
+     * @author 권지수
+     * @since 2024.07.29
+     *
+     * 단원 평가 정보 삭제
+     */
+    int deleteEvaluation(EvaluationVO evaluationVO) throws Exception;
+
 }
 
src/main/java/com/takensoft/ai_lms/lms/evaluation/service/Impl/EvaluationService.java (deleted)
--- src/main/java/com/takensoft/ai_lms/lms/evaluation/service/Impl/EvaluationService.java
@@ -1,4 +0,0 @@
-package com.takensoft.ai_lms.lms.evaluation.service.Impl;
-
-public class EvaluationService {
-}
 
src/main/java/com/takensoft/ai_lms/lms/evaluation/service/Impl/EvaluationServiceImpl.java (added)
+++ src/main/java/com/takensoft/ai_lms/lms/evaluation/service/Impl/EvaluationServiceImpl.java
@@ -0,0 +1,81 @@
+package com.takensoft.ai_lms.lms.evaluation.service.Impl;
+
+import com.takensoft.ai_lms.common.idgen.service.IdgenService;
+import com.takensoft.ai_lms.lms.evaluation.dao.EvaluationDAO;
+import com.takensoft.ai_lms.lms.evaluation.service.EvaluationService;
+import com.takensoft.ai_lms.lms.evaluation.vo.EvaluationVO;
+import com.takensoft.ai_lms.lms.problem.vo.SearchVO;
+import lombok.RequiredArgsConstructor;
+import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @author 권지수
+ * @since 2024.07.29
+ *
+ * 단원 평가 ServiceImpl 클래스
+ */
+
+@Service("evaluationService")
+@RequiredArgsConstructor
+public class EvaluationServiceImpl extends EgovAbstractServiceImpl implements EvaluationService {
+
+    private final EvaluationDAO evaluationDAO;
+    private final IdgenService evalIdgn;
+
+    /**
+     * @author 권지수
+     * @since 2024.07.29
+     *
+     * 단원 평가 정보 입력
+     */
+    public int insertEvaluation(EvaluationVO evaluationVO) throws Exception {
+        String evaluationId = evalIdgn.getNextStringId();
+        evaluationVO.setEvalId(evaluationId);
+
+        return evaluationDAO.insertEvaluation(evaluationVO);
+    }
+
+    /**
+     * @author 권지수
+     * @since 2024.07.29
+     *
+     * 단원 평가 정보 조회
+     */
+    public EvaluationVO evaluationInfo(EvaluationVO evaluationVO) throws Exception {
+        return evaluationDAO.evaluationInfo(evaluationVO);
+    }
+
+    /**
+     * @author 권지수
+     * @since 2024.07.29
+     *
+     * 특정 단원 평가 정보 조회
+     */
+    public List<EvaluationVO> evaluationUnitList(SearchVO searchVO) throws Exception {
+        return evaluationDAO.evaluationUnitList(searchVO);
+    }
+
+    /**
+     * @author 권지수
+     * @since 2024.07.29
+     *
+     * 단원 평가 정보 수정
+     */
+    public int updateEvaluation(EvaluationVO evaluationVO) throws Exception {
+        return evaluationDAO.updateEvaluation(evaluationVO);
+    }
+
+    /**
+     * @author 권지수
+     * @since 2024.07.29
+     *
+     * 단원 평가 정보 삭제
+     */
+    public int deleteEvaluation(EvaluationVO evaluationVO) throws Exception {
+        return evaluationDAO.deleteEvaluation(evaluationVO);
+    }
+
+}
src/main/java/com/takensoft/ai_lms/lms/evaluation/vo/EvaluationVO.java
--- src/main/java/com/takensoft/ai_lms/lms/evaluation/vo/EvaluationVO.java
+++ src/main/java/com/takensoft/ai_lms/lms/evaluation/vo/EvaluationVO.java
@@ -1,4 +1,19 @@
 package com.takensoft.ai_lms.lms.evaluation.vo;
 
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@Getter
+@Setter
+@AllArgsConstructor
+@NoArgsConstructor
 public class EvaluationVO {
+    // 단원 평가 아이디
+    private String evalId;
+    // 단원 평가 유형
+    private String evalType;
+    // 단원 아이디
+    private String unitId;
 }
src/main/java/com/takensoft/ai_lms/lms/evaluation/web/EvaluationController.java
--- src/main/java/com/takensoft/ai_lms/lms/evaluation/web/EvaluationController.java
+++ src/main/java/com/takensoft/ai_lms/lms/evaluation/web/EvaluationController.java
@@ -1,4 +1,97 @@
 package com.takensoft.ai_lms.lms.evaluation.web;
 
+import com.takensoft.ai_lms.lms.evaluation.service.EvaluationService;
+import com.takensoft.ai_lms.lms.evaluation.vo.EvaluationVO;
+import com.takensoft.ai_lms.lms.problem.vo.ProblemVO;
+import com.takensoft.ai_lms.lms.problem.vo.SearchVO;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * @author 권지수
+ * @since 2024.07.29
+ *
+ * 단원 평가 Controller 클래스
+ */
+
+@RestController
+@RequiredArgsConstructor
+@Slf4j
+@RequestMapping(value = "/evaluation")
 public class EvaluationController {
+
+    private final EvaluationService evaluationService;
+
+    /**
+     * @author 권지수
+     * @since 2024.07.29
+     *
+     * 단원 평가 정보 입력
+     */
+    @PostMapping(path = "/insertEvaluation.json")
+    public ResponseEntity<?> insertEvaluation(@RequestBody EvaluationVO evaluationVO) throws Exception {
+        int result = evaluationService.insertEvaluation(evaluationVO);
+
+        return new ResponseEntity<>(result, HttpStatus.OK);
+    }
+
+    /**
+     * @author 권지수
+     * @since 2024.07.29
+     *
+     * 단원 평가 정보 조회
+     */
+    @PostMapping(path = "/evaluationInfo.json")
+    public ResponseEntity<?> evaluationInfo(@RequestBody EvaluationVO evaluationVO) throws Exception {
+        EvaluationVO result = evaluationService.evaluationInfo(evaluationVO);
+
+        return new ResponseEntity<>(result, HttpStatus.OK);
+    }
+
+    /**
+     * @author 권지수
+     * @since 2024.07.29
+     *
+     * 특정 단원 평가 정보 조회
+     */
+    @PostMapping(path = "/evaluationUnitList.json")
+    public ResponseEntity<?> evaluationUnitList(@RequestBody SearchVO searchVO) throws Exception {
+        List<EvaluationVO> result = evaluationService.evaluationUnitList(searchVO);
+
+        return new ResponseEntity<>(result, HttpStatus.OK);
+    }
+
+    /**
+     * @author 권지수
+     * @since 2024.07.29
+     *
+     * 단원 평가 정보 수정
+     */
+    @PostMapping(path = "/updateEvaluation.json")
+    public ResponseEntity<?> updateEvaluation(@RequestBody EvaluationVO evaluationVO) throws Exception {
+        int result = evaluationService.updateEvaluation(evaluationVO);
+
+        return new ResponseEntity<>(result, HttpStatus.OK);
+    }
+
+    /**
+     * @author 권지수
+     * @since 2024.07.29
+     *
+     * 단원 평가 정보 삭제
+     */
+    @PostMapping(path = "/deleteEvaluation.json")
+    public ResponseEntity<?> deleteEvaluation(@RequestBody EvaluationVO evaluationVO) throws Exception {
+        int result = evaluationService.deleteEvaluation(evaluationVO);
+
+        return new ResponseEntity<>(result, HttpStatus.OK);
+    }
 }
src/main/java/com/takensoft/ai_lms/lms/problem/dao/ProblemDAO.java
--- src/main/java/com/takensoft/ai_lms/lms/problem/dao/ProblemDAO.java
+++ src/main/java/com/takensoft/ai_lms/lms/problem/dao/ProblemDAO.java
@@ -1,7 +1,9 @@
 package com.takensoft.ai_lms.lms.problem.dao;
 
+import com.takensoft.ai_lms.lms.eval_problem.vo.EvalProblemVO;
 import com.takensoft.ai_lms.lms.problem.vo.ProblemDetailVO;
 import com.takensoft.ai_lms.lms.problem.vo.ProblemVO;
+import com.takensoft.ai_lms.lms.problem.vo.SearchVO;
 import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
 
 import java.util.List;
@@ -72,4 +74,20 @@
      */
     int deleteProblem(ProblemVO problemVO) throws Exception;
 
+    /**
+     * @author 권지수
+     * @since 2024.07.30
+     *
+     * 전체 문제 목록 조회
+     */
+    List<ProblemVO> problemList(SearchVO searchVO) throws Exception;
+
+    /**
+     * @author 권지수
+     * @since 2024.07.30
+     *
+     * 특정 단원 평가의 문제 목록 조회
+     */
+    List<ProblemVO> evaluationProblemList(SearchVO searchVO) throws Exception;
+
 }
src/main/java/com/takensoft/ai_lms/lms/problem/service/Impl/ProblemServiceImpl.java
--- src/main/java/com/takensoft/ai_lms/lms/problem/service/Impl/ProblemServiceImpl.java
+++ src/main/java/com/takensoft/ai_lms/lms/problem/service/Impl/ProblemServiceImpl.java
@@ -1,10 +1,12 @@
 package com.takensoft.ai_lms.lms.problem.service.Impl;
 
 import com.takensoft.ai_lms.common.idgen.service.IdgenService;
+import com.takensoft.ai_lms.lms.eval_problem.vo.EvalProblemVO;
 import com.takensoft.ai_lms.lms.problem.dao.ProblemDAO;
 import com.takensoft.ai_lms.lms.problem.service.ProblemService;
 import com.takensoft.ai_lms.lms.problem.vo.ProblemDetailVO;
 import com.takensoft.ai_lms.lms.problem.vo.ProblemVO;
+import com.takensoft.ai_lms.lms.problem.vo.SearchVO;
 import lombok.RequiredArgsConstructor;
 import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
 import org.springframework.stereotype.Service;
@@ -106,4 +108,24 @@
     public int deleteProblem(ProblemVO problemVO) throws Exception {
         return problemDAO.deleteProblem(problemVO);
     }
+
+    /**
+     * @author 권지수
+     * @since 2024.07.30
+     *
+     * 전체 문제 목록 조회
+     */
+    public List<ProblemVO> problemList(SearchVO searchVO) throws Exception {
+        return problemDAO.problemList(searchVO);
+    }
+
+    /**
+     * @author 권지수
+     * @since 2024.07.30
+     *
+     * 특정 단원 평가의 문제 목록 조회
+     */
+    public List<ProblemVO> evaluationProblemList(SearchVO searchVO) throws Exception {
+        return problemDAO.evaluationProblemList(searchVO);
+    }
 }
src/main/java/com/takensoft/ai_lms/lms/problem/service/ProblemService.java
--- src/main/java/com/takensoft/ai_lms/lms/problem/service/ProblemService.java
+++ src/main/java/com/takensoft/ai_lms/lms/problem/service/ProblemService.java
@@ -1,7 +1,9 @@
 package com.takensoft.ai_lms.lms.problem.service;
 
+import com.takensoft.ai_lms.lms.eval_problem.vo.EvalProblemVO;
 import com.takensoft.ai_lms.lms.problem.vo.ProblemDetailVO;
 import com.takensoft.ai_lms.lms.problem.vo.ProblemVO;
+import com.takensoft.ai_lms.lms.problem.vo.SearchVO;
 
 import java.util.HashMap;
 import java.util.List;
@@ -70,4 +72,20 @@
      * 문제 정보 삭제
      */
     int deleteProblem(ProblemVO problemVO) throws Exception;
+
+    /**
+     * @author 권지수
+     * @since 2024.07.30
+     *
+     * 전체 문제 목록 조회
+     */
+    List<ProblemVO> problemList(SearchVO searchVO) throws Exception;
+
+    /**
+     * @author 권지수
+     * @since 2024.07.30
+     *
+     * 특정 단원 평가의 문제 목록 조회
+     */
+    List<ProblemVO> evaluationProblemList(SearchVO searchVO) throws Exception;
 }
 
src/main/java/com/takensoft/ai_lms/lms/problem/vo/SearchVO.java (added)
+++ src/main/java/com/takensoft/ai_lms/lms/problem/vo/SearchVO.java
@@ -0,0 +1,25 @@
+package com.takensoft.ai_lms.lms.problem.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@Getter
+@Setter
+@AllArgsConstructor
+@NoArgsConstructor
+public class SearchVO {
+    // 검색 옵션
+    private String option;
+    // 검색 키워드
+    private String keyword;
+    // 페이지 크기
+    private int pageSize;
+    // 시작 인덱스
+    private int startIndex;
+    // 단원 평가 아이디
+    private String evalId;
+    // 단원 아이디
+    private String unitId;
+}
src/main/java/com/takensoft/ai_lms/lms/problem/web/ProblemController.java
--- src/main/java/com/takensoft/ai_lms/lms/problem/web/ProblemController.java
+++ src/main/java/com/takensoft/ai_lms/lms/problem/web/ProblemController.java
@@ -1,9 +1,11 @@
 package com.takensoft.ai_lms.lms.problem.web;
 
 import com.takensoft.ai_lms.lms.auth.vo.UserVO;
+import com.takensoft.ai_lms.lms.eval_problem.vo.EvalProblemVO;
 import com.takensoft.ai_lms.lms.problem.service.ProblemService;
 import com.takensoft.ai_lms.lms.problem.vo.ProblemDetailVO;
 import com.takensoft.ai_lms.lms.problem.vo.ProblemVO;
+import com.takensoft.ai_lms.lms.problem.vo.SearchVO;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.http.HttpStatus;
@@ -136,4 +138,30 @@
 
         return new ResponseEntity<>(result, HttpStatus.OK);
     }
+
+    /**
+     * @author 권지수
+     * @since 2024.07.26
+     *
+     * 전체 문제 목록 조회
+     */
+    @PostMapping(path = "/problemList.json")
+    public ResponseEntity<?> problemList(@RequestBody SearchVO searchVO) throws Exception {
+        List<ProblemVO> result = problemService.problemList(searchVO);
+
+        return new ResponseEntity<>(result, HttpStatus.OK);
+    }
+
+    /**
+     * @author 권지수
+     * @since 2024.07.26
+     *
+     * 특정 단원 평가의 문제 목록 조회
+     */
+    @PostMapping(path = "/evaluationProblemList.json")
+    public ResponseEntity<?> evaluationProblemList(@RequestBody SearchVO searchVO) throws Exception {
+        List<ProblemVO> result = problemService.evaluationProblemList(searchVO);
+
+        return new ResponseEntity<>(result, HttpStatus.OK);
+    }
 }
src/main/java/com/takensoft/ai_lms/lms/schedule/web/ScheduleController.java
--- src/main/java/com/takensoft/ai_lms/lms/schedule/web/ScheduleController.java
+++ src/main/java/com/takensoft/ai_lms/lms/schedule/web/ScheduleController.java
@@ -55,17 +55,17 @@
     /**
      * 학습 일정 출력
      */
-    @GetMapping("/selectSchedule.json")
+    @PostMapping("/selectSchedule.json")
     @Operation(summary = "스케줄 출력")
-    public List<HashMap<String, Object>> selectSchedule(@RequestParam HashMap<String, Object> scheduleId) throws Exception {
-        return scheduleService.selectSchedule(scheduleId);
+    public List<HashMap<String, Object>> selectSchedule(@RequestBody HashMap<String, Object> stdId) throws Exception {
+        return scheduleService.selectSchedule(stdId);
     }
 
 
     /**
      * 학습 일정 수정
      */
-    @PutMapping(value = "/scheduleUpdate.json")
+    @PostMapping(value = "/scheduleUpdate.json")
     @Operation(summary = "스케줄 수정")
     public String scheduleUpdate(@RequestBody ScheduleVO scheduleVO) throws Exception {
         Gson gson = new Gson();
@@ -92,7 +92,7 @@
     /**
      * 학습 일정 삭제
      */
-    @DeleteMapping(value = "/scheduleDelete.json")
+    @PostMapping(value = "/scheduleDelete.json")
     @Operation(summary = "스케줄 삭제")
     public String scheduleDelete(@RequestBody Map<String, String> request) throws Exception {
         Gson gson = new Gson();
src/main/java/com/takensoft/ai_lms/lms/survey/dao/SurveyDAO.java
--- src/main/java/com/takensoft/ai_lms/lms/survey/dao/SurveyDAO.java
+++ src/main/java/com/takensoft/ai_lms/lms/survey/dao/SurveyDAO.java
@@ -1,6 +1,7 @@
 package com.takensoft.ai_lms.lms.survey.dao;
 
 
+import com.takensoft.ai_lms.lms.survey.vo.SurveyDetailVO;
 import com.takensoft.ai_lms.lms.survey.vo.SurveyVO;
 import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
 
@@ -26,5 +27,14 @@
     int updateSurvey(SurveyVO surveyVO) throws Exception;
 
     // 설문 조사 삭제
-    int deleteSurvey(String srvyId) throws Exception;
+    void deleteSurvey(String srvyId) throws Exception;
+
+    // 설문 조사 상제 삭세
+    void deleteSurveyDetail(String srvyId) throws Exception;
+
+    // 설문 조사 상세 정보 등록
+    void insertSurveyDetail(List<SurveyDetailVO> surveyDetailVO) throws Exception;
+
+    // 설문 조사 상세 정보 조회
+    List<SurveyDetailVO> surveyDetailList(SurveyDetailVO surveyDetailVO) throws Exception;
 }
src/main/java/com/takensoft/ai_lms/lms/survey/service/Impl/SurveyServiceImpl.java
--- src/main/java/com/takensoft/ai_lms/lms/survey/service/Impl/SurveyServiceImpl.java
+++ src/main/java/com/takensoft/ai_lms/lms/survey/service/Impl/SurveyServiceImpl.java
@@ -4,18 +4,20 @@
 import com.takensoft.ai_lms.common.idgen.service.IdgenService;
 import com.takensoft.ai_lms.lms.survey.dao.SurveyDAO;
 import com.takensoft.ai_lms.lms.survey.service.SurveyService;
+import com.takensoft.ai_lms.lms.survey.vo.SurveyDetailVO;
 import com.takensoft.ai_lms.lms.survey.vo.SurveyVO;
 import lombok.RequiredArgsConstructor;
 import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
 
 /**
- * @author  : 박세훈
+ * @author : 박세훈
  * since   : 2024.07.29
- *
+ * <p>
  * 설문 조사 관련 ServiceImpl
  */
 @Service("surveyService")
@@ -26,9 +28,11 @@
 
     private final IdgenService surveyIdgn;
 
+    private final IdgenService surveyDetailIdgn;
+
     // 설문 조사 등록
     @Override
-    public int insertSurvey(SurveyVO surveyVO) throws Exception{
+    public int insertSurvey(SurveyVO surveyVO) throws Exception {
         String srvyId = surveyIdgn.getNextStringId();
         surveyVO.setSrvyId(srvyId);
         return surveyDAO.insertSurvey(surveyVO);
@@ -47,8 +51,28 @@
     }
 
     // 설문 조사 삭제
+    @Transactional
     @Override
-    public int deleteSurvey(String srvyId) throws Exception {
-        return surveyDAO.deleteSurvey(srvyId);
+    public void deleteSurveyWithDetails(String srvyId) throws Exception {
+        surveyDAO.deleteSurveyDetail(srvyId);
+        surveyDAO.deleteSurvey(srvyId);
+    }
+
+
+
+    // 설문 조사 상세 정보
+    @Override
+    public void insertSurveyDetail(List<SurveyDetailVO> surveyDetailVO) throws Exception {
+        for (SurveyDetailVO detail : surveyDetailVO) {
+            String srvyDtlId = surveyDetailIdgn.getNextStringId();
+            detail.setSrvyDtlId(srvyDtlId);
+        }
+        surveyDAO.insertSurveyDetail(surveyDetailVO);
+    }
+
+    // 설문 조사 상세 정보 조회
+    @Override
+    public List<SurveyDetailVO> surveyDetailList(SurveyDetailVO surveyDetailVO) throws Exception {
+        return surveyDAO.surveyDetailList(surveyDetailVO);
     }
 }
src/main/java/com/takensoft/ai_lms/lms/survey/service/SurveyService.java
--- src/main/java/com/takensoft/ai_lms/lms/survey/service/SurveyService.java
+++ src/main/java/com/takensoft/ai_lms/lms/survey/service/SurveyService.java
@@ -1,5 +1,6 @@
 package com.takensoft.ai_lms.lms.survey.service;
 
+import com.takensoft.ai_lms.lms.survey.vo.SurveyDetailVO;
 import com.takensoft.ai_lms.lms.survey.vo.SurveyVO;
 
 import java.util.List;
@@ -24,5 +25,11 @@
     int updateSurvey(SurveyVO surveyVO) throws Exception;
 
     // 설문 조사 삭제
-    int deleteSurvey(String srvyId) throws Exception;
+    void deleteSurveyWithDetails(String srvyId) throws Exception;
+
+    // 설문 조사 상세 정보
+    void insertSurveyDetail(List<SurveyDetailVO> surveyDetailVO) throws Exception;
+
+    // 설문 조사 상세 정보 조회
+    List<SurveyDetailVO> surveyDetailList(SurveyDetailVO surveyDetailVO) throws Exception;
 }
 
src/main/java/com/takensoft/ai_lms/lms/survey/vo/SurveyDetailVO.java (added)
+++ src/main/java/com/takensoft/ai_lms/lms/survey/vo/SurveyDetailVO.java
@@ -0,0 +1,29 @@
+package com.takensoft.ai_lms.lms.survey.vo;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+/**
+ * @author  : 박세훈
+ * since   : 2024.07.30
+ *
+ * 설문 조사 상세 정보 관련 VO
+ */
+@Getter
+@Setter
+@AllArgsConstructor
+@NoArgsConstructor
+public class SurveyDetailVO {
+
+    // 설문 조사 상세 아이디
+    private String srvyDtlId;
+
+    // 설문 상세 항목
+    private String srvyDtlCnt;
+
+    // 설문 조사 아이디
+    private String srvyId;
+}
src/main/java/com/takensoft/ai_lms/lms/survey/vo/SurveyVO.java
--- src/main/java/com/takensoft/ai_lms/lms/survey/vo/SurveyVO.java
+++ src/main/java/com/takensoft/ai_lms/lms/survey/vo/SurveyVO.java
@@ -6,6 +6,8 @@
 import lombok.NoArgsConstructor;
 import lombok.Setter;
 
+import java.util.List;
+
 
 /**
  * @author  : 박세훈
@@ -27,4 +29,7 @@
 
     // 설문 내용
     private String srvyCnt;
+
+    // 설문 조사 상세 정보 테이블과 연결
+    private List<SurveyDetailVO> surveyDetail;
 }
src/main/java/com/takensoft/ai_lms/lms/survey/web/SurveyController.java
--- src/main/java/com/takensoft/ai_lms/lms/survey/web/SurveyController.java
+++ src/main/java/com/takensoft/ai_lms/lms/survey/web/SurveyController.java
@@ -2,8 +2,11 @@
 
 
 import com.takensoft.ai_lms.lms.survey.service.SurveyService;
+import com.takensoft.ai_lms.lms.survey.vo.SurveyDetailVO;
 import com.takensoft.ai_lms.lms.survey.vo.SurveyVO;
 import lombok.RequiredArgsConstructor;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
@@ -23,6 +26,8 @@
 
     private final SurveyService surveyService;
 
+
+    // 설문 조사 등록
     @PostMapping("/insert.json")
     public String insertSurvey(@RequestBody SurveyVO surveyVO) throws Exception {
         try {
@@ -37,13 +42,29 @@
         }
     }
 
-    @GetMapping("/list.json")
+    // 설문 조사 상세 등록
+    @PostMapping("/insertDetail.json")
+    public ResponseEntity<Void> insertDetailSurvey(@RequestBody List<SurveyDetailVO> surveyDetailVO) throws Exception {
+        surveyService.insertSurveyDetail(surveyDetailVO);
+        return new ResponseEntity<>(HttpStatus.OK);
+    }
+
+
+    // 설문 조사 조회
+    @PostMapping("/list.json")
     public List<SurveyVO> surveyList(SurveyVO surveyVO) throws Exception {
         return surveyService.surveyList(surveyVO);
     }
 
+    // 설문 조사 상세 조회
+    @PostMapping("detailList.json")
+    public List<SurveyDetailVO> surveyDetailVOList(@RequestBody SurveyDetailVO surveyDetailVO) throws Exception {
+        return surveyService.surveyDetailList(surveyDetailVO);
+    }
 
-    @PutMapping("/update.json")
+
+    // 설문 조사 수정
+    @PostMapping("/update.json")
     public String updateSurvey (@RequestBody SurveyVO surveyVO) throws Exception {
         try {
             int result = surveyService.updateSurvey(surveyVO);
@@ -58,19 +79,11 @@
     }
 
 
-    @DeleteMapping("/delete.json")
-    public String deleteSurvey (@RequestBody Map<String, String> request) throws Exception {
-        try {
-            String srvyId = request.get("srvyId");
-            int result = surveyService.deleteSurvey(srvyId);
-            if ( result > 0) {
-                return "success";
-            } else {
-                return "fail";
-            }
-        } catch (Exception e) {
-            return "Error";
-        }
+    // 설문 조사 삭제(연관된 설문 조사 상세도 삭제됨)
+    @PostMapping("/delete.json")
+    public ResponseEntity<Void> deleteSurvey (@RequestBody SurveyVO surveyVO) throws Exception {
+        surveyService.deleteSurveyWithDetails(surveyVO.getSrvyId());
+        return new ResponseEntity<>(HttpStatus.OK);
     }
 
 
src/main/java/com/takensoft/ai_lms/lms/text/web/TextController.java
--- src/main/java/com/takensoft/ai_lms/lms/text/web/TextController.java
+++ src/main/java/com/takensoft/ai_lms/lms/text/web/TextController.java
@@ -60,7 +60,7 @@
     /**
      * 지문 리스트 조회
      */
-    @GetMapping("/selectTextList.json")
+    @PostMapping("/selectTextList.json")
     @Operation(summary = "지문 리스트 조회")
     public HashMap<String, Object> getTextList(@RequestBody HashMap<String, Object> params) throws Exception {
         HashMap<String, Object> result = new HashMap<>();
@@ -78,7 +78,7 @@
     /**
      * 지문 출력
      */
-    @GetMapping("/selectOneText.json")
+    @PostMapping("/selectOneText.json")
     @Operation(summary = "지문 출력")
     public List<HashMap<String, Object>> selectOneText(@RequestBody HashMap<String, Object> textId) throws Exception {
         return TextService.selectOneText(textId);
@@ -88,7 +88,7 @@
     /**
      * 지문 수정
      */
-    @PutMapping(value = "/textUpdate.json")
+    @PostMapping(value = "/textUpdate.json")
     @Operation(summary = "지문 수정")
     public String textUpdate(@RequestBody TextVO textVO) throws Exception {
         Gson gson = new Gson();
@@ -115,7 +115,7 @@
     /**
      * 지문 삭제
      */
-    @DeleteMapping(value = "/textDelete.json")
+    @PostMapping(value = "/textDelete.json")
     @Operation(summary = "지문 삭제")
     public String textDelete(@RequestBody Map<String, String> request) throws Exception {
         Gson gson = new Gson();
@@ -143,7 +143,7 @@
     /**
      * 지문 검색
      */
-    @GetMapping("/textSearch.json")
+    @PostMapping("/textSearch.json")
     @Operation(summary = "지문 검색")
     public HashMap<String, Object> searchText(@RequestBody HashMap<String, Object> params) throws Exception {
         HashMap<String, Object> result = new HashMap<>();
 
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/java/com/takensoft/ai_lms/lms/word_book/dao/WordBookDAO.java
--- src/main/java/com/takensoft/ai_lms/lms/word_book/dao/WordBookDAO.java
+++ src/main/java/com/takensoft/ai_lms/lms/word_book/dao/WordBookDAO.java
@@ -30,4 +30,10 @@
     // 단어장 삭제
     int deleteWordBook(String wdBookId);
 
+    // 단어장 검색(지문 이름으로 검색)
+    List<WordBookVO> getWordBooksByTextTitle(String textTitle);
+
+    // 단어장 검색(단어로 검색)
+    List<WordBookVO> getWordBooksByWord(String word);
+
 }
 
src/main/java/com/takensoft/ai_lms/lms/word_book/dao/WordDAO.java (added)
+++ src/main/java/com/takensoft/ai_lms/lms/word_book/dao/WordDAO.java
@@ -0,0 +1,32 @@
+package com.takensoft.ai_lms.lms.word_book.dao;
+
+import com.takensoft.ai_lms.lms.word_book.vo.WordVO;
+import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
+
+import java.util.List;
+
+/**
+ * @author 권민수
+ * @since 2024.07.30
+ *
+ * 단어 정보 DAO 클래스
+ */
+
+@Mapper("wordDAO")
+public interface WordDAO {
+
+    // 단어장에 해당하는 모든 단어 목록 조회
+    List<WordVO> getWordsByBookId(String wdBookId);
+
+    // 단어 등록
+    void insertWord(WordVO word);
+
+    // 단어 수정
+    void updateWord(WordVO word);
+
+    // 단어 삭제
+    void deleteWord(String wdId);
+
+    // String generateWordId();
+
+}
src/main/java/com/takensoft/ai_lms/lms/word_book/service/Impl/WordBookServiceImpl.java
--- src/main/java/com/takensoft/ai_lms/lms/word_book/service/Impl/WordBookServiceImpl.java
+++ src/main/java/com/takensoft/ai_lms/lms/word_book/service/Impl/WordBookServiceImpl.java
@@ -50,4 +50,15 @@
     public void deleteWordBook(String wdBookId) {
         wordBookDAO.deleteWordBook(wdBookId);
     }
+
+    @Override
+    public List<WordBookVO> getWordBooksByTextTitle(String textTitle) {
+        return wordBookDAO.getWordBooksByTextTitle(textTitle);
+    }
+
+    @Override
+    public List<WordBookVO> getWordBooksByWord(String word) {
+        return wordBookDAO.getWordBooksByWord(word);
+    }
+
 }
 
src/main/java/com/takensoft/ai_lms/lms/word_book/service/Impl/WordServiceImpl.java (added)
+++ src/main/java/com/takensoft/ai_lms/lms/word_book/service/Impl/WordServiceImpl.java
@@ -0,0 +1,49 @@
+package com.takensoft.ai_lms.lms.word_book.service.Impl;
+
+import com.takensoft.ai_lms.common.idgen.service.IdgenService;
+import com.takensoft.ai_lms.lms.word_book.dao.WordDAO;
+import com.takensoft.ai_lms.lms.word_book.service.WordService;
+import com.takensoft.ai_lms.lms.word_book.vo.WordVO;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @author 권민수
+ * @since 2024.07.30
+ *
+ * 단어 정보 관련 서비스
+ */
+
+@Service
+@RequiredArgsConstructor
+public class WordServiceImpl implements WordService {
+
+    private final WordDAO wordDAO;
+
+    private final IdgenService wordIdgn;
+
+    @Override
+    public List<WordVO> getWordsByBookId(String wdBookId) {
+        return wordDAO.getWordsByBookId(wdBookId);
+    }
+
+    @Override
+    public void insertWord(WordVO word) {
+        String wordId = wordIdgn.getNextStringId();
+        word.setWdId(wordId);
+        wordDAO.insertWord(word);
+    }
+
+    @Override
+    public void updateWord(WordVO word) {
+        wordDAO.updateWord(word);
+    }
+
+    @Override
+    public void deleteWord(String wdId) {
+        wordDAO.deleteWord(wdId);
+    }
+
+}
src/main/java/com/takensoft/ai_lms/lms/word_book/service/WordBookService.java
--- src/main/java/com/takensoft/ai_lms/lms/word_book/service/WordBookService.java
+++ src/main/java/com/takensoft/ai_lms/lms/word_book/service/WordBookService.java
@@ -28,4 +28,11 @@
     // 단어장 삭제
     void deleteWordBook(String wdBookId);
 
+    // 단어장 검색(지문 이름으로 검색)
+    List<WordBookVO> getWordBooksByTextTitle(String textTitle);
+
+    // 단어장 검색(단어로 검색)
+    List<WordBookVO> getWordBooksByWord(String word);
+
+
 }
 
src/main/java/com/takensoft/ai_lms/lms/word_book/service/WordService.java (added)
+++ src/main/java/com/takensoft/ai_lms/lms/word_book/service/WordService.java
@@ -0,0 +1,28 @@
+package com.takensoft.ai_lms.lms.word_book.service;
+
+import com.takensoft.ai_lms.lms.word_book.vo.WordVO;
+
+import java.util.List;
+
+/**
+ * @author 권민수
+ * @since 2024.07.30
+ *
+ * 단어 정보 Service 인터페이스
+ */
+
+public interface WordService {
+
+    // 단어장에 해당하는 모든 단어 목록 조회
+    List<WordVO> getWordsByBookId(String wdBookId);
+
+    // 단어 등록
+    void insertWord(WordVO word);
+
+    // 단어 수정
+    void updateWord(WordVO word);
+
+    // 단어 삭제
+    void deleteWord(String wdId);
+
+}
 
src/main/java/com/takensoft/ai_lms/lms/word_book/vo/WordVO.java (added)
+++ src/main/java/com/takensoft/ai_lms/lms/word_book/vo/WordVO.java
@@ -0,0 +1,23 @@
+package com.takensoft.ai_lms.lms.word_book.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author 권민수
+ * @since 2024.07.30
+ *
+ * 단어 정보 VO 클래스
+ */
+
+@Getter
+@Setter
+public class WordVO {
+
+    private String wdId;
+    private String wdBookId;
+    private String wdNm;
+    private String wdMnng;
+    private String fileMngId;
+
+}
src/main/java/com/takensoft/ai_lms/lms/word_book/web/WordBookController.java
--- src/main/java/com/takensoft/ai_lms/lms/word_book/web/WordBookController.java
+++ src/main/java/com/takensoft/ai_lms/lms/word_book/web/WordBookController.java
@@ -24,16 +24,19 @@
 
     final private WordBookService wordBookService;
 
-    @GetMapping("/findAll.json")
+    // 단어장 전체 목록 조회
+    @PostMapping("/findAll.json")
     public List<WordBookVO> getAllWordBooks() {
         return wordBookService.getAllWordBooks();
     }
 
+    // 아이디에 해당하는 단어장 조회
     @PostMapping("/find.json")
     public WordBookVO getWordBookById(@RequestBody WordBookVO wordBook) {
         return wordBookService.getWordBookById(wordBook.getWdBookId());
     }
 
+    // 단어장 등록
     @PostMapping("/insert.json")
     public void insertWordBook(@RequestBody Map<String, String> req) {
         WordBookVO wordBook = new WordBookVO();
@@ -43,14 +46,31 @@
         wordBookService.insertWordBook(wordBook);
     }
 
-    @PutMapping("/update.json")
+    // 단어장 수정
+    @PostMapping("/update.json")
     public void updateWordBook(@RequestBody WordBookVO wordBook) {
         wordBookService.updateWordBook(wordBook);
     }
 
-    @DeleteMapping("/delete.json")
+    // 단어장 삭제
+    @PostMapping("/delete.json")
     public void deleteWordBook(@RequestBody WordBookVO wordBook) {
         wordBookService.deleteWordBook(wordBook.getWdBookId());
     }
 
+    // 단어장 검색(지문 이름으로 검색)
+    @PostMapping("/findByTextTitle.json")
+    public List<WordBookVO> getWordBooksByTextTitle(@RequestBody Map<String, String> request) {
+        String textTitle = "%" + request.get("textTitle") + "%"; // 부분 검색 허용
+        return wordBookService.getWordBooksByTextTitle(textTitle);
+    }
+
+    // 단어장 검색(단어로 검색)
+    @PostMapping("/findByWord.json")
+    public List<WordBookVO> getWordBooksByWord(@RequestBody Map<String, String> request) {
+        return wordBookService.getWordBooksByWord(request.get("word"));
+    }
+
 }
+
+// 추가 사항: 책에 소속된 단어장 리스트 가져오기(보류)
 
src/main/java/com/takensoft/ai_lms/lms/word_book/web/WordController.java (added)
+++ src/main/java/com/takensoft/ai_lms/lms/word_book/web/WordController.java
@@ -0,0 +1,54 @@
+package com.takensoft.ai_lms.lms.word_book.web;
+
+import com.takensoft.ai_lms.lms.word_book.service.WordService;
+import com.takensoft.ai_lms.lms.word_book.vo.WordVO;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author 권민수
+ * @since 2024.07.30
+ *
+ * 단어 정보 관련 컨트롤러 클래스
+ */
+
+@RestController
+@RequiredArgsConstructor
+@Slf4j
+@RequestMapping("/word")
+public class WordController {
+
+    private final WordService wordService;
+
+    // 단어장 아이디에 해당하는 단어 목록 조회
+    @PostMapping("/getWordsByBookId.json")
+    public List<WordVO> getWordsByBookId(@RequestBody Map<String, String> request) {
+        return wordService.getWordsByBookId(request.get("wdBookId"));
+    }
+
+    // 단어 등록
+    @PostMapping("/insert.json")
+    public void insertWord(@RequestBody WordVO word) {
+        wordService.insertWord(word);
+    }
+
+    // 단어 수정
+    @PostMapping("/update.json")
+    public void updateWord(@RequestBody WordVO word) {
+        wordService.updateWord(word);
+    }
+
+    // 단어 삭제
+    @PostMapping("/delete.json")
+    public void deleteWord(@RequestBody WordVO word) {
+        wordService.deleteWord(word.getWdId());
+    }
+
+}
src/main/resources/mybatis/mapper/lms/board-SQL.xml
--- src/main/resources/mybatis/mapper/lms/board-SQL.xml
+++ src/main/resources/mybatis/mapper/lms/board-SQL.xml
@@ -3,7 +3,7 @@
 <mapper namespace="com.takensoft.ai_lms.lms.board.dao.BoardDAO">
 
     <resultMap id="boardMap" type="BoardVO">
-        <result property="bbsId" column="bbs_id"/>
+        <id property="bbsId" column="bbs_id"/>
         <result property="bbsTtl" column="bbs_ttl"/>
         <result property="bbsCls" column="bbs_cls"/>
         <result property="bbsCnt" column="bbs_cnt"/>
@@ -12,6 +12,23 @@
         <result property="sclsId" column="scls_id"/>
     </resultMap>
 
+    <resultMap id="boardResultMap" type="BoardUserVO">
+        <id property="userId" column="user_id" />
+        <result property="userNm" column="user_nm" />
+        <collection property="boardClass" ofType="BoardClassVO">
+            <id property="sclsId" column="scls_id" />
+            <result property="sclsNm" column="scls_nm" />
+            <collection property="board" ofType="BoardVO" >
+                <id property="bbsId" column="bbs_id"/>
+                <result property="bbsTtl" column="bbs_ttl"/>
+                <result property="bbsCls" column="bbs_cls"/>
+                <result property="bbsCnt" column="bbs_cnt"/>
+                <result property="bbsTm" column="bbs_tm"/>
+                <result property="fileMngId" column="file_mng_id"/>
+                <result property="sclsId" column="scls_id"/>
+            </collection>
+        </collection>
+    </resultMap>
 
     <!--
         작성자 : 박세훈
@@ -51,11 +68,22 @@
         작성일 : 2024.07.25
         내 용 : 게시글 전체 조회
     -->
-    <select id="findAllBoard"  resultMap="boardMap">
-        SELECT *
-        FROM board
-        WHERE scls_id = #{sclsId}
-        ORDER BY bbs_id DESC
+    <select id="findAllBoard"  resultMap="boardResultMap">
+        SELECT  b.bbs_id,
+                b.bbs_ttl,
+                b.bbs_cls,
+                b.bbs_cnt,
+                b.bbs_tm,
+                b.file_mng_id,
+                c.scls_id,
+                c.scls_nm,
+                u.user_id,
+                u.user_nm
+        FROM board b
+        LEFT JOIN class c ON b.scls_id = c.scls_id
+        LEFT JOIN users u ON c.user_id = u.user_id
+        WHERE b.scls_id = #{sclsId}
+        ORDER BY b.bbs_id DESC
         LIMIT #{pageSize} OFFSET #{startIndex}
     </select>
 
@@ -64,10 +92,21 @@
         작성일 : 2024.07.25
         내 용 : 게시글 상세 조회
     -->
-    <select id="findByBoardId" parameterType="BoardVO" resultMap="boardMap">
-        SELECT *
-        FROM board
-        WHERE bbs_id = #{bbsId}
+    <select id="findByBoardId" resultMap="boardResultMap">
+        SELECT  b.bbs_id,
+                b.bbs_ttl,
+                b.bbs_cls,
+                b.bbs_cnt,
+                b.bbs_tm,
+                b.file_mng_id,
+                c.scls_id,
+                c.scls_nm,
+                u.user_id,
+                u.user_nm
+        FROM board b
+        LEFT JOIN class c ON b.scls_id = c.scls_id
+        LEFT JOIN users u ON c.user_id = u.user_id
+        WHERE b.bbs_id = #{bbsId}
         ORDER BY bbs_id DESC
     </select>
 
@@ -76,9 +115,20 @@
         작성일 : 2024.07.26
         내 용 : 게시글 검색
     -->
-    <select id="searchBoard" parameterType="BoardVO" resultMap="boardMap">
-        SELECT *
-        FROM board
+    <select id="searchBoard" resultMap="boardResultMap">
+        SELECT  b.bbs_id,
+                b.bbs_ttl,
+                b.bbs_cls,
+                b.bbs_cnt,
+                b.bbs_tm,
+                b.file_mng_id,
+                c.scls_id,
+                c.scls_nm,
+                u.user_id,
+                u.user_nm
+        FROM board b
+        LEFT JOIN class c ON b.scls_id = c.scls_id
+        LEFT JOIN users u ON c.user_id = u.user_id
         WHERE 1 = 1
         <if test="option != null and keyword != null">
             <choose>
@@ -122,4 +172,5 @@
         DELETE FROM board WHERE bbs_id = #{bbsId}
     </delete>
 
-</mapper>
(파일 끝에 줄바꿈 문자 없음)
+</mapper>
+
src/main/resources/mybatis/mapper/lms/class_book-SQL.xml
--- src/main/resources/mybatis/mapper/lms/class_book-SQL.xml
+++ src/main/resources/mybatis/mapper/lms/class_book-SQL.xml
@@ -14,9 +14,13 @@
     <insert id="registerBook" parameterType="String" >
         INSERT INTO class_book( book_id,
                                 scls_id
-        ) VALUES ( #{bookId},
-                    #{sclsId}
-        );
+        )
+        VALUES
+        <foreach collection="list" item="item" separator=",">
+                   (#{item.bookId},
+                    #{item.sclsId}
+                    )
+        </foreach>
     </insert>
 
 
 
src/main/resources/mybatis/mapper/lms/eval_problem-SQL.xml (added)
+++ src/main/resources/mybatis/mapper/lms/eval_problem-SQL.xml
@@ -0,0 +1,32 @@
+<?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.eval_problem.dao.EvalProblemDAO">
+
+    <!--
+        작 성 자 : 권지수
+        작 성 일 : 2024.07.29
+        내   용 : 단원 평가 문제 insert
+    -->
+    <insert id="insertEvalProblem" parameterType="EvalProblemVO">
+        INSERT INTO eval_problem (
+            eval_id,
+            prblm_id
+        ) VALUES (
+            #{evalId},
+            #{prblmId}
+        )
+    </insert>
+
+    <!--
+        작 성 자 : 권지수
+        작 성 일 : 2024.07.30
+        내   용 : 특정 단원의 문제 수 조회
+    -->
+    <select id="unitProblemNum" parameterType="EvaluationVO" resultType="int">
+        SELECT
+            COUNT(*)
+        FROM eval_problem
+        WHERE eval_id = #{evalId}
+    </select>
+
+</mapper>(파일 끝에 줄바꿈 문자 없음)
src/main/resources/mybatis/mapper/lms/evaluation-SQL.xml
--- src/main/resources/mybatis/mapper/lms/evaluation-SQL.xml
+++ src/main/resources/mybatis/mapper/lms/evaluation-SQL.xml
@@ -2,6 +2,89 @@
 <!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.evaluation.dao.EvaluationDAO">
 
+    <!--
+        작 성 자 : 권지수
+        작 성 일 : 2024.07.29
+        내   용 : 단원 평가 정보 insert
+    -->
+    <insert id="insertEvaluation" parameterType="EvaluationVO">
+        INSERT INTO evaluation (
+            eval_id,
+            eval_type,
+            unit_id
+        ) VALUES (
+            #{evalId},
+            #{evalType},
+            #{unitId}
+        )
+    </insert>
+
+    <!--
+        작 성 자 : 권지수
+        작 성 일 : 2024.07.29
+        내   용 : 단원 평가 정보 read
+    -->
+    <select id="evaluationInfo" parameterType="EvaluationVO" resultType="EvaluationVO">
+        SELECT
+            eval_id,
+            eval_type,
+            unit_id
+        FROM evaluation
+        WHERE eval_id = #{evalId}
+    </select>
+
+    <!--
+        작 성 자 : 권지수
+        작 성 일 : 2024.07.29
+        내   용 : 특정 단원 평가 정보 read
+    -->
+    <select id="evaluationUnitList" parameterType="SearchVO" resultType="EvaluationVO">
+        SELECT
+            eval_id,
+            eval_type,
+            unit_id
+        FROM evaluation
+        WHERE unit_id = #{unitId}
+        <if test="option != null and keyword != null">
+            <choose>
+                <when test="option == 'eval_type'">
+                    AND eval_type LIKE CONCAT('%', #{keyword}, '%')
+                </when>
+                <when test="option == 'eval_id'">
+                    AND eval_id = #{keyword}
+                </when>
+                <otherwise>
+                    AND (eval_type LIKE CONCAT('%', #{keyword}, '%')
+                    OR eval_id = #{keyword})
+                </otherwise>
+            </choose>
+        </if>
+        LIMIT #{pageSize} OFFSET #{startIndex}
+    </select>
+
+    <!--
+        작 성 자 : 권지수
+        작 성 일 : 2024.07.29
+        내   용 : 단원 평가 정보 update
+    -->
+    <update id="updateEvaluation" parameterType="EvaluationVO">
+        UPDATE evaluation
+        SET
+            eval_id = #{evalId},
+            eval_type = #{evalType},
+            unit_id = #{unitId}
+        WHERE eval_id = #{evalId}
+    </update>
+
+    <!--
+        작 성 자 : 권지수
+        작 성 일 : 2024.07.29
+        내   용 : 단원 평가 정보 delete
+    -->
+    <delete id="deleteEvaluation" parameterType="EvaluationVO">
+        DELETE FROM evaluation
+        WHERE eval_id = #{evalId}
+    </delete>
 
 
 </mapper>
(파일 끝에 줄바꿈 문자 없음)
src/main/resources/mybatis/mapper/lms/problem-SQL.xml
--- src/main/resources/mybatis/mapper/lms/problem-SQL.xml
+++ src/main/resources/mybatis/mapper/lms/problem-SQL.xml
@@ -2,6 +2,17 @@
 <!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.problem.dao.ProblemDAO">
 
+    <!--resultMap id="problemMap" type="ProblemVO">
+        <result property="prblmId" column="prblm_id"/>
+        <result property="prblmExpln" column="prblm_expln"/>
+        <result property="prblmScr" column="prblm_scr"/>
+        <result property="prblmHint" column="prblm_hint"/>
+        <result property="prblmCmmt" column="prblm_cmmt"/>
+        <result property="fileMngId" column="file_mng_id"/>
+        <result property="prblmTypeId" column="prblm_type_id"/>
+        <result property="prblmCtgryId" column="prblm_ctgry_id"/>
+    </resultMap-->
+
     <!--
         작 성 자 : 권지수
         작 성 일 : 2024.07.25
@@ -127,5 +138,85 @@
         WHERE prblm_id = #{prblmId}
     </delete>
 
+    <!--
+        작 성 자 : 권지수
+        작 성 일 : 2024.07.30
+        내   용 : 전체 문제 목록 조회
+    -->
+    <select id="problemList" parameterType="SearchVO" resultType="ProblemVO">
+        SELECT
+            prblm_id,
+            prblm_expln,
+            prblm_scr,
+            prblm_hint,
+            prblm_cmmt,
+            file_mng_id,
+            prblm_type_id,
+            prblm_ctgry_id
+        FROM problem
+        WHERE 1 = 1
+        <if test="option != null and keyword != null">
+            <choose>
+                <when test="option == 'prblm_expln'">
+                    AND prblm_expln LIKE CONCAT('%', #{keyword}, '%')
+                </when>
+                <when test="option == 'prblm_type_id'">
+                    AND prblm_type_id = #{keyword}
+                </when>
+                <when test="option == 'prblm_ctgry_id'">
+                    AND prblm_ctgry_id = #{keyword}
+                </when>
+                <otherwise>
+                    AND (prblm_expln LIKE CONCAT('%', #{keyword}, '%')
+                    OR prblm_type_id = #{keyword}
+                    OR prblm_ctgry_id = #{keyword})
+                </otherwise>
+            </choose>
+        </if>
+        LIMIT #{pageSize} OFFSET #{startIndex}
+
+    </select>
+
+    <!--
+        작 성 자 : 권지수
+        작 성 일 : 2024.07.25
+        내   용 : 특정 단원 평가의 문제 목록 조회
+    -->
+    <select id="evaluationProblemList" parameterType="SearchVO" resultType="ProblemVO">
+        SELECT
+            p.prblm_id AS prblmId,
+            p.prblm_expln AS prblmExpln,
+            p.prblm_scr AS prblmScr,
+            p.prblm_hint AS prblmHint,
+            p.prblm_cmmt AS prblmCmmt,
+            p.file_mng_id AS fileMngId,
+            p.prblm_type_id AS prblmTypeId,
+            p.prblm_ctgry_id AS prblmCtgryId
+        FROM
+            eval_problem ep
+        JOIN
+            problem p ON ep.prblm_id = p.prblm_id
+        WHERE
+            ep.eval_id = #{evalId}
+        <if test="option != null and keyword != null">
+            <choose>
+                <when test="option == 'prblm_expln'">
+                    AND prblm_expln LIKE CONCAT('%', #{keyword}, '%')
+                </when>
+                <when test="option == 'prblm_type_id'">
+                    AND prblm_type_id = #{keyword}
+                </when>
+                <when test="option == 'prblm_ctgry_id'">
+                    AND prblm_ctgry_id = #{keyword}
+                </when>
+                <otherwise>
+                    AND (prblm_expln LIKE CONCAT('%', #{keyword}, '%')
+                    OR prblm_type_id = #{keyword}
+                    OR prblm_ctgry_id = #{keyword})
+                </otherwise>
+            </choose>
+        </if>
+    </select>
+
 
 </mapper>
(파일 끝에 줄바꿈 문자 없음)
src/main/resources/mybatis/mapper/lms/schedule-SQL.xml
--- src/main/resources/mybatis/mapper/lms/schedule-SQL.xml
+++ src/main/resources/mybatis/mapper/lms/schedule-SQL.xml
@@ -43,6 +43,7 @@
              , std_id
 
         FROM schedule
+        WHERE std_id = #{stdId}
         ORDER BY schdl_dt DESC
     </select>
 
@@ -53,8 +54,7 @@
      -->
     <update id="scheduleUpdate" parameterType="ScheduleVO">
         UPDATE schedule
-        SET schdl_dt = #{scheduleDt}
-          , schdl_unit = #{scheduleUnit}
+        SET schdl_unit = #{scheduleUnit}
           , book_id = #{bookId}
         WHERE schdl_id = #{scheduleId}
     </update>
src/main/resources/mybatis/mapper/lms/survey-SQL.xml
--- src/main/resources/mybatis/mapper/lms/survey-SQL.xml
+++ src/main/resources/mybatis/mapper/lms/survey-SQL.xml
@@ -4,12 +4,20 @@
 
 
     <resultMap id="surveyMap" type="SurveyVO">
-        <result property="srvyId" column="srvy_id"/>
+        <id property="srvyId" column="srvy_id"/>
         <result property="srvyType" column="srvy_type"/>
         <result property="srvyCnt" column="srvy_cnt"/>
+        <collection property="surveyDetail" ofType="SurveyDetailVO">
+            <id property="srvyDtlId" column="srvy_dtl_id" />
+            <result property="srvyDtlCnt" column="srvy_dtl_cnt" />
+        </collection>
     </resultMap>
 
-
+    <!--
+        작성자 : 박세훈
+        작성일 : 2024.07.29
+        내 용 : 설문 조사 정보 등록
+    -->
     <insert id="insertSurvey" parameterType="SurveyVO">
         INSERT INTO survey( srvy_id,
                             srvy_type,
@@ -19,11 +27,62 @@
                 #{srvyCnt});
     </insert>
 
+
+    <!--
+        작성자 : 박세훈
+        작성일 : 2024.07.30
+        내 용 : 설문 조사 상세 정보 등록
+    -->
+
+    <insert id="insertSurveyDetail" parameterType="java.util.List">
+        INSERT INTO survey_detail(  srvy_dtl_id,
+                                    srvy_dtl_cnt,
+                                    srvy_id)
+        VALUES
+        <foreach collection="list" item="detail" separator=",">
+                (#{detail.srvyDtlId},
+                 #{detail.srvyDtlCnt},
+                 #{detail.srvyId})
+        </foreach>
+    </insert>
+
+
+
+    <!--
+        작성자 : 박세훈
+        작성일 : 2024.07.29
+        내 용 : 설문 조사 정보 조회
+    -->
     <select id="surveyList" parameterType="SurveyVO">
         SELECT *
         FROM survey
     </select>
 
+    <!--
+        작성자 : 박세훈
+        작성일 : 2024.07.30
+        내 용 : 설문 조사 상세 정보 조회
+    -->
+
+    <select id="surveyDetailList" resultMap="surveyMap">
+        SELECT  s.srvy_id,
+                s.srvy_cnt,
+                s.srvy_type,
+                d.srvy_dtl_cnt,
+                d.srvy_dtl_id
+        FROM survey s
+        LEFT JOIN survey_detail d ON s.srvy_id = d.srvy_id
+        WHERE s.srvy_id = #{srvyId}
+        ORDER BY s.srvy_id DESC
+    </select>
+
+
+
+    <!--
+        작성자 : 박세훈
+        작성일 : 2024.07.29
+        내 용 : 설문 조사 정보 수정
+    -->
     <update id="updateSurvey" parameterType="SurveyVO">
         UPDATE survey
         SET srvy_type = #{srvyType},
@@ -35,11 +94,21 @@
 
 
 
+    <!--
+        작성자 : 박세훈
+        작성일 : 2024.07.29
+        내 용 : 설문 조사 정보 삭제
+    -->
     <delete id="deleteSurvey" parameterType="String">
         DELETE FROM survey
         WHERE srvy_id = #{srvyId}
     </delete>
 
+    <delete id="deleteSurveyDetail" parameterType="String">
+        DELETE FROM survey_detail
+        WHERE srvy_id = #{srvyId}
+    </delete>
+
 
 
 
 
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>(파일 끝에 줄바꿈 문자 없음)
 
src/main/resources/mybatis/mapper/lms/word-SQL.xml (added)
+++ src/main/resources/mybatis/mapper/lms/word-SQL.xml
@@ -0,0 +1,52 @@
+<?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.word_book.dao.WordDAO">
+
+    <!--
+        작 성 자 : 권민수
+        작 성 일 : 2024.07.30
+        내   용 : 단어 정보 관련 sql 매핑 xml 문서
+    -->
+
+    <resultMap id="wordResultMap" type="WordVO">
+        <id property="wdId" column="wd_id" />
+        <result property="wdBookId" column="wd_book_id" />
+        <result property="wdNm" column="wd_nm" />
+        <result property="wdMnng" column="wd_mnng" />
+        <result property="fileMngId" column="file_mng_id" />
+    </resultMap>
+
+    <select id="getWordsByBookId" resultMap="wordResultMap">
+        SELECT *
+        FROM word
+        WHERE wd_book_id = #{wdBookId}
+    </select>
+
+    <insert id="insertWord">
+        INSERT INTO
+            word (wd_id,
+                  wd_book_id,
+                  wd_nm,
+                  wd_mnng,
+                  file_mng_id)
+        VALUES (#{wdId},
+                #{wdBookId},
+                #{wdNm},
+                #{wdMnng},
+                #{fileMngId})
+    </insert>
+
+    <update id="updateWord">
+        UPDATE word
+        SET wd_nm = #{wdNm},
+            wd_mnng = #{wdMnng},
+            file_mng_id = #{fileMngId}
+        WHERE wd_id = #{wdId}
+    </update>
+
+    <delete id="deleteWord">
+        DELETE FROM word
+        WHERE wd_id = #{wdId}
+    </delete>
+
+</mapper>(파일 끝에 줄바꿈 문자 없음)
src/main/resources/mybatis/mapper/lms/word_book-SQL.xml
--- src/main/resources/mybatis/mapper/lms/word_book-SQL.xml
+++ src/main/resources/mybatis/mapper/lms/word_book-SQL.xml
@@ -8,7 +8,7 @@
         내   용 : 단어장 정보 관련 sql 매핑 xml 문서
     -->
 
-    <resultMap id="WordBookResultMap" type="com.takensoft.ai_lms.lms.word_book.vo.WordBookVO">
+    <resultMap id="WordBookResultMap" type="WordBookVO">
         <id property="wdBookId" column="wd_book_id"/>
         <result property="wdBookTypeId" column="wd_book_type_id"/>
         <result property="textId" column="text_id"/>
@@ -34,7 +34,7 @@
         WHERE wd_book_id = #{wdBookId}
     </select>
 
-    <insert id="insertWordBook" parameterType="com.takensoft.ai_lms.lms.word_book.vo.WordBookVO">
+    <insert id="insertWordBook" parameterType="WordBookVO">
         INSERT INTO
             ai_lms.wordbook (wd_book_id,
                              wd_book_type_id,
@@ -46,7 +46,7 @@
                 #{userId})
     </insert>
 
-    <update id="updateWordBook" parameterType="com.takensoft.ai_lms.lms.word_book.vo.WordBookVO">
+    <update id="updateWordBook" parameterType="WordBookVO">
         UPDATE ai_lms.wordbook
         SET wd_book_type_id = #{wdBookTypeId},
             text_id = #{textId},
@@ -59,4 +59,18 @@
         WHERE wd_book_id = #{wdBookId}
     </delete>
 
+    <select id="getWordBooksByTextTitle" resultType="WordBookVO">
+        SELECT wb.*
+        FROM wordbook wb
+        JOIN text t ON wb.text_id = t.text_id
+        WHERE t.text_ttl LIKE #{textTitle}
+    </select>
+
+    <select id="getWordBooksByWord" resultType="WordBookVO">
+        SELECT DISTINCT wb.*
+        FROM wordbook wb
+        JOIN word w ON wb.wd_book_id = w.wd_book_id
+        WHERE w.wd_nm LIKE #{word}
+    </select>
+
 </mapper>
(파일 끝에 줄바꿈 문자 없음)
Add a comment
List