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
+++ src/main/java/com/takensoft/ai_lms/common/confing/SecurityConfig.java
@@ -85,6 +85,7 @@
                 .requestMatchers("/survey/**").permitAll() // 설문 조사 진입 허용
                 .requestMatchers("/api/**").permitAll() // Google Cloud api 진입 허용
                 .requestMatchers("/userclass/**").permitAll() // 반별 학생 맵핑 진입 허용
+                .requestMatchers("/userunit/**").permitAll() // 사용자 학습 진행 정보 진입 허용
                 .anyRequest().authenticated()); // 나머지 경로는 인증 필요
 
         // 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
+++ src/main/java/com/takensoft/ai_lms/lms/user_class/dao/UserClassDAO.java
@@ -6,7 +6,7 @@
 import java.util.List;
 
 /**
- * @author
+ * @author 권민수
  * @since 2024.07.31
  *
  * 반별 학생 맵핑 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
+++ src/main/java/com/takensoft/ai_lms/lms/user_class/service/Impl/UserClassServiceImpl.java
@@ -10,11 +10,12 @@
 import java.util.List;
 
 /**
- * @author
+ * @author 권민수
  * @since 2024.07.31
  *
  * 반별 학생 맵핑 Service 구현 클래스
  */
+
 @Service
 @RequiredArgsConstructor
 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
+++ src/main/java/com/takensoft/ai_lms/lms/user_class/service/UserClassService.java
@@ -5,7 +5,7 @@
 import java.util.List;
 
 /**
- * @author
+ * @author 권민수
  * @since 2024.07.31
  *
  * 반별 학생 맵핑 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
+++ src/main/java/com/takensoft/ai_lms/lms/user_class/web/UserClassController.java
@@ -10,7 +10,7 @@
 import java.util.Map;
 
 /**
- * @author
+ * @author 권민수
  * @since 2024.07.31
  *
  * 반별 학생 맵핑 컨트롤러
 
src/main/java/com/takensoft/ai_lms/lms/user_unit/dao/UserUnitDAO.java (added)
+++ src/main/java/com/takensoft/ai_lms/lms/user_unit/dao/UserUnitDAO.java
@@ -0,0 +1,33 @@
+package com.takensoft.ai_lms.lms.user_unit.dao;
+
+import com.takensoft.ai_lms.lms.user_unit.vo.UserUnitVO;
+import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
+
+import java.util.List;
+
+/**
+ * @author 권민수
+ * @since 2024.08.02
+ *
+ * 사용자 학습 진행 정보 DAO 인터페이스
+ */
+
+@Mapper("userUnitDAO")
+public interface UserUnitDAO {
+
+    // 유저 학습 정보 리스트 조회
+    List<UserUnitVO> getUserUnits();
+
+    // 특정 유저 학습 정보 조회
+    UserUnitVO getUserUnitById(UserUnitVO userUnit);
+
+    // 유저 학습 정보 생성
+    int insertUserUnit(UserUnitVO userUnit);
+
+    // 유저 학습 정보 수정
+    int updateUserUnit(UserUnitVO userUnit);
+
+    // 유저 학습 정보 삭제
+    int deleteUserUnit(UserUnitVO userUnit);
+
+}
 
src/main/java/com/takensoft/ai_lms/lms/user_unit/service/Impl/UserUnitServiceImpl.java (added)
+++ src/main/java/com/takensoft/ai_lms/lms/user_unit/service/Impl/UserUnitServiceImpl.java
@@ -0,0 +1,60 @@
+package com.takensoft.ai_lms.lms.user_unit.service.Impl;
+
+import com.takensoft.ai_lms.lms.user_unit.dao.UserUnitDAO;
+import com.takensoft.ai_lms.lms.user_unit.service.UserUnitService;
+import com.takensoft.ai_lms.lms.user_unit.vo.UserUnitVO;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.sql.Timestamp;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.List;
+
+/**
+ * @author 권민수
+ * @since 2024.08.02
+ *
+ * 사용자 학습 진행 정보 서비스 구현 클래스
+ */
+
+@Service
+@RequiredArgsConstructor
+public class UserUnitServiceImpl implements UserUnitService {
+
+    private final UserUnitDAO userUnitDAO;
+
+    @Override
+    public List<UserUnitVO> getUserUnits() {
+        return userUnitDAO.getUserUnits();
+    }
+
+    @Override
+    public UserUnitVO getUserUnitById(UserUnitVO userUnit) {
+        return userUnitDAO.getUserUnitById(userUnit);
+    }
+
+    @Override
+    public void insertUserUnit(UserUnitVO userUnit) {
+        userUnitDAO.insertUserUnit(userUnit);
+    }
+
+    @Override
+    public void updateUserUnit(UserUnitVO userUnit) {
+        // "yyyy-MM-dd HH:mm:ss.SSSSSS" 형식의 문자열을 Timestamp로 변환
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSSSS");
+        LocalDateTime localDateTime = LocalDateTime.parse(userUnit.getCmptnTm(), formatter);
+        Timestamp timestamp = Timestamp.valueOf(localDateTime);
+
+        // DAO에 전달하기 전에 변환된 타임스탬프 설정
+        userUnit.setCmptnTm(timestamp.toString());
+
+        userUnitDAO.updateUserUnit(userUnit);
+    }
+
+    @Override
+    public void deleteUserUnit(UserUnitVO userUnit) {
+        userUnitDAO.deleteUserUnit(userUnit);
+    }
+
+}
 
src/main/java/com/takensoft/ai_lms/lms/user_unit/service/UserUnitService.java (added)
+++ src/main/java/com/takensoft/ai_lms/lms/user_unit/service/UserUnitService.java
@@ -0,0 +1,31 @@
+package com.takensoft.ai_lms.lms.user_unit.service;
+
+import com.takensoft.ai_lms.lms.user_unit.vo.UserUnitVO;
+
+import java.util.List;
+
+/**
+ * @author 권민수
+ * @since 2024.08.02
+ *
+ * 사용자 학습 진행 정보 서비스 인터페이스
+ */
+
+public interface UserUnitService {
+
+    // 유저 학습 정보 리스트 조회
+    List<UserUnitVO> getUserUnits();
+
+    // 특정 유저 학습 정보 조회
+    UserUnitVO getUserUnitById(UserUnitVO userUnit);
+
+    // 유저 학습 정보 생성
+    void insertUserUnit(UserUnitVO userUnit);
+
+    // 유저 학습 정보 수정
+    void updateUserUnit(UserUnitVO userUnit);
+
+    // 유저 학습 정보 삭제
+    void deleteUserUnit(UserUnitVO userUnit);
+
+}
 
src/main/java/com/takensoft/ai_lms/lms/user_unit/vo/UserUnitVO.java (added)
+++ src/main/java/com/takensoft/ai_lms/lms/user_unit/vo/UserUnitVO.java
@@ -0,0 +1,24 @@
+package com.takensoft.ai_lms.lms.user_unit.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author 권민수
+ * @since 2024.08.02
+ *
+ * 사용자 학습 진행 정보 VO 클래스
+ */
+
+@Getter
+@Setter
+public class UserUnitVO {
+
+    private String unitId;
+    private String stdId;
+    private String userId;
+    private String sclsId;
+    private String cmptnYn;
+    private String cmptnTm;
+
+}
 
src/main/java/com/takensoft/ai_lms/lms/user_unit/web/UserUnitController.java (added)
+++ src/main/java/com/takensoft/ai_lms/lms/user_unit/web/UserUnitController.java
@@ -0,0 +1,67 @@
+package com.takensoft.ai_lms.lms.user_unit.web;
+
+import com.takensoft.ai_lms.lms.user_unit.service.UserUnitService;
+import com.takensoft.ai_lms.lms.user_unit.vo.UserUnitVO;
+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.08.02
+ *
+ * 사용자 학습 진행 정보 컨트롤러
+ */
+
+@RestController
+@RequiredArgsConstructor
+@Slf4j
+@RequestMapping("/userunit")
+public class UserUnitController {
+
+    private final UserUnitService userUnitService;
+
+    // 유저 유닛 리스트 조회
+    @PostMapping("/findAll.json")
+    public List<UserUnitVO> getUserUnits() {
+        return userUnitService.getUserUnits();
+    }
+
+    // 특정 유저 유닛 조회
+    @PostMapping("/find.json")
+    public UserUnitVO getUserUnitById(@RequestBody UserUnitVO userUnit) {
+        return userUnitService.getUserUnitById(userUnit);
+    }
+
+    // 유저 유닛 생성
+    @PostMapping("/insert.json")
+    public void insertUserUnit(@RequestBody Map<String, String> req) {
+        UserUnitVO userUnit = new UserUnitVO();
+        userUnit.setUnitId(req.get("unitId"));
+        userUnit.setStdId(req.get("stdId"));
+        userUnit.setUserId(req.get("userId"));
+        userUnit.setSclsId(req.get("sclsId"));
+        userUnit.setCmptnYn(req.get("cmptnYn"));
+        userUnit.setCmptnTm(req.get("cmptnTm"));
+        userUnitService.insertUserUnit(userUnit);
+    }
+
+    // 유저 유닛 수정
+    @PostMapping("/update.json")
+    public void updateUserUnit(@RequestBody UserUnitVO userUnit) {
+        userUnitService.updateUserUnit(userUnit);
+    }
+
+    // 유저 유닛 삭제
+    @PostMapping("/delete.json")
+    public void deleteUserUnit(@RequestBody UserUnitVO userUnit) {
+        userUnitService.deleteUserUnit(userUnit);
+    }
+
+}
 
src/main/resources/mybatis/mapper/lms/user_unit-SQL.xml (added)
+++ src/main/resources/mybatis/mapper/lms/user_unit-SQL.xml
@@ -0,0 +1,67 @@
+<?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.user_unit.dao.UserUnitDAO">
+
+    <!--
+        작 성 자 : 권민수
+        작 성 일 : 2024.08.02
+        내   용 : 사용자 학습 진행 정보 테이블 sql 매핑 xml 문서
+    -->
+
+    <resultMap id="UserUnitResultMap" type="UserUnitVO">
+        <id property="unitId" column="unit_id"/>
+        <id property="stdId" column="std_id"/>
+        <id property="userId" column="user_id"/>
+        <id property="sclsId" column="scls_id"/>
+        <result property="cmptnYn" column="cmptn_yn"/>
+        <result property="cmptnTm" column="cmptn_tm"/>
+    </resultMap>
+
+    <select id="getUserUnits" resultMap="UserUnitResultMap">
+        SELECT * FROM ai_lms.user_unit
+    </select>
+
+    <select id="getUserUnitById" parameterType="UserUnitVO" resultMap="UserUnitResultMap">
+        SELECT * FROM ai_lms.user_unit
+        WHERE unit_id = #{unitId}
+          AND std_id = #{stdId}
+          AND user_id = #{userId}
+          AND scls_id = #{sclsId}
+    </select>
+
+    <insert id="insertUserUnit" parameterType="UserUnitVO">
+        INSERT INTO
+            ai_lms.user_unit (unit_id,
+                              std_id,
+                              user_id,
+                              scls_id,
+                              cmptn_yn,
+                              cmptn_tm)
+        VALUES (#{unitId},
+                #{stdId},
+                #{userId},
+                #{sclsId},
+                #{cmptnYn},
+                TO_TIMESTAMP(#{cmptnTm}, 'YYYY-MM-DD HH24:MI:SS.US'))
+    </insert>
+
+    <update id="updateUserUnit" parameterType="UserUnitVO">
+        UPDATE ai_lms.user_unit
+        SET cmptn_yn = #{cmptnYn},
+            cmptn_tm = TO_TIMESTAMP(#{cmptnTm}, 'YYYY-MM-DD HH24:MI:SS.US')
+        WHERE unit_id = #{unitId}
+          AND std_id = #{stdId}
+          AND user_id = #{userId}
+          AND scls_id = #{sclsId}
+    </update>
+
+    <delete id="deleteUserUnit" parameterType="UserUnitVO">
+        DELETE FROM ai_lms.user_unit
+        WHERE unit_id = #{unitId}
+          AND std_id = #{stdId}
+          AND user_id = #{userId}
+          AND scls_id = #{sclsId}
+    </delete>
+
+
+</mapper>(파일 끝에 줄바꿈 문자 없음)
Add a comment
List