--- src/main/java/com/takensoft/ai_lms/common/confing/SecurityConfig.java
+++ src/main/java/com/takensoft/ai_lms/common/confing/SecurityConfig.java
... | ... | @@ -75,6 +75,7 @@ |
75 | 75 |
.requestMatchers("/photoMng/**").permitAll() // 사진첩 정보 진입 허용 |
76 | 76 |
.requestMatchers("/wordbook/**").permitAll() |
77 | 77 |
.requestMatchers("/problem/**").permitAll() // 문제 정보 진입 허용 |
78 |
+ .requestMatchers("/problemLog/**").permitAll() // 문제 풀이 로그 정보 진입 허용 |
|
78 | 79 |
.requestMatchers("/evaluation/**").permitAll() // 단원 평가 정보 진입 허용 |
79 | 80 |
.requestMatchers("/evalProblem/**").permitAll() // 단원 평가 문제 진입 허용 |
80 | 81 |
.requestMatchers("/unitLearning/**").permitAll() // 로드맵 정보 진입 허용 |
... | ... | @@ -85,6 +86,7 @@ |
85 | 86 |
.requestMatchers("/survey/**").permitAll() // 설문 조사 진입 허용 |
86 | 87 |
.requestMatchers("/api/**").permitAll() // Google Cloud api 진입 허용 |
87 | 88 |
.requestMatchers("/userclass/**").permitAll() // 반별 학생 맵핑 진입 허용 |
89 |
+ .requestMatchers("/userunit/**").permitAll() // 사용자 학습 진행 정보 진입 허용 |
|
88 | 90 |
.anyRequest().authenticated()); // 나머지 경로는 인증 필요 |
89 | 91 |
|
90 | 92 |
// jwt 필터 처리 적용 |
--- src/main/java/com/takensoft/ai_lms/lms/eval_problem/dao/EvalProblemDAO.java
+++ src/main/java/com/takensoft/ai_lms/lms/eval_problem/dao/EvalProblemDAO.java
... | ... | @@ -29,4 +29,12 @@ |
29 | 29 |
* 특정 단원의 문제 수 조회 |
30 | 30 |
*/ |
31 | 31 |
int unitProblemNum(EvalProblemVO evalProblemVO) throws Exception; |
32 |
+ |
|
33 |
+ /** |
|
34 |
+ * @author 권지수 |
|
35 |
+ * @since 2024.08.01 |
|
36 |
+ * |
|
37 |
+ * 단원 평가에 등록된 문제 삭제 |
|
38 |
+ */ |
|
39 |
+ int deleteEvalProblem(EvalProblemVO evalProblemVO) throws Exception; |
|
32 | 40 |
} |
--- src/main/java/com/takensoft/ai_lms/lms/eval_problem/service/EvalProblemService.java
+++ src/main/java/com/takensoft/ai_lms/lms/eval_problem/service/EvalProblemService.java
... | ... | @@ -25,4 +25,12 @@ |
25 | 25 |
* 특정 단원의 문제 수 조회 |
26 | 26 |
*/ |
27 | 27 |
int unitProblemNum(EvalProblemVO evalProblemVO) throws Exception; |
28 |
+ |
|
29 |
+ /** |
|
30 |
+ * @author 권지수 |
|
31 |
+ * @since 2024.08.01 |
|
32 |
+ * |
|
33 |
+ * 단원 평가에 등록된 문제 삭제 |
|
34 |
+ */ |
|
35 |
+ int deleteEvalProblem(EvalProblemVO evalProblemVO) throws Exception; |
|
28 | 36 |
} |
--- src/main/java/com/takensoft/ai_lms/lms/eval_problem/service/Impl/EvalProblemImpl.java
+++ src/main/java/com/takensoft/ai_lms/lms/eval_problem/service/Impl/EvalProblemImpl.java
... | ... | @@ -39,4 +39,14 @@ |
39 | 39 |
public int unitProblemNum(EvalProblemVO evalProblemVO) throws Exception { |
40 | 40 |
return evalProblemDAO.unitProblemNum(evalProblemVO); |
41 | 41 |
} |
42 |
+ |
|
43 |
+ /** |
|
44 |
+ * @author 권지수 |
|
45 |
+ * @since 2024.08.01 |
|
46 |
+ * |
|
47 |
+ * 단원 평가에 등록된 문제 삭제 |
|
48 |
+ */ |
|
49 |
+ public int deleteEvalProblem(EvalProblemVO evalProblemVO) throws Exception { |
|
50 |
+ return evalProblemDAO.deleteEvalProblem(evalProblemVO); |
|
51 |
+ } |
|
42 | 52 |
} |
--- src/main/java/com/takensoft/ai_lms/lms/eval_problem/web/EvalProblemController.java
+++ src/main/java/com/takensoft/ai_lms/lms/eval_problem/web/EvalProblemController.java
... | ... | @@ -52,4 +52,17 @@ |
52 | 52 |
|
53 | 53 |
return new ResponseEntity<>(result, HttpStatus.OK); |
54 | 54 |
} |
55 |
+ |
|
56 |
+ /** |
|
57 |
+ * @author 권지수 |
|
58 |
+ * @since 2024.08.01 |
|
59 |
+ * |
|
60 |
+ * 단원 평가에 등록된 문제 삭제 |
|
61 |
+ */ |
|
62 |
+ @PostMapping(path = "/deleteEvalProblem.json") |
|
63 |
+ public ResponseEntity<?> deleteEvalProblem(@RequestBody EvalProblemVO evalProblemVO) throws Exception { |
|
64 |
+ int result = evalProblemService.deleteEvalProblem(evalProblemVO); |
|
65 |
+ |
|
66 |
+ return new ResponseEntity<>(result, HttpStatus.OK); |
|
67 |
+ } |
|
55 | 68 |
} |
--- src/main/java/com/takensoft/ai_lms/lms/problem/vo/ProblemVO.java
+++ src/main/java/com/takensoft/ai_lms/lms/problem/vo/ProblemVO.java
... | ... | @@ -26,4 +26,10 @@ |
26 | 26 |
private String prblmTypeId; |
27 | 27 |
// 카테고리 아이디 |
28 | 28 |
private String prblmCtgryId; |
29 |
+ // 사용자 아이디(선생) |
|
30 |
+ private String userId; |
|
31 |
+ // 책 아이디 |
|
32 |
+ private String bookId; |
|
33 |
+ // 단원 아이디 |
|
34 |
+ private String unitId; |
|
29 | 35 |
} |
+++ src/main/java/com/takensoft/ai_lms/lms/problem_log/dao/ProblemLogDAO.java
... | ... | @@ -0,0 +1,47 @@ |
1 | +package com.takensoft.ai_lms.lms.problem_log.dao; | |
2 | + | |
3 | +import com.takensoft.ai_lms.lms.problem_log.vo.ProblemLogVO; | |
4 | +import org.egovframe.rte.psl.dataaccess.mapper.Mapper; | |
5 | + | |
6 | +/** | |
7 | + * @author 권지수 | |
8 | + * @since 2024.08.01 | |
9 | + * | |
10 | + * 문제 풀이 로그 DAO 클래스 | |
11 | + */ | |
12 | + | |
13 | +@Mapper("problemLogDAO") | |
14 | +public interface ProblemLogDAO { | |
15 | + | |
16 | + /** | |
17 | + * @author 권지수 | |
18 | + * @since 2024.08.01 | |
19 | + * | |
20 | + * 문제 풀이 로그 정보 입력 | |
21 | + */ | |
22 | + int insertProblemLog(ProblemLogVO problemLogVO) throws Exception; | |
23 | + | |
24 | + /** | |
25 | + * @author 권지수 | |
26 | + * @since 2024.08.02 | |
27 | + * | |
28 | + * 문제 풀이 로그 정보 수정 | |
29 | + */ | |
30 | + int updateProblemLog(ProblemLogVO problemLogVO) throws Exception; | |
31 | + | |
32 | + /** | |
33 | + * @author 권지수 | |
34 | + * @since 2024.08.02 | |
35 | + * | |
36 | + * 문제 풀이 로그 정보 삭제 | |
37 | + */ | |
38 | + int deleteProblemLog(ProblemLogVO problemLogVO) throws Exception; | |
39 | + | |
40 | + /** | |
41 | + * @author 권지수 | |
42 | + * @since 2024.08.02 | |
43 | + * | |
44 | + * 문제 풀이 로그 정보 조회 | |
45 | + */ | |
46 | + ProblemLogVO problemLogInfo(ProblemLogVO problemLogVO) throws Exception; | |
47 | +} |
+++ src/main/java/com/takensoft/ai_lms/lms/problem_log/service/Impl/ProblemLogServiceImpl.java
... | ... | @@ -0,0 +1,68 @@ |
1 | +package com.takensoft.ai_lms.lms.problem_log.service.Impl; | |
2 | + | |
3 | +import com.takensoft.ai_lms.common.idgen.service.IdgenService; | |
4 | +import com.takensoft.ai_lms.lms.problem_log.dao.ProblemLogDAO; | |
5 | +import com.takensoft.ai_lms.lms.problem_log.service.ProblemLogService; | |
6 | +import com.takensoft.ai_lms.lms.problem_log.vo.ProblemLogVO; | |
7 | +import lombok.RequiredArgsConstructor; | |
8 | +import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl; | |
9 | +import org.springframework.stereotype.Service; | |
10 | + | |
11 | +/** | |
12 | + * @author 권지수 | |
13 | + * @since 2024.08.01 | |
14 | + * | |
15 | + * 문제 풀이 로그 ServiceImpl 클래스 | |
16 | + */ | |
17 | + | |
18 | +@Service("problemLogService") | |
19 | +@RequiredArgsConstructor | |
20 | +public class ProblemLogServiceImpl extends EgovAbstractServiceImpl implements ProblemLogService { | |
21 | + | |
22 | + private final ProblemLogDAO problemLogDAO; | |
23 | + private final IdgenService problemLogIdgn; | |
24 | + | |
25 | + /** | |
26 | + * @author 권지수 | |
27 | + * @since 2024.07.26 | |
28 | + * | |
29 | + * 문제 풀이 로그 정보 입력 | |
30 | + */ | |
31 | + @Override | |
32 | + public int insertProblemLog(ProblemLogVO problemLogVO) throws Exception { | |
33 | + String problemLogId = problemLogIdgn.getNextStringId(); | |
34 | + problemLogVO.setPrblmLogId(problemLogId); | |
35 | + | |
36 | + return problemLogDAO.insertProblemLog(problemLogVO); | |
37 | + } | |
38 | + | |
39 | + /** | |
40 | + * @author 권지수 | |
41 | + * @since 2024.08.02 | |
42 | + * | |
43 | + * 문제 풀이 로그 정보 수정 | |
44 | + */ | |
45 | + public int updateProblemLog(ProblemLogVO problemLogVO) throws Exception { | |
46 | + return problemLogDAO.updateProblemLog(problemLogVO); | |
47 | + } | |
48 | + | |
49 | + /** | |
50 | + * @author 권지수 | |
51 | + * @since 2024.08.02 | |
52 | + * | |
53 | + * 문제 풀이 로그 정보 삭제 | |
54 | + */ | |
55 | + public int deleteProblemLog(ProblemLogVO problemLogVO) throws Exception { | |
56 | + return problemLogDAO.deleteProblemLog(problemLogVO); | |
57 | + } | |
58 | + | |
59 | + /** | |
60 | + * @author 권지수 | |
61 | + * @since 2024.08.02 | |
62 | + * | |
63 | + * 문제 풀이 로그 정보 조회 | |
64 | + */ | |
65 | + public ProblemLogVO problemLogInfo(ProblemLogVO problemLogVO) throws Exception { | |
66 | + return problemLogDAO.problemLogInfo(problemLogVO); | |
67 | + } | |
68 | +} |
+++ src/main/java/com/takensoft/ai_lms/lms/problem_log/service/ProblemLogService.java
... | ... | @@ -0,0 +1,45 @@ |
1 | +package com.takensoft.ai_lms.lms.problem_log.service; | |
2 | + | |
3 | +import com.takensoft.ai_lms.lms.problem_log.vo.ProblemLogVO; | |
4 | + | |
5 | +/** | |
6 | + * @author 권지수 | |
7 | + * @since 2024.08.01 | |
8 | + * | |
9 | + * 문제 풀이 로그 Service 클래스 | |
10 | + */ | |
11 | + | |
12 | +public interface ProblemLogService { | |
13 | + | |
14 | + /** | |
15 | + * @author 권지수 | |
16 | + * @since 2024.08.01 | |
17 | + * | |
18 | + * 문제 풀이 로그 정보 입력 | |
19 | + */ | |
20 | + int insertProblemLog(ProblemLogVO problemLogVO) throws Exception; | |
21 | + | |
22 | + /** | |
23 | + * @author 권지수 | |
24 | + * @since 2024.08.02 | |
25 | + * | |
26 | + * 문제 풀이 로그 정보 수정 | |
27 | + */ | |
28 | + int updateProblemLog(ProblemLogVO problemLogVO) throws Exception; | |
29 | + | |
30 | + /** | |
31 | + * @author 권지수 | |
32 | + * @since 2024.08.02 | |
33 | + * | |
34 | + * 문제 풀이 로그 정보 삭제 | |
35 | + */ | |
36 | + int deleteProblemLog(ProblemLogVO problemLogVO) throws Exception; | |
37 | + | |
38 | + /** | |
39 | + * @author 권지수 | |
40 | + * @since 2024.08.02 | |
41 | + * | |
42 | + * 문제 풀이 로그 정보 조회 | |
43 | + */ | |
44 | + ProblemLogVO problemLogInfo(ProblemLogVO problemLogVO) throws Exception; | |
45 | +} |
+++ src/main/java/com/takensoft/ai_lms/lms/problem_log/vo/ProblemLogVO.java
... | ... | @@ -0,0 +1,31 @@ |
1 | +package com.takensoft.ai_lms.lms.problem_log.vo; | |
2 | + | |
3 | +import lombok.AllArgsConstructor; | |
4 | +import lombok.Getter; | |
5 | +import lombok.NoArgsConstructor; | |
6 | +import lombok.Setter; | |
7 | + | |
8 | +@Getter | |
9 | +@Setter | |
10 | +@AllArgsConstructor | |
11 | +@NoArgsConstructor | |
12 | +public class ProblemLogVO { | |
13 | + // 문제 풀이 로그 아이디 | |
14 | + private String prblmLogId; | |
15 | + // 학생 답변 | |
16 | + private String prblmAns; | |
17 | + // 풀이 시작 시간 | |
18 | + private String prblmStrtTm; | |
19 | + // 풀이 종료 시간 | |
20 | + private String prblmEndTm; | |
21 | + // 학생 정답 맞춤 여부 | |
22 | + private String prblmLogAnsYn; | |
23 | + // 학생 재풀이 번호 | |
24 | + private int prblmLogAnsCnt; | |
25 | + // 파일 관리 아이디 | |
26 | + private String fileMngId; | |
27 | + // 학생 아이디 | |
28 | + private String stdId; | |
29 | + // 문제 아이디 | |
30 | + private String prblmId; | |
31 | +} |
+++ src/main/java/com/takensoft/ai_lms/lms/problem_log/web/ProblemLogController.java
... | ... | @@ -0,0 +1,81 @@ |
1 | +package com.takensoft.ai_lms.lms.problem_log.web; | |
2 | + | |
3 | +import com.takensoft.ai_lms.lms.problem.vo.ProblemVO; | |
4 | +import com.takensoft.ai_lms.lms.problem_log.service.ProblemLogService; | |
5 | +import com.takensoft.ai_lms.lms.problem_log.vo.ProblemLogVO; | |
6 | +import lombok.RequiredArgsConstructor; | |
7 | +import lombok.extern.slf4j.Slf4j; | |
8 | +import org.springframework.http.HttpStatus; | |
9 | +import org.springframework.http.ResponseEntity; | |
10 | +import org.springframework.web.bind.annotation.PostMapping; | |
11 | +import org.springframework.web.bind.annotation.RequestBody; | |
12 | +import org.springframework.web.bind.annotation.RequestMapping; | |
13 | +import org.springframework.web.bind.annotation.RestController; | |
14 | + | |
15 | +/** | |
16 | + * @author 권지수 | |
17 | + * @since 2024.08.01 | |
18 | + * | |
19 | + * 문제 풀이 로그 Controller 클래스 | |
20 | + */ | |
21 | + | |
22 | +@RestController | |
23 | +@RequiredArgsConstructor | |
24 | +@Slf4j | |
25 | +@RequestMapping(value = "/problemLog") | |
26 | +public class ProblemLogController { | |
27 | + | |
28 | + private final ProblemLogService problemLogService; | |
29 | + | |
30 | + /** | |
31 | + * @author 권지수 | |
32 | + * @since 2024.08.01 | |
33 | + * | |
34 | + * 문제 풀이 로그 정보 입력 | |
35 | + */ | |
36 | + @PostMapping(path = "/insertProblemLog.json") | |
37 | + public ResponseEntity<?> insertProblemLog(@RequestBody ProblemLogVO problemLogVO) throws Exception { | |
38 | + int result = problemLogService.insertProblemLog(problemLogVO); | |
39 | + | |
40 | + return new ResponseEntity<>(result, HttpStatus.OK); | |
41 | + } | |
42 | + | |
43 | + /** | |
44 | + * @author 권지수 | |
45 | + * @since 2024.08.02 | |
46 | + * | |
47 | + * 문제 풀이 로그 정보 수정 | |
48 | + */ | |
49 | + @PostMapping(path = "/updateProblemLog.json") | |
50 | + public ResponseEntity<?> updateProblemLog(@RequestBody ProblemLogVO problemLogVO) throws Exception { | |
51 | + int result = problemLogService.updateProblemLog(problemLogVO); | |
52 | + | |
53 | + return new ResponseEntity<>(result, HttpStatus.OK); | |
54 | + } | |
55 | + | |
56 | + /** | |
57 | + * @author 권지수 | |
58 | + * @since 2024.08.02 | |
59 | + * | |
60 | + * 문제 풀이 로그 정보 삭제 | |
61 | + */ | |
62 | + @PostMapping(path = "/deleteProblemLog.json") | |
63 | + public ResponseEntity<?> deleteProblemLog(@RequestBody ProblemLogVO problemLogVO) throws Exception { | |
64 | + int result = problemLogService.deleteProblemLog(problemLogVO); | |
65 | + | |
66 | + return new ResponseEntity<>(result, HttpStatus.OK); | |
67 | + } | |
68 | + | |
69 | + /** | |
70 | + * @author 권지수 | |
71 | + * @since 2024.08.02 | |
72 | + * | |
73 | + * 문제 풀이 로그 정보 조회 | |
74 | + */ | |
75 | + @PostMapping(path = "/problemLogInfo.json") | |
76 | + public ResponseEntity<?> problemLogInfo(@RequestBody ProblemLogVO problemLogVO) throws Exception { | |
77 | + ProblemLogVO result = problemLogService.problemLogInfo(problemLogVO); | |
78 | + | |
79 | + return new ResponseEntity<>(result, HttpStatus.OK); | |
80 | + } | |
81 | +} |
--- src/main/java/com/takensoft/ai_lms/lms/text/vo/TextVO.java
+++ src/main/java/com/takensoft/ai_lms/lms/text/vo/TextVO.java
... | ... | @@ -35,5 +35,9 @@ |
35 | 35 |
private String textTypeId; |
36 | 36 |
// 사용자 아이디(선생님) |
37 | 37 |
private String userId; |
38 |
+ // 책 아이디 |
|
39 |
+ private String bookId; |
|
40 |
+ // 단원 아이디 |
|
41 |
+ private String unitId; |
|
38 | 42 |
|
39 | 43 |
} |
--- src/main/java/com/takensoft/ai_lms/lms/unit/dao/UnitDAO.java
+++ src/main/java/com/takensoft/ai_lms/lms/unit/dao/UnitDAO.java
... | ... | @@ -3,6 +3,7 @@ |
3 | 3 |
import com.takensoft.ai_lms.lms.unit.vo.UnitVO; |
4 | 4 |
import org.egovframe.rte.psl.dataaccess.mapper.Mapper; |
5 | 5 |
|
6 |
+import java.util.HashMap; |
|
6 | 7 |
import java.util.List; |
7 | 8 |
|
8 | 9 |
/** |
... | ... | @@ -52,5 +53,5 @@ |
52 | 53 |
* |
53 | 54 |
* 단원 상세 정보 |
54 | 55 |
*/ |
55 |
- List<UnitVO> unitDetail(UnitVO unitVO) throws Exception; |
|
56 |
+ List<HashMap<String, Object>> unitDetail(UnitVO unitVO) throws Exception; |
|
56 | 57 |
} |
--- src/main/java/com/takensoft/ai_lms/lms/unit/service/Impl/UnitServiceImpl.java
+++ src/main/java/com/takensoft/ai_lms/lms/unit/service/Impl/UnitServiceImpl.java
... | ... | @@ -81,7 +81,7 @@ |
81 | 81 |
* 단원 상세 정보 |
82 | 82 |
*/ |
83 | 83 |
@Override |
84 |
- public List<UnitVO> unitDetail(UnitVO unitVO) throws Exception { |
|
84 |
+ public List<HashMap<String, Object>> unitDetail(UnitVO unitVO) throws Exception { |
|
85 | 85 |
return unitDAO.unitDetail(unitVO); |
86 | 86 |
} |
87 | 87 |
|
--- src/main/java/com/takensoft/ai_lms/lms/unit/service/UnitService.java
+++ src/main/java/com/takensoft/ai_lms/lms/unit/service/UnitService.java
... | ... | @@ -51,6 +51,6 @@ |
51 | 51 |
* |
52 | 52 |
* 단원 상세 정보 |
53 | 53 |
*/ |
54 |
- List<UnitVO> unitDetail (UnitVO unitVO) throws Exception; |
|
54 |
+ List<HashMap<String, Object>> unitDetail (UnitVO unitVO) throws Exception; |
|
55 | 55 |
|
56 | 56 |
} |
--- src/main/java/com/takensoft/ai_lms/lms/unit/web/UnitController.java
+++ src/main/java/com/takensoft/ai_lms/lms/unit/web/UnitController.java
... | ... | @@ -84,7 +84,7 @@ |
84 | 84 |
*/ |
85 | 85 |
@PostMapping(path = "/unitDetail.json") |
86 | 86 |
public ResponseEntity<?> unitDetail(@RequestBody UnitVO unitVO) throws Exception { |
87 |
- List<UnitVO> result = unitService.unitDetail(unitVO); |
|
87 |
+ List<HashMap<String, Object>> result = unitService.unitDetail(unitVO); |
|
88 | 88 |
return new ResponseEntity<>(result, HttpStatus.OK); |
89 | 89 |
} |
90 | 90 |
} |
--- src/main/java/com/takensoft/ai_lms/lms/user_class/dao/UserClassDAO.java
+++ src/main/java/com/takensoft/ai_lms/lms/user_class/dao/UserClassDAO.java
... | ... | @@ -6,7 +6,7 @@ |
6 | 6 |
import java.util.List; |
7 | 7 |
|
8 | 8 |
/** |
9 |
- * @author |
|
9 |
+ * @author 권민수 |
|
10 | 10 |
* @since 2024.07.31 |
11 | 11 |
* |
12 | 12 |
* 반별 학생 맵핑 DAO 인터페이스 |
--- src/main/java/com/takensoft/ai_lms/lms/user_class/service/Impl/UserClassServiceImpl.java
+++ src/main/java/com/takensoft/ai_lms/lms/user_class/service/Impl/UserClassServiceImpl.java
... | ... | @@ -10,11 +10,12 @@ |
10 | 10 |
import java.util.List; |
11 | 11 |
|
12 | 12 |
/** |
13 |
- * @author |
|
13 |
+ * @author 권민수 |
|
14 | 14 |
* @since 2024.07.31 |
15 | 15 |
* |
16 | 16 |
* 반별 학생 맵핑 Service 구현 클래스 |
17 | 17 |
*/ |
18 |
+ |
|
18 | 19 |
@Service |
19 | 20 |
@RequiredArgsConstructor |
20 | 21 |
public class UserClassServiceImpl implements UserClassService { |
--- src/main/java/com/takensoft/ai_lms/lms/user_class/service/UserClassService.java
+++ src/main/java/com/takensoft/ai_lms/lms/user_class/service/UserClassService.java
... | ... | @@ -5,7 +5,7 @@ |
5 | 5 |
import java.util.List; |
6 | 6 |
|
7 | 7 |
/** |
8 |
- * @author |
|
8 |
+ * @author 권민수 |
|
9 | 9 |
* @since 2024.07.31 |
10 | 10 |
* |
11 | 11 |
* 반별 학생 맵핑 Service 인터페이스 |
--- src/main/java/com/takensoft/ai_lms/lms/user_class/web/UserClassController.java
+++ src/main/java/com/takensoft/ai_lms/lms/user_class/web/UserClassController.java
... | ... | @@ -10,7 +10,7 @@ |
10 | 10 |
import java.util.Map; |
11 | 11 |
|
12 | 12 |
/** |
13 |
- * @author |
|
13 |
+ * @author 권민수 |
|
14 | 14 |
* @since 2024.07.31 |
15 | 15 |
* |
16 | 16 |
* 반별 학생 맵핑 컨트롤러 |
+++ src/main/java/com/takensoft/ai_lms/lms/user_unit/dao/UserUnitDAO.java
... | ... | @@ -0,0 +1,33 @@ |
1 | +package com.takensoft.ai_lms.lms.user_unit.dao; | |
2 | + | |
3 | +import com.takensoft.ai_lms.lms.user_unit.vo.UserUnitVO; | |
4 | +import org.egovframe.rte.psl.dataaccess.mapper.Mapper; | |
5 | + | |
6 | +import java.util.List; | |
7 | + | |
8 | +/** | |
9 | + * @author 권민수 | |
10 | + * @since 2024.08.02 | |
11 | + * | |
12 | + * 사용자 학습 진행 정보 DAO 인터페이스 | |
13 | + */ | |
14 | + | |
15 | +@Mapper("userUnitDAO") | |
16 | +public interface UserUnitDAO { | |
17 | + | |
18 | + // 유저 학습 정보 리스트 조회 | |
19 | + List<UserUnitVO> getUserUnits(); | |
20 | + | |
21 | + // 특정 유저 학습 정보 조회 | |
22 | + UserUnitVO getUserUnitById(UserUnitVO userUnit); | |
23 | + | |
24 | + // 유저 학습 정보 생성 | |
25 | + int insertUserUnit(UserUnitVO userUnit); | |
26 | + | |
27 | + // 유저 학습 정보 수정 | |
28 | + int updateUserUnit(UserUnitVO userUnit); | |
29 | + | |
30 | + // 유저 학습 정보 삭제 | |
31 | + int deleteUserUnit(UserUnitVO userUnit); | |
32 | + | |
33 | +} |
+++ src/main/java/com/takensoft/ai_lms/lms/user_unit/service/Impl/UserUnitServiceImpl.java
... | ... | @@ -0,0 +1,60 @@ |
1 | +package com.takensoft.ai_lms.lms.user_unit.service.Impl; | |
2 | + | |
3 | +import com.takensoft.ai_lms.lms.user_unit.dao.UserUnitDAO; | |
4 | +import com.takensoft.ai_lms.lms.user_unit.service.UserUnitService; | |
5 | +import com.takensoft.ai_lms.lms.user_unit.vo.UserUnitVO; | |
6 | +import lombok.RequiredArgsConstructor; | |
7 | +import org.springframework.stereotype.Service; | |
8 | + | |
9 | +import java.sql.Timestamp; | |
10 | +import java.time.LocalDateTime; | |
11 | +import java.time.format.DateTimeFormatter; | |
12 | +import java.util.List; | |
13 | + | |
14 | +/** | |
15 | + * @author 권민수 | |
16 | + * @since 2024.08.02 | |
17 | + * | |
18 | + * 사용자 학습 진행 정보 서비스 구현 클래스 | |
19 | + */ | |
20 | + | |
21 | +@Service | |
22 | +@RequiredArgsConstructor | |
23 | +public class UserUnitServiceImpl implements UserUnitService { | |
24 | + | |
25 | + private final UserUnitDAO userUnitDAO; | |
26 | + | |
27 | + @Override | |
28 | + public List<UserUnitVO> getUserUnits() { | |
29 | + return userUnitDAO.getUserUnits(); | |
30 | + } | |
31 | + | |
32 | + @Override | |
33 | + public UserUnitVO getUserUnitById(UserUnitVO userUnit) { | |
34 | + return userUnitDAO.getUserUnitById(userUnit); | |
35 | + } | |
36 | + | |
37 | + @Override | |
38 | + public void insertUserUnit(UserUnitVO userUnit) { | |
39 | + userUnitDAO.insertUserUnit(userUnit); | |
40 | + } | |
41 | + | |
42 | + @Override | |
43 | + public void updateUserUnit(UserUnitVO userUnit) { | |
44 | + // "yyyy-MM-dd HH:mm:ss.SSSSSS" 형식의 문자열을 Timestamp로 변환 | |
45 | + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSSSS"); | |
46 | + LocalDateTime localDateTime = LocalDateTime.parse(userUnit.getCmptnTm(), formatter); | |
47 | + Timestamp timestamp = Timestamp.valueOf(localDateTime); | |
48 | + | |
49 | + // DAO에 전달하기 전에 변환된 타임스탬프 설정 | |
50 | + userUnit.setCmptnTm(timestamp.toString()); | |
51 | + | |
52 | + userUnitDAO.updateUserUnit(userUnit); | |
53 | + } | |
54 | + | |
55 | + @Override | |
56 | + public void deleteUserUnit(UserUnitVO userUnit) { | |
57 | + userUnitDAO.deleteUserUnit(userUnit); | |
58 | + } | |
59 | + | |
60 | +} |
+++ src/main/java/com/takensoft/ai_lms/lms/user_unit/service/UserUnitService.java
... | ... | @@ -0,0 +1,31 @@ |
1 | +package com.takensoft.ai_lms.lms.user_unit.service; | |
2 | + | |
3 | +import com.takensoft.ai_lms.lms.user_unit.vo.UserUnitVO; | |
4 | + | |
5 | +import java.util.List; | |
6 | + | |
7 | +/** | |
8 | + * @author 권민수 | |
9 | + * @since 2024.08.02 | |
10 | + * | |
11 | + * 사용자 학습 진행 정보 서비스 인터페이스 | |
12 | + */ | |
13 | + | |
14 | +public interface UserUnitService { | |
15 | + | |
16 | + // 유저 학습 정보 리스트 조회 | |
17 | + List<UserUnitVO> getUserUnits(); | |
18 | + | |
19 | + // 특정 유저 학습 정보 조회 | |
20 | + UserUnitVO getUserUnitById(UserUnitVO userUnit); | |
21 | + | |
22 | + // 유저 학습 정보 생성 | |
23 | + void insertUserUnit(UserUnitVO userUnit); | |
24 | + | |
25 | + // 유저 학습 정보 수정 | |
26 | + void updateUserUnit(UserUnitVO userUnit); | |
27 | + | |
28 | + // 유저 학습 정보 삭제 | |
29 | + void deleteUserUnit(UserUnitVO userUnit); | |
30 | + | |
31 | +} |
+++ src/main/java/com/takensoft/ai_lms/lms/user_unit/vo/UserUnitVO.java
... | ... | @@ -0,0 +1,24 @@ |
1 | +package com.takensoft.ai_lms.lms.user_unit.vo; | |
2 | + | |
3 | +import lombok.Getter; | |
4 | +import lombok.Setter; | |
5 | + | |
6 | +/** | |
7 | + * @author 권민수 | |
8 | + * @since 2024.08.02 | |
9 | + * | |
10 | + * 사용자 학습 진행 정보 VO 클래스 | |
11 | + */ | |
12 | + | |
13 | +@Getter | |
14 | +@Setter | |
15 | +public class UserUnitVO { | |
16 | + | |
17 | + private String unitId; | |
18 | + private String stdId; | |
19 | + private String userId; | |
20 | + private String sclsId; | |
21 | + private String cmptnYn; | |
22 | + private String cmptnTm; | |
23 | + | |
24 | +} |
+++ src/main/java/com/takensoft/ai_lms/lms/user_unit/web/UserUnitController.java
... | ... | @@ -0,0 +1,67 @@ |
1 | +package com.takensoft.ai_lms.lms.user_unit.web; | |
2 | + | |
3 | +import com.takensoft.ai_lms.lms.user_unit.service.UserUnitService; | |
4 | +import com.takensoft.ai_lms.lms.user_unit.vo.UserUnitVO; | |
5 | +import lombok.RequiredArgsConstructor; | |
6 | +import lombok.extern.slf4j.Slf4j; | |
7 | +import org.springframework.web.bind.annotation.PostMapping; | |
8 | +import org.springframework.web.bind.annotation.RequestBody; | |
9 | +import org.springframework.web.bind.annotation.RequestMapping; | |
10 | +import org.springframework.web.bind.annotation.RestController; | |
11 | + | |
12 | +import java.util.List; | |
13 | +import java.util.Map; | |
14 | + | |
15 | +/** | |
16 | + * @author 권민수 | |
17 | + * @since 2024.08.02 | |
18 | + * | |
19 | + * 사용자 학습 진행 정보 컨트롤러 | |
20 | + */ | |
21 | + | |
22 | +@RestController | |
23 | +@RequiredArgsConstructor | |
24 | +@Slf4j | |
25 | +@RequestMapping("/userunit") | |
26 | +public class UserUnitController { | |
27 | + | |
28 | + private final UserUnitService userUnitService; | |
29 | + | |
30 | + // 유저 유닛 리스트 조회 | |
31 | + @PostMapping("/findAll.json") | |
32 | + public List<UserUnitVO> getUserUnits() { | |
33 | + return userUnitService.getUserUnits(); | |
34 | + } | |
35 | + | |
36 | + // 특정 유저 유닛 조회 | |
37 | + @PostMapping("/find.json") | |
38 | + public UserUnitVO getUserUnitById(@RequestBody UserUnitVO userUnit) { | |
39 | + return userUnitService.getUserUnitById(userUnit); | |
40 | + } | |
41 | + | |
42 | + // 유저 유닛 생성 | |
43 | + @PostMapping("/insert.json") | |
44 | + public void insertUserUnit(@RequestBody Map<String, String> req) { | |
45 | + UserUnitVO userUnit = new UserUnitVO(); | |
46 | + userUnit.setUnitId(req.get("unitId")); | |
47 | + userUnit.setStdId(req.get("stdId")); | |
48 | + userUnit.setUserId(req.get("userId")); | |
49 | + userUnit.setSclsId(req.get("sclsId")); | |
50 | + userUnit.setCmptnYn(req.get("cmptnYn")); | |
51 | + userUnit.setCmptnTm(req.get("cmptnTm")); | |
52 | + userUnitService.insertUserUnit(userUnit); | |
53 | + } | |
54 | + | |
55 | + // 유저 유닛 수정 | |
56 | + @PostMapping("/update.json") | |
57 | + public void updateUserUnit(@RequestBody UserUnitVO userUnit) { | |
58 | + userUnitService.updateUserUnit(userUnit); | |
59 | + } | |
60 | + | |
61 | + // 유저 유닛 삭제 | |
62 | + @PostMapping("/delete.json") | |
63 | + public void deleteUserUnit(@RequestBody UserUnitVO userUnit) { | |
64 | + userUnitService.deleteUserUnit(userUnit); | |
65 | + } | |
66 | + | |
67 | +} |
--- src/main/resources/mybatis/mapper/lms/book-SQL.xml
+++ src/main/resources/mybatis/mapper/lms/book-SQL.xml
... | ... | @@ -17,6 +17,7 @@ |
17 | 17 |
book_id, |
18 | 18 |
book_nm |
19 | 19 |
FROM book |
20 |
+ ORDER BY book_id |
|
20 | 21 |
</select> |
21 | 22 |
|
22 | 23 |
<!-- |
--- src/main/resources/mybatis/mapper/lms/eval_problem-SQL.xml
+++ src/main/resources/mybatis/mapper/lms/eval_problem-SQL.xml
... | ... | @@ -29,4 +29,15 @@ |
29 | 29 |
WHERE eval_id = #{evalId} |
30 | 30 |
</select> |
31 | 31 |
|
32 |
+ <!-- |
|
33 |
+ 작 성 자 : 권지수 |
|
34 |
+ 작 성 일 : 2024.08.01 |
|
35 |
+ 내 용 : 단원 평가에 등록된 문제 삭제 |
|
36 |
+ --> |
|
37 |
+ <delete id="deleteEvalProblem" parameterType="EvalProblemVO"> |
|
38 |
+ DELETE FROM eval_problem |
|
39 |
+ WHERE prblm_id = #{prblmId} |
|
40 |
+ AND eval_id = #{evalId} |
|
41 |
+ </delete> |
|
42 |
+ |
|
32 | 43 |
</mapper>(파일 끝에 줄바꿈 문자 없음) |
--- src/main/resources/mybatis/mapper/lms/problem-SQL.xml
+++ src/main/resources/mybatis/mapper/lms/problem-SQL.xml
... | ... | @@ -2,17 +2,6 @@ |
2 | 2 |
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
3 | 3 |
<mapper namespace="com.takensoft.ai_lms.lms.problem.dao.ProblemDAO"> |
4 | 4 |
|
5 |
- <!--resultMap id="problemMap" type="ProblemVO"> |
|
6 |
- <result property="prblmId" column="prblm_id"/> |
|
7 |
- <result property="prblmExpln" column="prblm_expln"/> |
|
8 |
- <result property="prblmScr" column="prblm_scr"/> |
|
9 |
- <result property="prblmHint" column="prblm_hint"/> |
|
10 |
- <result property="prblmCmmt" column="prblm_cmmt"/> |
|
11 |
- <result property="fileMngId" column="file_mng_id"/> |
|
12 |
- <result property="prblmTypeId" column="prblm_type_id"/> |
|
13 |
- <result property="prblmCtgryId" column="prblm_ctgry_id"/> |
|
14 |
- </resultMap--> |
|
15 |
- |
|
16 | 5 |
<!-- |
17 | 6 |
작 성 자 : 권지수 |
18 | 7 |
작 성 일 : 2024.07.25 |
... | ... | @@ -27,7 +16,10 @@ |
27 | 16 |
prblm_cmmt, |
28 | 17 |
file_mng_id, |
29 | 18 |
prblm_type_id, |
30 |
- prblm_ctgry_id |
|
19 |
+ prblm_ctgry_id, |
|
20 |
+ user_id, |
|
21 |
+ book_id, |
|
22 |
+ unit_id |
|
31 | 23 |
FROM problem |
32 | 24 |
WHERE prblm_id = #{prblmId} |
33 | 25 |
</select> |
... | ... | @@ -62,7 +54,10 @@ |
62 | 54 |
prblm_cmmt, |
63 | 55 |
file_mng_id, |
64 | 56 |
prblm_type_id, |
65 |
- prblm_ctgry_id |
|
57 |
+ prblm_ctgry_id, |
|
58 |
+ user_id, |
|
59 |
+ book_id, |
|
60 |
+ unit_id |
|
66 | 61 |
) VALUES ( |
67 | 62 |
#{prblmId}, |
68 | 63 |
#{prblmExpln}, |
... | ... | @@ -71,7 +66,10 @@ |
71 | 66 |
#{prblmCmmt}, |
72 | 67 |
#{fileMngId}, |
73 | 68 |
#{prblmTypeId}, |
74 |
- #{prblmCtgryId} |
|
69 |
+ #{prblmCtgryId}, |
|
70 |
+ #{userId}, |
|
71 |
+ #{bookId}, |
|
72 |
+ #{unitId} |
|
75 | 73 |
) |
76 | 74 |
</insert> |
77 | 75 |
|
... | ... | @@ -110,7 +108,10 @@ |
110 | 108 |
prblm_cmmt = #{prblmCmmt}, |
111 | 109 |
file_mng_id = #{fileMngId}, |
112 | 110 |
prblm_type_id = #{prblmTypeId}, |
113 |
- prblm_ctgry_id = #{prblmCtgryId} |
|
111 |
+ prblm_ctgry_id = #{prblmCtgryId}, |
|
112 |
+ user_id = #{userId}, |
|
113 |
+ book_id = #{bookId}, |
|
114 |
+ unit_id = #{unitId} |
|
114 | 115 |
WHERE prblm_id = #{prblmId} |
115 | 116 |
</update> |
116 | 117 |
|
... | ... | @@ -152,7 +153,10 @@ |
152 | 153 |
prblm_cmmt, |
153 | 154 |
file_mng_id, |
154 | 155 |
prblm_type_id, |
155 |
- prblm_ctgry_id |
|
156 |
+ prblm_ctgry_id, |
|
157 |
+ user_id, |
|
158 |
+ book_id, |
|
159 |
+ unit_id |
|
156 | 160 |
FROM problem |
157 | 161 |
WHERE 1 = 1 |
158 | 162 |
<if test="option != null and keyword != null"> |
... | ... | @@ -191,7 +195,10 @@ |
191 | 195 |
p.prblm_cmmt AS prblmCmmt, |
192 | 196 |
p.file_mng_id AS fileMngId, |
193 | 197 |
p.prblm_type_id AS prblmTypeId, |
194 |
- p.prblm_ctgry_id AS prblmCtgryId |
|
198 |
+ p.prblm_ctgry_id AS prblmCtgryId, |
|
199 |
+ p.user_id AS userId, |
|
200 |
+ p.book_id AS bookId, |
|
201 |
+ p.unit_id AS unitId |
|
195 | 202 |
FROM |
196 | 203 |
eval_problem ep |
197 | 204 |
JOIN |
+++ src/main/resources/mybatis/mapper/lms/problem_log-SQL.xml
... | ... | @@ -0,0 +1,84 @@ |
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |
3 | +<mapper namespace="com.takensoft.ai_lms.lms.problem_log.dao.ProblemLogDAO"> | |
4 | + | |
5 | + <!-- | |
6 | + 작 성 자 : 권지수 | |
7 | + 작 성 일 : 2024.08.01 | |
8 | + 내 용 : 문제 풀이 로그 정보 insert | |
9 | + --> | |
10 | + <insert id="insertProblemLog" parameterType="ProblemLogVO"> | |
11 | + INSERT INTO problem_log ( | |
12 | + prblm_log_id, | |
13 | + prblm_ans, | |
14 | + prblm_strt_tm, | |
15 | + prblm_end_tm, | |
16 | + prblm_log_ans_yn, | |
17 | + prblm_log_ans_cnt, | |
18 | + file_mng_id, | |
19 | + std_id, | |
20 | + prblm_id | |
21 | + ) VALUES ( | |
22 | + #{prblmLogId}, | |
23 | + #{prblmAns}, | |
24 | + #{prblmStrtTm}, | |
25 | + #{prblmEndTm}, | |
26 | + #{prblmLogAnsYn} , | |
27 | + #{prblmLogAnsCnt} , | |
28 | + #{fileMngId}, | |
29 | + #{stdId}, | |
30 | + #{prblmId} | |
31 | + ) | |
32 | + </insert> | |
33 | + | |
34 | + <!-- | |
35 | + 작 성 자 : 권지수 | |
36 | + 작 성 일 : 2024.08.02 | |
37 | + 내 용 : 문제 풀이 로그 정보 update | |
38 | + --> | |
39 | + <update id="updateProblemLog" parameterType="ProblemLogVO"> | |
40 | + UPDATE problem_log | |
41 | + SET | |
42 | + prblm_ans = #{prblmAns}, | |
43 | + prblm_strt_tm = #{prblmStrtTm}, | |
44 | + prblm_end_tm = #{prblmEndTm}, | |
45 | + prblm_log_ans_yn = #{prblmLogAnsYn}, | |
46 | + prblm_log_ans_cnt = #{prblmLogAnsCnt}, | |
47 | + file_mng_id = #{fileMngId}, | |
48 | + std_id = #{stdId}, | |
49 | + prblm_id = #{prblmId} | |
50 | + WHERE prblm_log_id = #{prblmLogId} | |
51 | + </update> | |
52 | + | |
53 | + <!-- | |
54 | + 작 성 자 : 권지수 | |
55 | + 작 성 일 : 2024.08.02 | |
56 | + 내 용 : 문제 풀이 로그 정보 delete | |
57 | + --> | |
58 | + <delete id="deleteProblemLog" parameterType="ProblemLogVO"> | |
59 | + DELETE FROM problem_log | |
60 | + WHERE prblm_log_id = #{prblmLogId} | |
61 | + </delete> | |
62 | + | |
63 | + <!-- | |
64 | + 작 성 자 : 권지수 | |
65 | + 작 성 일 : 2024.08.02 | |
66 | + 내 용 : 문제 풀이 로그 정보 read | |
67 | + --> | |
68 | + <select id="problemLogInfo" parameterType="ProblemLogVO" resultType="ProblemLogVO"> | |
69 | + SELECT | |
70 | + prblm_log_id, | |
71 | + prblm_ans, | |
72 | + prblm_strt_tm, | |
73 | + prblm_end_tm, | |
74 | + prblm_log_ans_yn, | |
75 | + prblm_log_ans_cnt, | |
76 | + file_mng_id, | |
77 | + std_id, | |
78 | + prblm_id | |
79 | + FROM problem_log | |
80 | + WHERE prblm_log_id = #{prblmLogId} | |
81 | + </select> | |
82 | + | |
83 | + | |
84 | +</mapper>(파일 끝에 줄바꿈 문자 없음) |
--- src/main/resources/mybatis/mapper/lms/text-SQL.xml
+++ src/main/resources/mybatis/mapper/lms/text-SQL.xml
... | ... | @@ -11,6 +11,8 @@ |
11 | 11 |
<result property="fileMngId" column="file_mng_id"/> |
12 | 12 |
<result property="textTypeId" column="text_type_id"/> |
13 | 13 |
<result property="userId" column="user_id"/> |
14 |
+ <result property="bookId" column="book_id"/> |
|
15 |
+ <result property="unitId" column="unit_id"/> |
|
14 | 16 |
</resultMap> |
15 | 17 |
|
16 | 18 |
|
... | ... | @@ -28,6 +30,8 @@ |
28 | 30 |
,file_mng_id |
29 | 31 |
,text_type_id |
30 | 32 |
,user_id |
33 |
+ ,book_id |
|
34 |
+ ,unit_id |
|
31 | 35 |
) VALUES (#{textId} |
32 | 36 |
,#{textTtl} |
33 | 37 |
,#{textCnt} |
... | ... | @@ -36,6 +40,8 @@ |
36 | 40 |
,#{fileMngId} |
37 | 41 |
,#{textTypeId} |
38 | 42 |
,#{userId} |
43 |
+ ,#{bookId} |
|
44 |
+ ,#{unitId} |
|
39 | 45 |
); |
40 | 46 |
</insert> |
41 | 47 |
|
... | ... | @@ -63,6 +69,8 @@ |
63 | 69 |
,file_mng_id |
64 | 70 |
,text_type_id |
65 | 71 |
,user_id |
72 |
+ ,book_id |
|
73 |
+ ,unit_id |
|
66 | 74 |
FROM text |
67 | 75 |
ORDER BY text_id DESC |
68 | 76 |
LIMIT #{pageSize} |
... | ... | @@ -83,6 +91,8 @@ |
83 | 91 |
, file_mng_id |
84 | 92 |
, text_type_id |
85 | 93 |
,user_id |
94 |
+ ,book_id |
|
95 |
+ ,unit_id |
|
86 | 96 |
FROM text |
87 | 97 |
WHERE text_id = #{textId} |
88 | 98 |
ORDER BY text_id DESC |
--- src/main/resources/mybatis/mapper/lms/unit-SQL.xml
+++ src/main/resources/mybatis/mapper/lms/unit-SQL.xml
... | ... | @@ -64,15 +64,26 @@ |
64 | 64 |
|
65 | 65 |
<!-- |
66 | 66 |
작 성 자 : 김건택 |
67 |
- 작 성 일 : 2024.07.25 |
|
67 |
+ 작 성 일 : 2024.08.02 |
|
68 | 68 |
내 용 : 단원 상세 정보 |
69 | 69 |
--> |
70 |
- <select id="unitDetail" parameterType="UnitVO" resultType="com.takensoft.ai_lms.lms.unit.vo.UnitVO"> |
|
71 |
- SELECT unit_id |
|
72 |
- , book_id |
|
73 |
- , unit_nm |
|
74 |
- FROM unit |
|
75 |
- WHERE unit_id = #{unitId} |
|
70 |
+<!-- <select id="unitDetail" parameterType="UnitVO" resultType="com.takensoft.ai_lms.lms.unit.vo.UnitVO">--> |
|
71 |
+<!-- SELECT unit_id--> |
|
72 |
+<!-- , book_id--> |
|
73 |
+<!-- , unit_nm--> |
|
74 |
+<!-- FROM unit--> |
|
75 |
+<!-- WHERE unit_id = #{unitId}--> |
|
76 |
+<!-- </select>--> |
|
77 |
+ |
|
78 |
+ <select id="unitDetail" parameterType="UnitVO" resultType="HashMap"> |
|
79 |
+ SELECT t.text_id |
|
80 |
+ , u.unit_id |
|
81 |
+ , u.book_id |
|
82 |
+ , w.wd_book_id |
|
83 |
+ FROM unit u |
|
84 |
+ JOIN text t ON u.unit_id = t.unit_id |
|
85 |
+ JOIN wordbook w ON u.book_id = w.book_id |
|
86 |
+ WHERE u.book_id = #{bookId} AND u.unit_id = #{unitId}; |
|
76 | 87 |
</select> |
77 | 88 |
|
78 | 89 |
</mapper>(파일 끝에 줄바꿈 문자 없음) |
--- src/main/resources/mybatis/mapper/lms/unit_learning-SQL.xml
+++ src/main/resources/mybatis/mapper/lms/unit_learning-SQL.xml
... | ... | @@ -28,6 +28,7 @@ |
28 | 28 |
JOIN unit u |
29 | 29 |
ON ul.unit_id = u.unit_id |
30 | 30 |
WHERE ul.unit_id = #{unit_id} AND u.book_id = #{book_id} |
31 |
+ ORDER BY seq |
|
31 | 32 |
</select> |
32 | 33 |
|
33 | 34 |
<!-- |
+++ src/main/resources/mybatis/mapper/lms/user_unit-SQL.xml
... | ... | @@ -0,0 +1,67 @@ |
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |
3 | +<mapper namespace="com.takensoft.ai_lms.lms.user_unit.dao.UserUnitDAO"> | |
4 | + | |
5 | + <!-- | |
6 | + 작 성 자 : 권민수 | |
7 | + 작 성 일 : 2024.08.02 | |
8 | + 내 용 : 사용자 학습 진행 정보 테이블 sql 매핑 xml 문서 | |
9 | + --> | |
10 | + | |
11 | + <resultMap id="UserUnitResultMap" type="UserUnitVO"> | |
12 | + <id property="unitId" column="unit_id"/> | |
13 | + <id property="stdId" column="std_id"/> | |
14 | + <id property="userId" column="user_id"/> | |
15 | + <id property="sclsId" column="scls_id"/> | |
16 | + <result property="cmptnYn" column="cmptn_yn"/> | |
17 | + <result property="cmptnTm" column="cmptn_tm"/> | |
18 | + </resultMap> | |
19 | + | |
20 | + <select id="getUserUnits" resultMap="UserUnitResultMap"> | |
21 | + SELECT * FROM ai_lms.user_unit | |
22 | + </select> | |
23 | + | |
24 | + <select id="getUserUnitById" parameterType="UserUnitVO" resultMap="UserUnitResultMap"> | |
25 | + SELECT * FROM ai_lms.user_unit | |
26 | + WHERE unit_id = #{unitId} | |
27 | + AND std_id = #{stdId} | |
28 | + AND user_id = #{userId} | |
29 | + AND scls_id = #{sclsId} | |
30 | + </select> | |
31 | + | |
32 | + <insert id="insertUserUnit" parameterType="UserUnitVO"> | |
33 | + INSERT INTO | |
34 | + ai_lms.user_unit (unit_id, | |
35 | + std_id, | |
36 | + user_id, | |
37 | + scls_id, | |
38 | + cmptn_yn, | |
39 | + cmptn_tm) | |
40 | + VALUES (#{unitId}, | |
41 | + #{stdId}, | |
42 | + #{userId}, | |
43 | + #{sclsId}, | |
44 | + #{cmptnYn}, | |
45 | + TO_TIMESTAMP(#{cmptnTm}, 'YYYY-MM-DD HH24:MI:SS.US')) | |
46 | + </insert> | |
47 | + | |
48 | + <update id="updateUserUnit" parameterType="UserUnitVO"> | |
49 | + UPDATE ai_lms.user_unit | |
50 | + SET cmptn_yn = #{cmptnYn}, | |
51 | + cmptn_tm = TO_TIMESTAMP(#{cmptnTm}, 'YYYY-MM-DD HH24:MI:SS.US') | |
52 | + WHERE unit_id = #{unitId} | |
53 | + AND std_id = #{stdId} | |
54 | + AND user_id = #{userId} | |
55 | + AND scls_id = #{sclsId} | |
56 | + </update> | |
57 | + | |
58 | + <delete id="deleteUserUnit" parameterType="UserUnitVO"> | |
59 | + DELETE FROM ai_lms.user_unit | |
60 | + WHERE unit_id = #{unitId} | |
61 | + AND std_id = #{stdId} | |
62 | + AND user_id = #{userId} | |
63 | + AND scls_id = #{sclsId} | |
64 | + </delete> | |
65 | + | |
66 | + | |
67 | +</mapper>(파일 끝에 줄바꿈 문자 없음) |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?