0){
//自己没学过,人数加1
if (count1 == 0){
courseLearningNumberService.update().setSql("number = number + 1").eq("course_id",courseId).update();
-// System.out.println("用户:"+userId+"第一次学这门课");
+ //System.out.println("用户:"+userId+"第一次学这门课");
}
+ //System.out.println("重复学习");
}else {
//该课程第一次被学,人数设置为1
CourseLearningNumber courseLearningNumber = new CourseLearningNumber();
courseLearningNumber.setNumber(1);
courseLearningNumber.setCourseId(courseId);
courseLearningNumberService.save(courseLearningNumber);
+ //System.out.println("该课程第一次被学习");
}
//设置人数
String numberId = courseLearningNumberService.query().eq("course_id", courseId).one().getId();
diff --git a/src/main/java/com/teaching/backend/service/impl/records/KnowledgeLearningRecordServiceImpl.java b/src/main/java/com/teaching/backend/service/impl/records/KnowledgeLearningRecordServiceImpl.java
index fe3d252..c26e3d9 100644
--- a/src/main/java/com/teaching/backend/service/impl/records/KnowledgeLearningRecordServiceImpl.java
+++ b/src/main/java/com/teaching/backend/service/impl/records/KnowledgeLearningRecordServiceImpl.java
@@ -2,20 +2,30 @@ package com.teaching.backend.service.impl.records;
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.teaching.backend.common.BaseResponse;
import com.teaching.backend.common.ResultUtils;
import com.teaching.backend.mapper.records.KnowledgeLearningRecordMapper;
import com.teaching.backend.model.entity.KnowGraph.KnowledgeLearningNumber;
import com.teaching.backend.model.entity.courses.CourseLearningNumber;
+
import com.teaching.backend.model.entity.records.KnowledgeLearningRecord;
+
+import com.teaching.backend.model.vo.records.KnowledgeLearningRecordVo;
import com.teaching.backend.service.impl.courses.CourseLearningNumberServiceImpl;
import com.teaching.backend.service.impl.knowledge.KnowledgeLearningNumberServiceImpl;
import com.teaching.backend.service.records.IKnowledgeLearningRecordService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
/**
*
@@ -44,7 +54,10 @@ public class KnowledgeLearningRecordServiceImpl extends ServiceImpl 0){
//自己没学过,人数加1
if (count1 == 0){
@@ -68,4 +81,38 @@ public class KnowledgeLearningRecordServiceImpl extends ServiceImpl getPage(int pagenum, int pagesize, String userId, String courseId) {
+ //格式化时间
+ String strDateFormat = "yyyy-MM-dd HH:mm:ss";
+ SimpleDateFormat sdf = new SimpleDateFormat(strDateFormat);
+ //分页查询
+ Page page = query()
+ .orderByDesc("times")
+ .eq("user_id", userId)
+ .eq("courses_id",courseId).page(new Page<>(pagenum, pagesize));
+ Page page1 = new Page<>();
+ List records = page.getRecords();
+ BeanUtil.copyProperties(page, page1);
+ List recordsVos = new ArrayList<>();
+ //copy集合
+ records.forEach(knowledgeLearningRecord -> {
+ KnowledgeLearningRecordVo knowledgeLearningRecordVo = new KnowledgeLearningRecordVo();
+ BeanUtil.copyProperties(knowledgeLearningRecord,knowledgeLearningRecordVo);
+ Date date = Date.from(knowledgeLearningRecord.getTimes().atZone(ZoneId.systemDefault()).toInstant());
+ knowledgeLearningRecordVo.setTime(sdf.format(date));
+// //填充学习人数
+ knowledgeLearningRecordVo.setNumber(knowledgeLearningNumberService.getById(knowledgeLearningRecord.getNumber()).getNumber());
+ recordsVos.add(knowledgeLearningRecordVo);
+ });
+ page1.setRecords(recordsVos);
+ return ResultUtils.success(page1);
+ }
+
+ @Override
+ public BaseResponse removeKnowledgeRecord(List ids) {
+ removeByIds(ids);
+ return ResultUtils.success("删除成功!");
+ }
}
diff --git a/src/main/java/com/teaching/backend/service/impl/records/ResourceLearningRecordServiceImpl.java b/src/main/java/com/teaching/backend/service/impl/records/ResourceLearningRecordServiceImpl.java
index 1220371..14270e6 100644
--- a/src/main/java/com/teaching/backend/service/impl/records/ResourceLearningRecordServiceImpl.java
+++ b/src/main/java/com/teaching/backend/service/impl/records/ResourceLearningRecordServiceImpl.java
@@ -1,18 +1,28 @@
package com.teaching.backend.service.impl.records;
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.teaching.backend.common.BaseResponse;
import com.teaching.backend.common.ResultUtils;
import com.teaching.backend.mapper.records.ResourceLearningRecordMapper;
+import com.teaching.backend.model.entity.records.KnowledgeLearningRecord;
import com.teaching.backend.model.entity.records.ResourceLearningRecord;
import com.teaching.backend.model.entity.resource.ResourceLearningNumber;
+import com.teaching.backend.model.vo.records.KnowledgeLearningRecordVo;
+import com.teaching.backend.model.vo.records.ResourceLearingRecordVo;
import com.teaching.backend.service.impl.resource.ResourceLearningNumberServiceImpl;
import com.teaching.backend.service.records.IResourceLearningRecordService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
/**
*
@@ -44,7 +54,11 @@ public class ResourceLearningRecordServiceImpl extends ServiceImpl 0){
//自己没学过,人数加1
if (count1 == 0){
@@ -73,4 +87,41 @@ public class ResourceLearningRecordServiceImpl extends ServiceImpl getPage(int pagenum, int pagesize, String userId, String knowledgeId, String courseId) {
+//格式化时间
+ String strDateFormat = "yyyy-MM-dd HH:mm:ss";
+ SimpleDateFormat sdf = new SimpleDateFormat(strDateFormat);
+ //分页查询
+ Page page = query()
+ .orderByDesc("times")
+ .eq("user_id", userId)
+ .eq("knowledge_id",knowledgeId)
+ .eq("courses_id",courseId).page(new Page<>(pagenum, pagesize));
+ Page page1 = new Page<>();
+ List records = page.getRecords();
+ BeanUtil.copyProperties(page, page1);
+ List recordsVos = new ArrayList<>();
+ //copy集合
+ records.forEach(resourceLearningRecord -> {
+ ResourceLearingRecordVo resourceLearingRecordVo = new ResourceLearingRecordVo();
+ BeanUtil.copyProperties(resourceLearningRecord,resourceLearingRecordVo);
+ Date date = Date.from(resourceLearningRecord.getTimes().atZone(ZoneId.systemDefault()).toInstant());
+ resourceLearingRecordVo.setTime(sdf.format(date));
+// //填充学习人数
+ resourceLearingRecordVo.setNumber(resourceLearningNumberService.getById(resourceLearningRecord.getNumber()).getNumber());
+ recordsVos.add(resourceLearingRecordVo);
+ });
+ page1.setRecords(recordsVos);
+ return ResultUtils.success(page1);
+ }
+
+ @Override
+ public BaseResponse removeResourceRecord(List ids) {
+ removeByIds(ids);
+ return ResultUtils.success("删除成功!");
+ }
+
+
}
diff --git a/src/main/java/com/teaching/backend/service/records/IKnowledgeLearningRecordService.java b/src/main/java/com/teaching/backend/service/records/IKnowledgeLearningRecordService.java
index ac279a5..252d176 100644
--- a/src/main/java/com/teaching/backend/service/records/IKnowledgeLearningRecordService.java
+++ b/src/main/java/com/teaching/backend/service/records/IKnowledgeLearningRecordService.java
@@ -1,10 +1,13 @@
package com.teaching.backend.service.records;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.teaching.backend.common.BaseResponse;
import com.teaching.backend.model.entity.records.KnowledgeLearningRecord;
+import java.util.List;
+
/**
*
* 服务类
@@ -16,4 +19,9 @@ import com.teaching.backend.model.entity.records.KnowledgeLearningRecord;
public interface IKnowledgeLearningRecordService extends IService {
BaseResponse saveCoursesRecords(KnowledgeLearningRecord knowledgeLearningRecord);
+
+ BaseResponse getPage(int pagenum, int pagesize, String userId, String courseId);
+
+ BaseResponse removeKnowledgeRecord(List ids);
}
+
diff --git a/src/main/java/com/teaching/backend/service/records/IResourceLearningRecordService.java b/src/main/java/com/teaching/backend/service/records/IResourceLearningRecordService.java
index 2b53014..1282e23 100644
--- a/src/main/java/com/teaching/backend/service/records/IResourceLearningRecordService.java
+++ b/src/main/java/com/teaching/backend/service/records/IResourceLearningRecordService.java
@@ -1,10 +1,13 @@
package com.teaching.backend.service.records;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.teaching.backend.common.BaseResponse;
import com.teaching.backend.model.entity.records.ResourceLearningRecord;
+import java.util.List;
+
/**
*
* 服务类
@@ -16,4 +19,8 @@ import com.teaching.backend.model.entity.records.ResourceLearningRecord;
public interface IResourceLearningRecordService extends IService {
BaseResponse saveCoursesRecords(ResourceLearningRecord resourceLearningRecord);
+
+ BaseResponse getPage(int pagenum, int pagesize, String userId, String knowledgeId, String courseId);
+
+ BaseResponse removeResourceRecord(List ids);
}
diff --git a/src/test/java/com/teaching/MinioTest.java b/src/test/java/com/teaching/MinioTest.java
new file mode 100644
index 0000000..cbdb77d
--- /dev/null
+++ b/src/test/java/com/teaching/MinioTest.java
@@ -0,0 +1,101 @@
+package com.teaching;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.util.DigestUtils;
+
+import java.io.*;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
+public class MinioTest {
+ //分块测试
+ @Test
+ public void testChunk() throws IOException {
+ //源文件
+ File sourseFile = new File("D:/Users/Desktop/image/剪映/7.18/7月20.mp4");
+ //分块文件存储路径
+ String chunkFilePath = "D:/Users/Desktop/image/剪映/7.18/chunk/";
+ //分块文件大小
+ int chunkSize = 1024 * 1024 * 1;
+ //分块文件个数
+ int chunkNum = (int) Math.ceil(sourseFile.length() * 1.0 / chunkSize);
+ //使用流从源文件读数据,向分块文件中写数据
+ RandomAccessFile raf_r = new RandomAccessFile(sourseFile, "r");
+ //缓存区
+ byte[] bytes = new byte[1024];
+ for (int i = 0; i < chunkNum; i++) {
+ File chunkFile = new File(chunkFilePath + i);
+ //分块文件写入流
+ RandomAccessFile raf_rw = new RandomAccessFile(chunkFile, "rw");
+ int len = -1;
+ while((len=raf_r.read(bytes)) != -1){
+ raf_rw.write(bytes, 0, len);
+ if (chunkFile.length() >= chunkSize){
+ break;
+ }
+ }
+ raf_rw.close();
+ }
+ raf_r.close();
+ }
+
+ //将分块进行合并
+ @Test
+ public void testMerge() throws IOException {
+ //块文件目录
+ File chunkFolder = new File("D:\\Users\\Desktop\\image\\剪映\\7.18\\chunk");
+ //源文件
+ File sourseFile = new File("D:/Users/Desktop/image/剪映/7.18/7月20.mp4");
+ //合并后的文件
+ File mergeFile = new File("D:/Users/Desktop/image/剪映/7.18/7月20_merge.mp4");
+
+ //取出所有分块文件
+ File[] files = chunkFolder.listFiles();
+ //将数组转成list
+ List fileList = Arrays.asList(files);
+ //对分块文件排序
+ Collections.sort(fileList, new Comparator() {
+ @Override
+ public int compare(File o1, File o2) {
+ return Integer.parseInt(o1.getName()) - Integer.parseInt(o2.getName()); //升序
+ }
+ });
+ //向合并文件写的流
+ RandomAccessFile raf_rw = new RandomAccessFile(mergeFile, "rw");
+ //缓存区
+ byte[] bytes = new byte[1024];
+ //遍历分块文件,向合并的文件写
+ for (File file : fileList) {
+ //读分块的流
+ RandomAccessFile raf_r = new RandomAccessFile(file, "r");
+ int len = -1;
+ while((len = raf_r.read(bytes)) != -1){
+ raf_rw.write(bytes, 0, len);
+ }
+ raf_r.close();
+ }
+ raf_rw.close();
+ //合并文件完成后对合并的文件校验
+ FileInputStream fileInputStream_merge = new FileInputStream(mergeFile);
+ FileInputStream fileInputStream_source = new FileInputStream(sourseFile);
+ String md5_merge = DigestUtils.md5DigestAsHex(fileInputStream_merge);
+ String md5_source = DigestUtils.md5DigestAsHex(fileInputStream_source);
+ if (md5_merge.equals(md5_source)){
+ System.out.println("文件合并成功!");
+ }
+ }
+
+ //将分块文件上传到minio
+ public void uploadChunk(){
+
+ }
+
+ //调用minio接口合并分块
+
+
+ //批量清理分块文件
+
+
+}