From 92027c9960c8e4e8d84db11c2c422254a5b7d38c Mon Sep 17 00:00:00 2001
From: Administrator <2863138610@qq.com>
Date: 星期二, 06 十二月 2022 16:00:03 +0800
Subject: [PATCH] 华为云obs上传

---
 src/main/java/com/qxueyou/scc/admin/progress/service/IProgressService.java                          |   22 +-
 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/teach/res/service/HweiYunOBSService.java                              |   19 +-
 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 
 17 files changed, 348 insertions(+), 161 deletions(-)

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/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