woals
08-02
240802 권민수 UserUnit crud 기능 추가
@b2e947072fa625849a59882d3f7b606963dc1200
--- src/main/java/com/takensoft/ai_lms/common/confing/SecurityConfig.java
+++ src/main/java/com/takensoft/ai_lms/common/confing/SecurityConfig.java
... | ... | @@ -85,6 +85,7 @@ |
85 | 85 |
.requestMatchers("/survey/**").permitAll() // 설문 조사 진입 허용 |
86 | 86 |
.requestMatchers("/api/**").permitAll() // Google Cloud api 진입 허용 |
87 | 87 |
.requestMatchers("/userclass/**").permitAll() // 반별 학생 맵핑 진입 허용 |
88 |
+ .requestMatchers("/userunit/**").permitAll() // 사용자 학습 진행 정보 진입 허용 |
|
88 | 89 |
.anyRequest().authenticated()); // 나머지 경로는 인증 필요 |
89 | 90 |
|
90 | 91 |
// jwt 필터 처리 적용 |
--- 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/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?