From 6ca7ca9feb1cc4a35cab3a3af8dddfae2580bddc Mon Sep 17 00:00:00 2001
From: EricsHu <hrr145632>
Date: 星期四, 08 十二月 2022 14:17:52 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/main/java/com/qxueyou/scc/admin/progress/service/IProgressService.java                          |   22 +-
 src/main/java/com/qxueyou/scc/controller/AttendanceController.java                                  |   12 
 src/main/java/com/qxueyou/scc/sys/utils/Image2Binary.java                                           |  128 ++++++++++++
 src/main/java/com/qxueyou/scc/admin/classes/service/IClassLectureService.java                       |  170 ++++++++--------
 src/main/java/com/qxueyou/scc/admin/progress/service/impl/lecture/LectureDocProgressService.java    |    2 
 src/main/java/com/qxueyou/scc/admin/progress/service/impl/item/LectureProgressService.java          |    2 
 src/main/java/com/qxueyou/scc/controller/HweiYunOBSController.java                                  |   26 +-
 src/main/java/com/qxueyou/scc/teach/res/service/impl/FileService.java                               |   41 +++
 src/main/java/com/qxueyou/scc/admin/attendance/AttendanceService.java                               |    2 
 src/main/java/com/qxueyou/scc/teach/res/service/HweiYunOBSService.java                              |   19 +
 src/main/java/com/qxueyou/scc/admin/attendance/impl/AttendanceServiceImpl.java                      |   50 ++--
 src/main/java/com/qxueyou/scc/admin/progress/service/impl/lecture/LectureCommonProgressService.java |    6 
 src/main/java/com/qxueyou/scc/admin/progress/service/impl/ProgressService.java                      |    4 
 src/main/java/com/qxueyou/scc/sys/utils/VideoUtil.java                                              |   18 +
 src/main/java/com/qxueyou/scc/teach/res/service/impl/HweiYunOBSServiceImpl.java                     |   41 ++-
 src/main/java/com/qxueyou/scc/admin/progress/service/impl/lecture/LectureVideoProgressService.java  |    2 
 src/main/java/com/qxueyou/scc/admin/progress/service/IDetailProgressService.java                    |   14 
 src/main/java/com/qxueyou/scc/sys/utils/AudioUtil.java                                              |    4 
 src/main/java/com/qxueyou/scc/media/model/MediaVideo.java                                           |    2 
 src/main/java/com/qxueyou/scc/teach/res/service/impl/resitem/ResItemVideoService.java               |    8 
 20 files changed, 384 insertions(+), 189 deletions(-)

diff --git a/src/main/java/com/qxueyou/scc/admin/attendance/AttendanceService.java b/src/main/java/com/qxueyou/scc/admin/attendance/AttendanceService.java
index 2d47bc8..7352977 100644
--- a/src/main/java/com/qxueyou/scc/admin/attendance/AttendanceService.java
+++ b/src/main/java/com/qxueyou/scc/admin/attendance/AttendanceService.java
@@ -19,7 +19,7 @@
     /**
      *淇敼鎵撳崱鐘舵��
      */
-    Result updateAttendanceStatus(String studentId, String attendanceStatus);
+    Result updateAttendanceStatus(String[] studentId, String attendanceStatus);
 
     int findAttendanceListCount(String keyword, String subjectId);
 
diff --git a/src/main/java/com/qxueyou/scc/admin/attendance/impl/AttendanceServiceImpl.java b/src/main/java/com/qxueyou/scc/admin/attendance/impl/AttendanceServiceImpl.java
index 7d6ce60..114f184 100644
--- a/src/main/java/com/qxueyou/scc/admin/attendance/impl/AttendanceServiceImpl.java
+++ b/src/main/java/com/qxueyou/scc/admin/attendance/impl/AttendanceServiceImpl.java
@@ -31,31 +31,35 @@
 
         try{
             SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
-            //涓婅鏃堕棿
-            String s1 = "9锛�00:00";
-            //濡傛灉涓婅鏃堕棿(9鐐�)>褰撳墠鏃堕棿
+            //上课时间
+            String s1 = "9:00:00";
+            //如果上课时间(9点)>当前时间
             String s2 = sdf.format(new Date());
+
+            //赋值一个课程id
+            stuStudent.setSubjectId(subjectId);
+
+            //时间计算
             int compareTo = s1.compareTo(s2);
             if(compareTo>0)
             {
-                s="绛惧埌鏃堕棿宸茶繃锛屾湰鑺傝鎸夌収鏃疯澶勭悊";
-                stuStudent.setAttendanceStatus("鏃疯");
+                s="签到时间已过,本节课按照旷课处理";
+                stuStudent.setAttendanceStatus("旷课");
             }
             else
             {
-                String s3 = "8锛�50:00";
+                String s3 = "8:50:00";
                 compareTo = s2.compareTo(s3);
                 if(compareTo<0)
                 {
-                    s="鏈埌绛惧埌鏃堕棿锛岃涓庝笂璇炬椂闂村墠10鍒嗛挓绛惧埌";
-                    stuStudent.setAttendanceStatus("鏈墦鍗�");
+                    s="未到签到时间,请与上课时间前10分钟签到";
+                    stuStudent.setAttendanceStatus("未打卡");
                 }
                 else
                 {
                     if(stuStudent!=null && subjectId!=null){
-                        stuStudent.setSubjectId(subjectId);
-                        stuStudent.setAttendanceStatus("宸叉墦鍗�");
-                        s = "鎴愬姛瀹屾垚绛惧埌";
+                        stuStudent.setAttendanceStatus("已打卡");
+                        s = "成功完成签到";
                     }
                 }
             }
@@ -82,20 +86,24 @@
     }
 
     @Override
-    public Result updateAttendanceStatus(String studentId, String attendanceStatus) {
-        StringBuffer hql=new StringBuffer("from StuStudent where studentId=? and deleteFlag is false");
+    public Result updateAttendanceStatus(String[] studentId, String attendanceStatus) {
+        boolean pd = true;
+        for (String studentIds: studentId){
+            StringBuffer hql=new StringBuffer("from StuStudent where studentId=? and deleteFlag is false");
 
-        List<Object> args = CollectionUtils.newList(studentId);
+            List<Object> args = CollectionUtils.newList(studentIds);
 
-        StuStudent stuStudent = findUnique(hql.toString(), args, StuStudent.class);
+            StuStudent stuStudent = findUnique(hql.toString(), args, StuStudent.class);
 
-        if(stuStudent!=null && attendanceStatus!=null){
-            stuStudent.setAttendanceStatus(attendanceStatus);
-            save(stuStudent);
-            return new Result(true);
+            if(stuStudent!=null && attendanceStatus!=null){
+                stuStudent.setAttendanceStatus(attendanceStatus);
+                save(stuStudent);
+                pd = true;
+            }else {
+                pd = false;
+            }
         }
-
-        return new Result(false);
+        return new Result(pd);
     }
 
     @Override
diff --git a/src/main/java/com/qxueyou/scc/admin/classes/service/IClassLectureService.java b/src/main/java/com/qxueyou/scc/admin/classes/service/IClassLectureService.java
index 536751c..f2162a9 100644
--- a/src/main/java/com/qxueyou/scc/admin/classes/service/IClassLectureService.java
+++ b/src/main/java/com/qxueyou/scc/admin/classes/service/IClassLectureService.java
@@ -13,98 +13,98 @@
 public interface IClassLectureService {
 
 	/**
-	 * 新增章节文件夹
+	 * 鏂板绔犺妭鏂囦欢澶�
 	 * 
 	 * @param parentChapterId
-	 *            父级章节文件夹id
+	 *            鐖剁骇绔犺妭鏂囦欢澶筰d
 	 * @param name
-	 *            文件夹名称
-	 * @return 上传结果:{"success":true,msg:"success",attrs:{"chapterId","90023afwe32300fee23"}},若成功,则返回ChapterId
+	 *            鏂囦欢澶瑰悕绉�
+	 * @return 涓婁紶缁撴灉:{"success":true,msg:"success",attrs:{"chapterId","90023afwe32300fee23"}},鑻ユ垚鍔燂紝鍒欒繑鍥濩hapterId
 	 */
 	Result addChapter(String parentChapterId, String name);
 
 	/**
-	 * 返回下级章节文件夹列表,如果
+	 * 杩斿洖涓嬬骇绔犺妭鏂囦欢澶瑰垪琛�,濡傛灉
 	 * 
 	 * @param classId
-	 *            班级id
+	 *            鐝骇id
 	 * @param parentChapterId
-	 *            父级章节文件夹id
-	 * @return 返回章节列表
+	 *            鐖剁骇绔犺妭鏂囦欢澶筰d
+	 * @return 杩斿洖绔犺妭鍒楄〃
 	 */
 	List<SubjectProgressTreeV> getChapterTreeVList(String classId, String parentChapterId);
 
 	/**
-	 * 课件列表搜索
+	 * 璇句欢鍒楄〃鎼滅储
 	 * 
 	 * @param chapterId
-	 *            章节id
+	 *            绔犺妭id
 	 * @param keyword
-	 *            关键字
+	 *            鍏抽敭瀛�
 	 * @param pageSize
-	 *            页码
+	 *            椤电爜
 	 * @param pageNum
-	 *            每页显示数据条数
+	 *            姣忛〉鏄剧ず鏁版嵁鏉℃暟
 	 * @param type
-	 *            类型
+	 *            绫诲瀷
 	 * @return
 	 */
 	List<MyLectureV> listLectureV(String learnerId, String chapterId, String keyword, Integer pageSize, Integer pageNum,
 			String type);
 
 	/**
-	 * 修改章节文件夹
+	 * 淇敼绔犺妭鏂囦欢澶�
 	 * 
 	 * @param chapterId
-	 *            文件夹id
+	 *            鏂囦欢澶筰d
 	 * @param name
-	 *            名称
-	 * @return 上传结果:{"success":true,msg:"success",attrs:{}}
+	 *            鍚嶇О
+	 * @return 涓婁紶缁撴灉:{"success":true,msg:"success",attrs:{}}
 	 */
 	Result updateChapter(String chapterId, String name);
 
 	/**
-	 * 删除章节文件夹
+	 * 鍒犻櫎绔犺妭鏂囦欢澶�
 	 * 
 	 * @param chapterIds
-	 *            章节文件夹id数组
-	 * @return 上传结果:{"success":true,msg:"success",attrs:{}}
+	 *            绔犺妭鏂囦欢澶筰d鏁扮粍
+	 * @return 涓婁紶缁撴灉:{"success":true,msg:"success",attrs:{}}
 	 */
 	Result deleteChapter(String[] chapterIds);
 
 	/**
-	 * 新增课件
+	 * 鏂板璇句欢
 	 * 
 	 * @param chapterId
-	 *            章节id
+	 *            绔犺妭id
 	 * @param resId
-	 *            资源id
-	 * @return 上传结果:{"success":true,msg:"success",attrs:{"chapterId","90023afwe32300fee23"}},若成功,则返回chapterId
+	 *            璧勬簮id
+	 * @return 涓婁紶缁撴灉:{"success":true,msg:"success",attrs:{"chapterId","90023afwe32300fee23"}},鑻ユ垚鍔燂紝鍒欒繑鍥瀋hapterId
 	 */
 	Result addClsLecture(String chapterId, String resId);
 
 	/**
-	 * 修改课件
+	 * 淇敼璇句欢
 	 * 
 	 * @param lectureId
-	 *            课件id
+	 *            璇句欢id
 	 * @param resId
-	 *            资源id
-	 * @return 上传结果:{"success":true,msg:"success",attrs:{}}
+	 *            璧勬簮id
+	 * @return 涓婁紶缁撴灉:{"success":true,msg:"success",attrs:{}}
 	 */
 	Result updateLecture(String lectureId, String resId);
 
 	/**
-	 * 删除课件
+	 * 鍒犻櫎璇句欢
 	 * 
 	 * @param lectureIds
-	 *            课件id数组
-	 * @return 上传结果:{"success":true,msg:"success",attrs:{}}
+	 *            璇句欢id鏁扮粍
+	 * @return 涓婁紶缁撴灉:{"success":true,msg:"success",attrs:{}}
 	 */
 	Result deleteLecture(String[] lectureIds);
 
 	/**
-	 * 课件学习进度提交
+	 * 璇句欢瀛︿範杩涘害鎻愪氦
 	 * 
 	 * @param clsLectureId
 	 * @param from
@@ -114,76 +114,76 @@
 	Result doStudy(String clsLectureId, Double from, Double to);
 
 	/**
-	 * 复制课件
+	 * 澶嶅埗璇句欢
 	 * 
 	 * @param lectureId
-	 *            课件id
+	 *            璇句欢id
 	 * @param destChapterId
-	 *            目标章节id
+	 *            鐩爣绔犺妭id
 	 * @param name
-	 *            课件名称
-	 * @return 上传结果:{"success":true,msg:"success",attrs:{}}
+	 *            璇句欢鍚嶇О
+	 * @return 涓婁紶缁撴灉:{"success":true,msg:"success",attrs:{}}
 	 */
 	Result doCopyLecture(String lectureId, String destChapterId, String name);
 
 	/**
-	 * 移动课件
+	 * 绉诲姩璇句欢
 	 * 
 	 * @param lectureId
-	 *            课件id
+	 *            璇句欢id
 	 * @param destChapterId
-	 *            目标章节id
+	 *            鐩爣绔犺妭id
 	 * @param name
-	 *            课件名称
-	 * @return 上传结果:{"success":true,msg:"success",attrs:{}}
+	 *            璇句欢鍚嶇О
+	 * @return 涓婁紶缁撴灉:{"success":true,msg:"success",attrs:{}}
 	 */
 	Result doMoveLecture(String lectureId, String destChapterId, String name);
 
 	/**
-	 * 课件列表搜索
+	 * 璇句欢鍒楄〃鎼滅储
 	 * 
 	 * @param chapterId
-	 *            章节id
+	 *            绔犺妭id
 	 * @param keyword
-	 *            关键字
+	 *            鍏抽敭瀛�
 	 * @param pageNo
-	 *            页码
+	 *            椤电爜
 	 * @param pageNum
-	 *            每页显示数据条数
+	 *            姣忛〉鏄剧ず鏁版嵁鏉℃暟
 	 * @param type
-	 *            类型
+	 *            绫诲瀷
 	 * @return
 	 */
 	List<ClsSubjectLecture> listLecture(String chapterId, String keyword, Integer pageNo, Integer pageNum, String type,
 			String classId);
 
 	/**
-	 * 课件列表
+	 * 璇句欢鍒楄〃
 	 * 
 	 * @param classId
-	 *            章节id
+	 *            绔犺妭id
 	 * @return
 	 */
 	List<ClsSubjectLecture> listLecture(String classId);
 
 	/**
-	 * 读取课件真实文件访问路径
+	 * 璇诲彇璇句欢鐪熷疄鏂囦欢璁块棶璺緞
 	 * 
 	 * @param lectureId
-	 *            课件id数组
+	 *            璇句欢id鏁扮粍
 	 * @param attribute
-	 *            课件附加属性
-	 * @return 上传结果:{"success":true,msg:"success",attrs:{"type":"",path:""}}
+	 *            璇句欢闄勫姞灞炴��
+	 * @return 涓婁紶缁撴灉:{"success":true,msg:"success",attrs:{"type":"",path:""}}
 	 */
 	Result readLectureAccessPath(String lectureId, String attribute);
 
 	/**
-	 * 通过id读取班级的课件对象
+	 * 閫氳繃id璇诲彇鐝骇鐨勮浠跺璞�
 	 */
 	ClsSubjectLecture readClsLecture(String id);
 
 	/**
-	 * 读取课件目录
+	 * 璇诲彇璇句欢鐩綍
 	 * 
 	 * @param chapterId
 	 * @return
@@ -191,58 +191,58 @@
 	ClsSubjectChapter readChapter(String chapterId);
 
 	/**
-	 * 课件列表大小
+	 * 璇句欢鍒楄〃澶у皬
 	 * 
 	 * @param chapterId
-	 *            章节id
+	 *            绔犺妭id
 	 * @param keyword
-	 *            关键字
+	 *            鍏抽敭瀛�
 	 * @param type
-	 *            类型
+	 *            绫诲瀷
 	 * @return
 	 */
 	int listLectureCount(String chapterId, String keyword, String type);
 
 	/**
-	 * 返回下级章节文件夹列表
+	 * 杩斿洖涓嬬骇绔犺妭鏂囦欢澶瑰垪琛�
 	 * 
 	 * @param classId
-	 *            班级id
+	 *            鐝骇id
 	 * @param classId
-	 *            课程id
+	 *            璇剧▼id
 	 * @param parentChapterId
-	 *            父级章节文件夹id
-	 * @return 返回章节列表
+	 *            鐖剁骇绔犺妭鏂囦欢澶筰d
+	 * @return 杩斿洖绔犺妭鍒楄〃
 	 */
 	List<ClsSubjectChapter> getListChapter(String classId,String subjectId, String parentChapterId);
 
 	/**
-	 * 返回下级章节文件夹列表,如果
+	 * 杩斿洖涓嬬骇绔犺妭鏂囦欢澶瑰垪琛�,濡傛灉
 	 * 
 	 * @param classId
-	 *            班级id
+	 *            鐝骇id
 	 *  @param subjectId
-	 *            课程id
+	 *            璇剧▼id
 	 * @param parentChapterId
-	 *            父级章节文件夹id
-	 * @return 返回章节列表
+	 *            鐖剁骇绔犺妭鏂囦欢澶筰d
+	 * @return 杩斿洖绔犺妭鍒楄〃
 	 */
 	List<ClsSubjectChapter> doGetListChapter(String classId,String subjectId, String parentChapterId);
 
 	/**
-	 * 把课程上的课件拷贝到班级课程
+	 * 鎶婅绋嬩笂鐨勮浠舵嫹璐濆埌鐝骇璇剧▼
 	 * 
 	 * @param subjectId
-	 *            课程id
+	 *            璇剧▼id
 	 * @param classId
-	 *            班级id
+	 *            鐝骇id
 	 * @return
 	 */
 	Result doCopyLecturesToClass(String origSubjectId, String subjectId, String classId);
 	
 	
 	/**
-     * 清理所有的班级课件
+     * 娓呯悊鎵�鏈夌殑鐝骇璇句欢
      * @param subjectId
      * @param classId
      * @return
@@ -250,7 +250,7 @@
 	Result doClearLecturesToClass(String subjectId, String classId);
 	
 	/**
-	 * 根据课程查询课件
+	 * 鏍规嵁璇剧▼鏌ヨ璇句欢
 	 * 
 	 * @param subjectId
 	 * @param type
@@ -260,7 +260,7 @@
 	List<Map<String, Object>> listLectureBySubject(String subjectId, String type, String classId);
 	
 	/**
-	 * 查询班级内的课件和课程
+	 * 鏌ヨ鐝骇鍐呯殑璇句欢鍜岃绋�
 	 * 
 	 * @param classId
 	 * @return
@@ -268,7 +268,7 @@
 	Result listSubjectLecture(String classId, String sort, Pager pager);
 	
 	/**
-	 * 获取课程下的课件
+	 * 鑾峰彇璇剧▼涓嬬殑璇句欢
 	 * 
 	 * @param subjectId
 	 * @param type
@@ -277,7 +277,7 @@
 	public Map<String,Object> listLectureBySubjectOrderCreateTime(String subjectId, String classId, String sort, Pager pager);
 	
 	/**
-	 * 学员端获取课程下课件
+	 * 瀛﹀憳绔幏鍙栬绋嬩笅璇句欢
 	 * 
 	 * @param subjectId
 	 * @param type
@@ -286,7 +286,7 @@
 	public List<Map<String, Object>> listStuLectureBySubject(String subjectId, String classId);
 	
 	/**
-	 * 学员端获取课程下课件数量
+	 * 瀛﹀憳绔幏鍙栬绋嬩笅璇句欢鏁伴噺
 	 * 
 	 * @param subjectId
 	 * @param type
@@ -295,7 +295,7 @@
     public long stuLectureCountBySubject(String subjectId, String classId);
     
     /**
-     * 获取章节下的课件
+     * 鑾峰彇绔犺妭涓嬬殑璇句欢
      * 
      * @param chapterLst
      * @param lectures
@@ -304,7 +304,7 @@
     public List<ClsSubjectChapter> getChapterLectures(List<ClsSubjectChapter> chapterLst, List<Map<String, Object>> lectures);
     
 	/**
-	 * 获取文档页码
+	 * 鑾峰彇鏂囨。椤电爜
 	 * 
 	 * @param resItemId
 	 * @return
@@ -312,7 +312,7 @@
 	public int readDocPageCount(String resItemId);
 	
 	/**
-	 * 公开课课件
+	 * 鍏紑璇捐浠�
 	 * 
 	 * @param subjectId
 	 * @param classId
@@ -323,7 +323,7 @@
     public Map<String,Object> listOpenLectureBySubjectOrderCreateTime(String subjectId, String sort, Pager pager);
     
     /**
-     * 课件按目录分类
+     * 璇句欢鎸夌洰褰曞垎绫�
      * 
      * @param classId
      * @param subjectId
@@ -331,4 +331,4 @@
      * @return
      */
     public Result coursewareChapterList(String classId,String subjectId, String type);
-}
\ No newline at end of file
+}
diff --git a/src/main/java/com/qxueyou/scc/admin/progress/service/IDetailProgressService.java b/src/main/java/com/qxueyou/scc/admin/progress/service/IDetailProgressService.java
index 9ca8835..2eb8b0a 100644
--- a/src/main/java/com/qxueyou/scc/admin/progress/service/IDetailProgressService.java
+++ b/src/main/java/com/qxueyou/scc/admin/progress/service/IDetailProgressService.java
@@ -5,18 +5,18 @@
 public interface IDetailProgressService {
 
 	/**
-	 * 新增学习记录
-	 * @param type 进度类型
-	 * @param targetId 学习目标id
-	 * @param learnerId 学习者id
-	 * @param start 学习开始位置
-	 * @param end 学习结束位置
+	 * 鏂板瀛︿範璁板綍
+	 * @param type 杩涘害绫诲瀷
+	 * @param targetId 瀛︿範鐩爣id
+	 * @param learnerId 瀛︿範鑰卛d
+	 * @param start 瀛︿範寮�濮嬩綅缃�
+	 * @param end 瀛︿範缁撴潫浣嶇疆
 	 * @return
 	 */
 	Result addProgress(String targetId,String learnerId,int start,int end);
 
 	/**
-	 * 返回进度类型
+	 * 杩斿洖杩涘害绫诲瀷
 	 * @return
 	 */
 	String getType();
diff --git a/src/main/java/com/qxueyou/scc/admin/progress/service/IProgressService.java b/src/main/java/com/qxueyou/scc/admin/progress/service/IProgressService.java
index fca52f1..4784151 100644
--- a/src/main/java/com/qxueyou/scc/admin/progress/service/IProgressService.java
+++ b/src/main/java/com/qxueyou/scc/admin/progress/service/IProgressService.java
@@ -9,43 +9,43 @@
 public interface IProgressService {
 
 	/**
-	 * 查询学习进度
+	 * 鏌ヨ瀛︿範杩涘害
 	 *
 	 * @return
 	 */
 	List<Progress> query(String type, String learnerId, List<String> targetId);
 
 	/**
-	 * 查询学习进度
+	 * 鏌ヨ瀛︿範杩涘害
 	 *
 	 * @return
 	 */
 	List<Progress> query(String type, List<String> learnerId, String targetId);
 
 	/**
-	 * 查询学习记录
+	 * 鏌ヨ瀛︿範璁板綍
 	 *
 	 * @param type
-	 *            进度类型
+	 *            杩涘害绫诲瀷
 	 * @param targetId
-	 *            学习目标id
+	 *            瀛︿範鐩爣id
 	 * @param learnerId
-	 *            学习者id
+	 *            瀛︿範鑰卛d
 	 * @return
 	 */
 	Progress query(String type, String targetId, String learnerId);
 
 	/**
-	 * 新增学习记录
+	 * 鏂板瀛︿範璁板綍
 	 *
 	 * @param type
-	 *            进度类型
+	 *            杩涘害绫诲瀷
 	 * @param targetId
-	 *            学习目标id
+	 *            瀛︿範鐩爣id
 	 * @param start
-	 *            学习开始位置
+	 *            瀛︿範寮�濮嬩綅缃�
 	 * @param end
-	 *            学习结束位置
+	 *            瀛︿範缁撴潫浣嶇疆
 	 * @return
 	 */
 	Result addProgress(String type, String targetId, int start, int end, String userId);
diff --git a/src/main/java/com/qxueyou/scc/admin/progress/service/impl/ProgressService.java b/src/main/java/com/qxueyou/scc/admin/progress/service/impl/ProgressService.java
index 3089db1..eb6ecc7 100644
--- a/src/main/java/com/qxueyou/scc/admin/progress/service/impl/ProgressService.java
+++ b/src/main/java/com/qxueyou/scc/admin/progress/service/impl/ProgressService.java
@@ -40,7 +40,7 @@
 	ProgressDAO dao;
 
 	/**
-	 * 各类型课件进度服务实现
+	 * 鍚勭被鍨嬭浠惰繘搴︽湇鍔″疄鐜�
 	 */
 	private Map<String, IDetailProgressService> resItemServiceMap = new HashMap<String, IDetailProgressService>(6);
 
@@ -119,7 +119,7 @@
 			save(progress);
 
 		} catch (Exception e) {
-			log.error("保存异常", e);
+			log.error("淇濆瓨寮傚父", e);
 			return;
 		}
 
diff --git a/src/main/java/com/qxueyou/scc/admin/progress/service/impl/item/LectureProgressService.java b/src/main/java/com/qxueyou/scc/admin/progress/service/impl/item/LectureProgressService.java
index 5714161..5cd277a 100644
--- a/src/main/java/com/qxueyou/scc/admin/progress/service/impl/item/LectureProgressService.java
+++ b/src/main/java/com/qxueyou/scc/admin/progress/service/impl/item/LectureProgressService.java
@@ -24,7 +24,7 @@
 	IClassLectureService lectureService;
 
 	/**
-	 * 各类型课件进度服务实现
+	 * 鍚勭被鍨嬭浠惰繘搴︽湇鍔″疄鐜�
 	 */
 	private Map<String, IDetailProgressService> resItemServiceMap = new HashMap<String, IDetailProgressService>(6);
 
diff --git a/src/main/java/com/qxueyou/scc/admin/progress/service/impl/lecture/LectureCommonProgressService.java b/src/main/java/com/qxueyou/scc/admin/progress/service/impl/lecture/LectureCommonProgressService.java
index cc53f58..81d8722 100644
--- a/src/main/java/com/qxueyou/scc/admin/progress/service/impl/lecture/LectureCommonProgressService.java
+++ b/src/main/java/com/qxueyou/scc/admin/progress/service/impl/lecture/LectureCommonProgressService.java
@@ -57,7 +57,7 @@
 			updateProgress(targetId, p, sum);
 		}
 
-		//保存学习记录明细
+		//淇濆瓨瀛︿範璁板綍鏄庣粏
 		this.saveProgressDetail(start, end, targetId, p.getProgressId(), learnerId);
 
 		classLectureService.updateLecturetime(targetId);
@@ -77,7 +77,7 @@
 	}
 
 	/**
-	 * 保存学习记录明细
+	 * 淇濆瓨瀛︿範璁板綍鏄庣粏
 	 *
 	 * @param start
 	 * @param end
@@ -104,7 +104,7 @@
 	}
 
 	/**
-	 * 获取进度百分比
+	 * 鑾峰彇杩涘害鐧惧垎姣�
 	 *
 	 * @param targetId
 	 * @param sum
diff --git a/src/main/java/com/qxueyou/scc/admin/progress/service/impl/lecture/LectureDocProgressService.java b/src/main/java/com/qxueyou/scc/admin/progress/service/impl/lecture/LectureDocProgressService.java
index bce7df5..6d775cd 100644
--- a/src/main/java/com/qxueyou/scc/admin/progress/service/impl/lecture/LectureDocProgressService.java
+++ b/src/main/java/com/qxueyou/scc/admin/progress/service/impl/lecture/LectureDocProgressService.java
@@ -25,7 +25,7 @@
 	}
 
 	/**
-	 * 获取进度百分比
+	 * 鑾峰彇杩涘害鐧惧垎姣�
 	 *
 	 * @param targetId
 	 * @param sum
diff --git a/src/main/java/com/qxueyou/scc/admin/progress/service/impl/lecture/LectureVideoProgressService.java b/src/main/java/com/qxueyou/scc/admin/progress/service/impl/lecture/LectureVideoProgressService.java
index 2eb8d2d..66ba3ff 100644
--- a/src/main/java/com/qxueyou/scc/admin/progress/service/impl/lecture/LectureVideoProgressService.java
+++ b/src/main/java/com/qxueyou/scc/admin/progress/service/impl/lecture/LectureVideoProgressService.java
@@ -25,7 +25,7 @@
 	}
 
 	/**
-	 * 获取进度百分比
+	 * 鑾峰彇杩涘害鐧惧垎姣�
 	 *
 	 * @param targetId
 	 * @param sum
diff --git a/src/main/java/com/qxueyou/scc/controller/AttendanceController.java b/src/main/java/com/qxueyou/scc/controller/AttendanceController.java
index ce4222d..4c4f0b2 100644
--- a/src/main/java/com/qxueyou/scc/controller/AttendanceController.java
+++ b/src/main/java/com/qxueyou/scc/controller/AttendanceController.java
@@ -15,20 +15,20 @@
 
 import java.util.List;
 
-@Api(tags="鑰冨嫟绠$悊鎺ュ彛")
+@Api(tags="考勤管理接口")
 @RestController
 @RequestMapping("/admin/Attendance")
 public class AttendanceController {
     @Autowired
     private AttendanceService attendanceService;
 
-    @ApiOperation(value = "鎵撳崱", notes = "")
-    @PostMapping(value = "/attendanceUpAndAdd")
+    @ApiOperation(value = "打卡", notes = "")
+    @GetMapping(value = "/attendanceUpAndAdd")
     public String attendanceUpAndAdd(String studentId, String subjectId) {
         return attendanceService.attendanceUpAndAdd(studentId,subjectId);
     }
 
-    @ApiOperation(value = "鑰冨嫟淇℃伅", notes = "")
+    @ApiOperation(value = "考勤信息", notes = "")
     @GetMapping(value = "/attendanceList")
     public Result attendanceList(@RequestParam(defaultValue = "10") Integer limit, @RequestParam(defaultValue = "1") Integer pageNum, String keyword, String subjectId) {
 
@@ -44,9 +44,9 @@
                 "attendanceCount", count));
     }
 
-    @ApiOperation(value = "淇敼鑰冨嫟鐘舵��", notes = "")
+    @ApiOperation(value = "修改考勤状态", notes = "")
     @GetMapping(value = "/updateAttendanceStatus")
-    public Result updateAttendanceStatus(String studentId, String attendanceStatus) {
+    public Result updateAttendanceStatus(String[] studentId, String attendanceStatus) {
         return attendanceService.updateAttendanceStatus(studentId,attendanceStatus);
     }
 }
diff --git a/src/main/java/com/qxueyou/scc/controller/HweiYunOBSController.java b/src/main/java/com/qxueyou/scc/controller/HweiYunOBSController.java
index 6bf662a..861f990 100644
--- a/src/main/java/com/qxueyou/scc/controller/HweiYunOBSController.java
+++ b/src/main/java/com/qxueyou/scc/controller/HweiYunOBSController.java
@@ -1,5 +1,5 @@
 package com.qxueyou.scc.controller;
- 
+
 import cn.hutool.core.io.FileUtil;
 import cn.hutool.core.io.IoUtil;
 import cn.hutool.core.util.ArrayUtil;
@@ -7,12 +7,14 @@
 
 //import cn.hutool.core.io.FileUtil;
 import com.obs.services.exception.ObsException;
+import com.obs.services.model.PutObjectResult;
+import com.qxueyou.scc.base.model.FileMeta;
 import com.qxueyou.scc.base.model.Result;
 import com.qxueyou.scc.teach.res.service.HweiYunOBSService;
 import org.springframework.util.ObjectUtils;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
- 
+
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -21,7 +23,7 @@
 import java.io.InputStream;
 import java.net.URLEncoder;
 import java.util.List;
- 
+
 /**
  * @ClassName: ObsController
  * @Description: OBS鏈嶅姟鍣–ontroller
@@ -30,12 +32,12 @@
  * @Version: 1.0
  */
 @RestController
-@RequestMapping({ "file" })// @RequestMapping("/file")
+@RequestMapping("/file")// @RequestMapping("/file")
 public class HweiYunOBSController {
- 
+
     @Resource
     private HweiYunOBSService hweiYunOBSService;
- 
+
     @RequestMapping(value = "upload", method = RequestMethod.POST)
     public Result save(@RequestParam(value = "file", required = false) MultipartFile file) {
 
@@ -45,11 +47,11 @@
 //        if (FileUtil.isEmpty(file)) {
 //            return new Result(false,"鏂囦欢涓虹┖");
 //        }
-        final String test = hweiYunOBSService.fileUpload(file, file.getOriginalFilename());
+        final List<FileMeta> test = hweiYunOBSService.fileUpload(file, file.getOriginalFilename());
 //        return ResponseVO.ok("鎵ц鎴愬姛",test);
         return new Result(true,"success",test);
     }
- 
+
     @RequestMapping(value = "delete", method = RequestMethod.POST)
     public Result delete(@RequestParam(value = "fileName", required = false)  String fileName) {
         if (StrUtil.isEmpty(fileName)) {
@@ -58,7 +60,7 @@
         final boolean delete = hweiYunOBSService.delete(fileName);
         return delete?new Result(true,"success"):new Result(false,"鍒犻櫎澶辫触");
     }
- 
+
     @RequestMapping(value = "deletes", method = RequestMethod.POST)
     //@RequestParam 鑾峰彇List锛屾暟缁勫垯涓嶉渶瑕�
     public Result delete(@RequestParam("fileNames") List<String> fileNames) {
@@ -68,8 +70,8 @@
         final boolean delete = hweiYunOBSService.delete(fileNames);
         return delete?new Result(true,"success"):new Result(false,"鍒犻櫎澶辫触");
     }
- 
- 
+
+
     @RequestMapping(value = "download", method = RequestMethod.POST)
     public Result download(HttpServletRequest request, HttpServletResponse response, @RequestParam(value = "fileName", required = false) String fileName) {
         if (StrUtil.isEmpty(fileName)) {
@@ -104,4 +106,4 @@
             return new Result(false);
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/main/java/com/qxueyou/scc/media/model/MediaVideo.java b/src/main/java/com/qxueyou/scc/media/model/MediaVideo.java
index 8d6d24b..f7616ef 100644
--- a/src/main/java/com/qxueyou/scc/media/model/MediaVideo.java
+++ b/src/main/java/com/qxueyou/scc/media/model/MediaVideo.java
@@ -764,4 +764,4 @@
 	public void setM3u8KeyPath(String m3u8KeyPath) {
 		this.m3u8KeyPath = m3u8KeyPath;
 	}
-}
\ No newline at end of file
+}
diff --git a/src/main/java/com/qxueyou/scc/sys/utils/AudioUtil.java b/src/main/java/com/qxueyou/scc/sys/utils/AudioUtil.java
index 114a903..5dc8d93 100644
--- a/src/main/java/com/qxueyou/scc/sys/utils/AudioUtil.java
+++ b/src/main/java/com/qxueyou/scc/sys/utils/AudioUtil.java
@@ -46,7 +46,9 @@
     public static Float getMp3Duration(String filePath){
 
         try {
-            File mp3File = new File(filePath);
+            File file = File.createTempFile("temp", ".mp3"); //鍒涘缓涓存椂鏂囦欢
+            Image2Binary.toBDFile(filePath,file.getCanonicalPath());
+            File mp3File = new File(file.getPath());
             MP3File f = (MP3File) AudioFileIO.read(mp3File);
             MP3AudioHeader audioHeader = (MP3AudioHeader)f.getAudioHeader();
             return Float.parseFloat(audioHeader.getTrackLength()+"");
diff --git a/src/main/java/com/qxueyou/scc/sys/utils/Image2Binary.java b/src/main/java/com/qxueyou/scc/sys/utils/Image2Binary.java
new file mode 100644
index 0000000..dcc51a4
--- /dev/null
+++ b/src/main/java/com/qxueyou/scc/sys/utils/Image2Binary.java
@@ -0,0 +1,128 @@
+package com.qxueyou.scc.sys.utils;
+
+import java.io.ByteArrayOutputStream;
+import java.io.DataInputStream;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.UnknownHostException;
+
+import org.apache.commons.codec.digest.DigestUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+public class Image2Binary
+{
+    private static Logger log = LoggerFactory.getLogger(Image2Binary.class);
+
+    public static byte[] toByteArray(InputStream in) throws IOException {
+
+        ByteArrayOutputStream out=new ByteArrayOutputStream();
+        byte[] buffer=new byte[1024*4];
+        int n=0;
+        while ( (n=in.read(buffer)) !=-1) {
+            out.write(buffer,0,n);
+        }
+        return out.toByteArray();
+    }
+
+    /**
+     * 缃戠粶鏂囦欢杞崲涓篵yte浜岃繘鍒�
+     * @Title: toByteArray
+     * @Description: TODO(杩欓噷鐢ㄤ竴鍙ヨ瘽鎻忚堪杩欎釜鏂规硶鐨勪綔鐢�)
+     * @param @param url
+     * @param @return
+     * @param @throws IOException    璁惧畾鏂囦欢
+     * @return byte[]    杩斿洖绫诲瀷
+     * @throws
+     */
+    public static byte[] toByteArray(String urlStr) throws IOException {
+        URL url = new URL(urlStr);
+        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
+        DataInputStream in = new DataInputStream(conn.getInputStream());
+        ByteArrayOutputStream out=new ByteArrayOutputStream();
+        byte[] buffer=new byte[1024*4];
+        int n=0;
+        while ( (n=in.read(buffer)) !=-1) {
+            out.write(buffer,0,n);
+        }
+        return out.toByteArray();
+    }
+
+    /**
+     * @throws IOException
+     * @throws MalformedURLException
+     * 缃戠粶鏂囦欢杞崲涓烘湰鍦版枃浠�
+     * @Title: toByteArray
+     * @Description: TODO(杩欓噷鐢ㄤ竴鍙ヨ瘽鎻忚堪杩欎釜鏂规硶鐨勪綔鐢�)
+     * @param @param url
+     * @param @return
+     * @param @throws IOException    璁惧畾鏂囦欢
+     * @return byte[]    杩斿洖绫诲瀷
+     * @throws
+     */
+    public static void toBDFile(String urlStr, String bdUrl) throws IOException,UnknownHostException{
+        URL url = new URL(urlStr);
+        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
+        DataInputStream in = new DataInputStream(conn.getInputStream());
+        byte[] data=toByteArray(in);
+        in.close();
+        FileOutputStream out=new FileOutputStream(bdUrl);
+        out.write(data);
+        out.close();
+    }
+
+    /**
+     * 鐩存帴鑾峰彇缃戠粶鏂囦欢鐨刴d5鍊�
+     * @param urlStr
+     * @return
+     */
+    public static String getMd5ByUrl(String urlStr){
+        String md5 = null;
+        try {
+            URL url = new URL(urlStr);
+            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
+            DataInputStream in = new DataInputStream(conn.getInputStream());
+            md5 = DigestUtils.md5Hex(in);
+        } catch (IOException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+        return md5;
+    }
+
+    /**
+     * 鑾峰彇缃戠粶鏂囦欢鐨勮緭鍏ユ祦
+     * @param urlStr
+     * @return
+     */
+    public static InputStream getInputStreamByUrl(String urlStr){
+        DataInputStream in = null;
+        try {
+            URL url = new URL(urlStr);
+            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
+            in = new DataInputStream(conn.getInputStream());
+        } catch (IOException e) {
+            log.error("url杞崲杈撳叆娴佸け璐�,閿欒淇℃伅{}",e.getMessage());
+        }
+        return in;
+    }
+
+
+    public static void main(String[] args)
+    {
+//    	try {
+//			toBDFile("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1496324940814&di=1d70e0de447be6547c372718b9b30ff6&imgtype=0&src=http%3A%2F%2Fimage.tianjimedia.com%2FuploadImages%2F2015%2F204%2F22%2FYMG9CAUWUM15.jpg","E://a.jpg");
+//		} catch (IOException e) {
+//			// TODO Auto-generated catch block
+//			e.printStackTrace();
+//		}
+        String a = getMd5ByUrl("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1496324940814&di=1d70e0de447be6547c372718b9b30ff6&imgtype=0&src=http%3A%2F%2Fimage.tianjimedia.com%2FuploadImages%2F2015%2F204%2F22%2FYMG9CAUWUM15.jpg");
+        System.out.println(a);
+    }
+}
diff --git a/src/main/java/com/qxueyou/scc/sys/utils/VideoUtil.java b/src/main/java/com/qxueyou/scc/sys/utils/VideoUtil.java
index 54ff647..b805f8f 100644
--- a/src/main/java/com/qxueyou/scc/sys/utils/VideoUtil.java
+++ b/src/main/java/com/qxueyou/scc/sys/utils/VideoUtil.java
@@ -2,6 +2,7 @@
 
 import com.coremedia.iso.IsoFile;
 
+import java.io.File;
 import java.io.IOException;
 
 
@@ -15,11 +16,18 @@
      * @return 鍗曚綅涓烘绉�
      */
     public static long getMp4Duration(String videoPath) throws IOException {
-        IsoFile isoFile = new IsoFile(videoPath);
-        long lengthInSeconds =
-                isoFile.getMovieBox().getMovieHeaderBox().getDuration() /
-                        isoFile.getMovieBox().getMovieHeaderBox().getTimescale();
-        return lengthInSeconds;
+        try {
+            File file = File.createTempFile("temp", ".mp4"); //鍒涘缓涓存椂鏂囦欢
+            Image2Binary.toBDFile(videoPath,file.getCanonicalPath());
+                    IsoFile isoFile = new IsoFile(file.getPath());
+            long lengthInSeconds =
+                    isoFile.getMovieBox().getMovieHeaderBox().getDuration() /
+                            isoFile.getMovieBox().getMovieHeaderBox().getTimescale();
+            return lengthInSeconds;
+        }catch (Exception e){
+            e.printStackTrace();
+            return 0;
+        }
     }
 
 
diff --git a/src/main/java/com/qxueyou/scc/teach/res/service/HweiYunOBSService.java b/src/main/java/com/qxueyou/scc/teach/res/service/HweiYunOBSService.java
index 0b83fa3..80d0dc5 100644
--- a/src/main/java/com/qxueyou/scc/teach/res/service/HweiYunOBSService.java
+++ b/src/main/java/com/qxueyou/scc/teach/res/service/HweiYunOBSService.java
@@ -1,17 +1,19 @@
 package com.qxueyou.scc.teach.res.service;
- 
+
+import com.obs.services.model.PutObjectResult;
+import com.qxueyou.scc.base.model.FileMeta;
 import org.springframework.web.multipart.MultipartFile;
- 
+
 import java.io.InputStream;
 import java.util.List;
- 
+
 /**
  * @Description 鍗庝负浜慜BS鏈嶅姟鎺ュ彛
  * @author wuhuiju
  * @date 2022/12/2 17:01
  */
 public interface HweiYunOBSService {
- 
+
     /**
      * @Description 鍒犻櫎鏂囦欢
      * @author wuhuiju
@@ -20,7 +22,7 @@
      * @return: boolean 鎵ц缁撴灉
      */
     boolean delete(String objectKey);
- 
+
     /**
      * @Description 鎵归噺鍒犻櫎鏂囦欢
      * @author wuhuiju
@@ -29,7 +31,7 @@
      * @return: boolean 鎵ц缁撴灉
      */
     boolean delete(List<String> objectKeys);
- 
+
     /**
      * @Description 涓婁紶鏂囦欢
      * @author wuhuiju
@@ -38,8 +40,8 @@
      * @param: objectKey 鏂囦欢鍚嶇О
      * @return: java.lang.String url璁块棶璺緞
      */
-    String fileUpload(MultipartFile uploadFile, String objectKey);
- 
+    List<FileMeta> fileUpload(MultipartFile uploadFile, String objectKey);
+
     /**
      * @Description 鏂囦欢涓嬭浇
      * @author wuhuiju
@@ -49,4 +51,3 @@
      */
     InputStream fileDownload(String objectKey);
 }
- 
\ No newline at end of file
diff --git a/src/main/java/com/qxueyou/scc/teach/res/service/impl/FileService.java b/src/main/java/com/qxueyou/scc/teach/res/service/impl/FileService.java
index a992382..6f14ba5 100644
--- a/src/main/java/com/qxueyou/scc/teach/res/service/impl/FileService.java
+++ b/src/main/java/com/qxueyou/scc/teach/res/service/impl/FileService.java
@@ -27,7 +27,7 @@
 
 /**
  * 鎵�鏈夋枃浠朵笂浼犵殑鎿嶄綔锛屽崟鐙埌鏂囦欢涓婁紶宸ョ▼鍚庯紝鍚庣画涓氬姟鎿嶄綔闇�瑕佷笅杞芥枃浠惰皟鐢ㄧ殑鏂规硶
- * 
+ *
  * @author xiadehu
  *
  */
@@ -96,7 +96,7 @@
 
 	/**
 	 * 鎻掑叆鏂囦欢淇℃伅鍒版暟鎹簱
-	 * 
+	 *
 	 * @param name
 	 * @param fullPath
 	 *            鍏ㄨ矾寰�
@@ -106,7 +106,7 @@
 	 *            鏂囦欢绫诲瀷锛岄潪鏂囦欢鏍煎紡
 	 * @return
 	 */
-	private ResFile insertFileToDB(String name, String fullPath, String relativePath, String type) {
+	public ResFile insertFileToDB(String name, String fullPath, String relativePath, String type) {
 
 		ResFile file = new ResFile();
 
@@ -127,10 +127,41 @@
 		return file;
 
 	}
+	/**
+	 * 鎻掑叆鏂囦欢淇℃伅鍒版暟鎹簱
+	 *
+	 * @param name
+	 * @param relativePath
+	 *            鐩稿璺緞
+	 * @param type
+	 *            鏂囦欢绫诲瀷锛岄潪鏂囦欢鏍煎紡
+	 * @return
+	 */
+	public ResFile insertFileToDBTwo(String name, Long Size, String relativePath, String type) {
+
+		ResFile file = new ResFile();
+
+		TraceUtils.setCreateTrace(file);
+		file.setFileName(name);
+		file.setFileFormat(QFileUtils.getFileFormat(name));
+		file.setFileType(type);
+		// TODO
+		file.setMd5Hash(null);
+		file.setPath(relativePath);
+		file.setSize(Size);
+		// TODO
+		file.setTenantId(null);
+		file.setDeleteFlag(false);
+
+		save(file);
+
+		return file;
+
+	}
 
 	/**
 	 * 鑾峰彇鏂囦欢绫诲瀷
-	 * 
+	 *
 	 * @param name
 	 * @return
 	 */
@@ -141,7 +172,7 @@
 
 	/**
 	 * 鑾峰彇鏂囦欢鐩爣璺緞
-	 * 
+	 *
 	 * @param name
 	 * @return
 	 */
diff --git a/src/main/java/com/qxueyou/scc/teach/res/service/impl/HweiYunOBSServiceImpl.java b/src/main/java/com/qxueyou/scc/teach/res/service/impl/HweiYunOBSServiceImpl.java
index 83e5ca1..7343731 100644
--- a/src/main/java/com/qxueyou/scc/teach/res/service/impl/HweiYunOBSServiceImpl.java
+++ b/src/main/java/com/qxueyou/scc/teach/res/service/impl/HweiYunOBSServiceImpl.java
@@ -1,29 +1,31 @@
 package com.qxueyou.scc.teach.res.service.impl;
- 
+
 //import com.example.study.springboot.background.service.HweiYunOBSService;
 //import com.example.study.springboot.config.HweiOBSConfig;
 import com.obs.services.ObsClient;
 import com.obs.services.exception.ObsException;
 import com.obs.services.model.*;
+import com.qxueyou.scc.base.model.FileMeta;
+import com.qxueyou.scc.base.model.Result;
 import com.qxueyou.scc.base.util.CollectionUtils;
 import com.qxueyou.scc.base.util.QFileUtils;
 import com.qxueyou.scc.base.util.UUIDUtils;
 import com.qxueyou.scc.config.HweiOBSConfig;
+import com.qxueyou.scc.teach.res.model.ResFile;
 import com.qxueyou.scc.teach.res.service.HweiYunOBSService;
+import com.qxueyou.scc.teach.res.service.IFileService;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.catalina.core.ApplicationPart;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
- 
+
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.Calendar;
-import java.util.GregorianCalendar;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * @ClassName: HweiYunOBSServiceImpl
@@ -39,6 +41,9 @@
     private final Logger log = LogManager.getLogger(HweiYunOBSServiceImpl.class);
     @Autowired
     private HweiOBSConfig hweiOBSConfig;
+
+    @Autowired
+    FileService fileService;
 
     public final static String FILE_TYPE_VIDEO = "video";
 
@@ -65,7 +70,7 @@
             "JPG", FILE_TYPE_IMG,"JPEG", FILE_TYPE_IMG, "GIF", FILE_TYPE_IMG, "BMP", FILE_TYPE_IMG, "PNG", FILE_TYPE_IMG
 
     );
- 
+
     @Override
     public boolean delete(String objectKey) {
         ObsClient obsClient = null;
@@ -81,7 +86,7 @@
         }
         return true;
     }
- 
+
     @Override
     public boolean delete(List<String> objectKeys) {
         ObsClient obsClient = null;
@@ -99,10 +104,12 @@
         }
         return false;
     }
- 
+
     @Override
-    public String fileUpload(MultipartFile uploadFile, String objectKey) {
+    public List<FileMeta> fileUpload(MultipartFile uploadFile, String objectKey) {
         ObsClient obsClient = null;
+        List<FileMeta> files = new ArrayList<FileMeta>(2);
+        FileMeta fileMeta = null;
         try {
             String destPath = getDestPath(objectKey);
             String bucketName = hweiOBSConfig.getBucketName();
@@ -127,10 +134,18 @@
             // 璁剧疆瀵硅薄璁块棶鏉冮檺涓哄叕鍏辫
             request.setAcl(AccessControlList.REST_CANNED_PUBLIC_READ);
             PutObjectResult result = obsClient.putObject(request);
- 
+            fileMeta = new FileMeta();
+            ResFile file = fileService.insertFileToDBTwo(objectKey, uploadFile.getSize(), result.getObjectUrl(), uploadFile.getContentType());
+            fileMeta.setFileId(file.getFileId());
+            fileMeta.setPath(result.getObjectUrl());
+            fileMeta.setFileSize(uploadFile.getSize() / 1024 + "kb");
+            fileMeta.setFileType(uploadFile.getContentType());
+            fileMeta.setFileName(objectKey);
+            files.add(fileMeta);
             // 璇诲彇璇ュ凡涓婁紶瀵硅薄鐨刄RL
             log.info("宸蹭笂浼犲璞$殑URL" + result.getObjectUrl());
-            return result.getObjectUrl();
+            return files;
+//            return result.getObjectUrl();
         } catch (ObsException e) {
             log.error("obs涓婁紶澶辫触", e);
         } catch (IOException e) {
@@ -182,4 +197,4 @@
         }
         return null;
     }
-}
\ No newline at end of file
+}
diff --git a/src/main/java/com/qxueyou/scc/teach/res/service/impl/resitem/ResItemVideoService.java b/src/main/java/com/qxueyou/scc/teach/res/service/impl/resitem/ResItemVideoService.java
index 3c26b90..1caa134 100644
--- a/src/main/java/com/qxueyou/scc/teach/res/service/impl/resitem/ResItemVideoService.java
+++ b/src/main/java/com/qxueyou/scc/teach/res/service/impl/resitem/ResItemVideoService.java
@@ -4,6 +4,8 @@
 import java.io.File;
 import java.util.Date;
 
+import com.obs.services.ObsClient;
+import com.obs.services.model.ObsObject;
 import com.qxueyou.scc.sys.utils.VideoUtil;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -39,8 +41,6 @@
     @Autowired
     ICacheService cacheService;
 
-    @Value("${scc.resRootPath}")
-    String resRootPath;
 
     @Override
     public String add(String fileId, String name) {
@@ -52,7 +52,7 @@
             TraceUtils.setCreateTrace(resVideo);
         try {
             resVideo.setFileId(fileId);
-            resVideo.setPlayTime((int) VideoUtil.getMp4Duration(resRootPath +"/"+ file.getPath()));
+            resVideo.setPlayTime((int) VideoUtil.getMp4Duration(file.getPath()));
             resVideo.setName(name);
             resVideo.setMediaVideoId(mediaVideoId);
             resVideo.setStatus(ResItemVideo.STATUS_LINEUP);
@@ -83,7 +83,7 @@
 
         try {
             video.setDeleteFlag(false);
-            video.setPlayTime((int) VideoUtil.getMp4Duration(resRootPath +"/"+ file.getPath()));
+            video.setPlayTime((int) VideoUtil.getMp4Duration(file.getPath()));
             video.setName(file.getFileName());
             video.setOrigUrl(file.getPath());
             video.setStatus(MediaVideo.STATUS_LINEUP);

--
Gitblit v1.8.0