解决爆红

master
wenyu441069198 4 months ago
parent 246bd7b84c
commit 82d1f2832c
  1. 204
      src/main/java/com/teaching/backend/controller/records/ResourceLearningRecordController.java
  2. 17
      src/main/java/com/teaching/backend/mapper/records/ResourceLearningNumberMapper.java
  3. 47
      src/main/java/com/teaching/backend/model/entity/records/ResourceLearningNumber.java
  4. 22
      src/main/java/com/teaching/backend/service/impl/records/ResourceLearningNumberServiceImpl.java
  5. 252
      src/main/java/com/teaching/backend/service/impl/records/ResourceLearningRecordServiceImpl.java
  6. 17
      src/main/java/com/teaching/backend/service/records/IResourceLearningNumberService.java

@ -1,103 +1,103 @@
//package com.teaching.backend.controller.records;
//
//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
//import com.teaching.backend.common.BaseResponse;
//import com.teaching.backend.common.ResultUtils;
//import com.teaching.backend.filter.ValidateParams;
//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.service.impl.records.KnowledgeLearningRecordServiceImpl;
//import com.teaching.backend.service.impl.records.ResourceLearningRecordServiceImpl;
//import com.teaching.backend.utils.UploadUtils;
//import io.swagger.annotations.ApiOperation;
//import org.springframework.http.MediaType;
//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;
//import java.io.File;
//import java.io.IOException;
//import java.util.List;
//
//@RestController
//@RequestMapping("/api/resourcelearningrecords")
//public class ResourceLearningRecordController {
package com.teaching.backend.controller.records;
// @Resource
// private ResourceLearningRecordServiceImpl resourceLearningRecordService;
// @Resource
// private ResourceLearningRecordMapper resourceLearningRecordMapper;
//
//
//
// @ApiOperation("添加资源学习记录")
//// @ValidateParams({"userId","type","coursesId"})
// @PostMapping("/saverecords")
// public BaseResponse<String> saveResourceRecords(@RequestBody ResourceLearningRecord resourceLearningRecord) {
// return resourceLearningRecordService.saveCoursesRecords(resourceLearningRecord);
// }
//
// /**
// * 获取当前登录用户的学习资源记录
// * @param pagenum
// * @param pagesize
// * @return
// */
// @ApiOperation("根据用户id查询学习记录")
// @ValidateParams({"userId"})
// @GetMapping("/page")
// public BaseResponse<Page> getAll(@RequestParam(value = "pagenum", defaultValue = "1") int pagenum,
// @RequestParam(value = "pagesize", defaultValue = "10") int pagesize,
// @RequestParam String userId,
// @RequestParam String courseId,
// @RequestParam String knowledgeId){
// return resourceLearningRecordService.getPage(pagenum, pagesize, userId, knowledgeId,courseId);
//
// }
// /**
// * 根据ids删除
// * @param ids
// * @return
// */
// @ApiOperation("学习记录删除")
// @DeleteMapping("/delete")
// public BaseResponse<String> deleteRecords(@RequestParam List<Long> ids){
// return resourceLearningRecordService.removeResourceRecord(ids);
// }
//
// /**
// * 统计单个学生学习资源数量
// * @param userId
// * @return
// */
// @ApiOperation("统计单个学生学习资源数量")
// @GetMapping("/countresourcenumber")
// public BaseResponse<Integer> countResourceNumber(@RequestParam String userId) {
// return ResultUtils.success(resourceLearningRecordMapper.selectDistinctResourceIdsByUser(userId).size());
// }
//
//
// @ApiOperation("上传图片")
// @PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
// public BaseResponse<String> upload(@RequestPart("filedata") MultipartFile filedata) throws IOException {
// //调用ser
// System.out.println(filedata.getResource());
// System.out.println(UploadUtils.saveFileByDirectory(filedata));
//// File file = filedata.getResource().getFile();
//// UploadUtils.Chunk(file);
//// UploadUtils.Merge(file);
// //源文件
//// File sourseFile = (File) file;
// return ResultUtils.success("hello");
// };
//
// @GetMapping("/bf")
// public BaseResponse<String> bf(@RequestParam String path, File file,HttpServletRequest request, HttpServletResponse response){
// File sourseFile = new File(path);
// return ResultUtils.success(path);
// };
//
//}
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.teaching.backend.common.BaseResponse;
import com.teaching.backend.common.ResultUtils;
import com.teaching.backend.filter.ValidateParams;
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.service.impl.records.KnowledgeLearningRecordServiceImpl;
import com.teaching.backend.service.impl.records.ResourceLearningRecordServiceImpl;
import com.teaching.backend.utils.UploadUtils;
import io.swagger.annotations.ApiOperation;
import org.springframework.http.MediaType;
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;
import java.io.File;
import java.io.IOException;
import java.util.List;
@RestController
@RequestMapping("/api/resourcelearningrecords")
public class ResourceLearningRecordController {
@Resource
private ResourceLearningRecordServiceImpl resourceLearningRecordService;
@Resource
private ResourceLearningRecordMapper resourceLearningRecordMapper;
@ApiOperation("添加资源学习记录")
// @ValidateParams({"userId","type","coursesId"})
@PostMapping("/saverecords")
public BaseResponse<String> saveResourceRecords(@RequestBody ResourceLearningRecord resourceLearningRecord) {
return resourceLearningRecordService.saveCoursesRecords(resourceLearningRecord);
}
/**
* 获取当前登录用户的学习资源记录
* @param pagenum
* @param pagesize
* @return
*/
@ApiOperation("根据用户id查询学习记录")
@ValidateParams({"userId"})
@GetMapping("/page")
public BaseResponse<Page> getAll(@RequestParam(value = "pagenum", defaultValue = "1") int pagenum,
@RequestParam(value = "pagesize", defaultValue = "10") int pagesize,
@RequestParam String userId,
@RequestParam String courseId,
@RequestParam String knowledgeId){
return resourceLearningRecordService.getPage(pagenum, pagesize, userId, knowledgeId,courseId);
}
/**
* 根据ids删除
* @param ids
* @return
*/
@ApiOperation("学习记录删除")
@DeleteMapping("/delete")
public BaseResponse<String> deleteRecords(@RequestParam List<Long> ids){
return resourceLearningRecordService.removeResourceRecord(ids);
}
/**
* 统计单个学生学习资源数量
* @param userId
* @return
*/
@ApiOperation("统计单个学生学习资源数量")
@GetMapping("/countresourcenumber")
public BaseResponse<Integer> countResourceNumber(@RequestParam String userId) {
return ResultUtils.success(resourceLearningRecordMapper.selectDistinctResourceIdsByUser(userId).size());
}
@ApiOperation("上传图片")
@PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public BaseResponse<String> upload(@RequestPart("filedata") MultipartFile filedata) throws IOException {
//调用ser
System.out.println(filedata.getResource());
System.out.println(UploadUtils.saveFileByDirectory(filedata));
// File file = filedata.getResource().getFile();
// UploadUtils.Chunk(file);
// UploadUtils.Merge(file);
//源文件
// File sourseFile = (File) file;
return ResultUtils.success("hello");
};
@GetMapping("/bf")
public BaseResponse<String> bf(@RequestParam String path, File file,HttpServletRequest request, HttpServletResponse response){
File sourseFile = new File(path);
return ResultUtils.success(path);
};
}

@ -0,0 +1,17 @@
package com.teaching.backend.mapper.records;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.teaching.backend.model.entity.records.ResourceLearningNumber;
/**
* <p>
* Mapper 接口
* </p>
*
* @author author
* @since 2024-07-29
*/
public interface ResourceLearningNumberMapper extends BaseMapper<ResourceLearningNumber> {
}

@ -0,0 +1,47 @@
package com.teaching.backend.model.entity.records;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
*
* </p>
*
* @author author
* @since 2024-07-29
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("resource_learning_number")
@ApiModel(value="ResourceLearningNumber对象", description="")
public class ResourceLearningNumber implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "资源学习记录id")
@TableId(value = "id", type = IdType.ASSIGN_ID)
private String id;
@ApiModelProperty(value = "课程id")
private String courseId;
@ApiModelProperty(value = "知识点id")
private String knowledgeId;
@ApiModelProperty(value = "资源id")
private String resourceId;
@ApiModelProperty(value = "学习人数")
private Integer number;
}

@ -0,0 +1,22 @@
package com.teaching.backend.service.impl.records;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.teaching.backend.mapper.records.ResourceLearningNumberMapper;
import com.teaching.backend.model.entity.records.ResourceLearningNumber;
import com.teaching.backend.service.records.IResourceLearningNumberService;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author author
* @since 2024-07-29
*/
@Service
public class ResourceLearningNumberServiceImpl extends ServiceImpl<ResourceLearningNumberMapper, ResourceLearningNumber> implements IResourceLearningNumberService {
}

@ -1,127 +1,125 @@
//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;
//
///**
// * <p>
// * 服务实现类
// * </p>
// *
// * @author author
// * @since 2024-07-24
// */
//@Service
//public class ResourceLearningRecordServiceImpl extends ServiceImpl<ResourceLearningRecordMapper, ResourceLearningRecord> implements IResourceLearningRecordService {
//
// @Resource
// private ResourceLearningNumberServiceImpl resourceLearningNumberService;
//
// @Override
// public BaseResponse<String> saveCoursesRecords(ResourceLearningRecord resourceLearningRecord) {
// //课程id
// String courseId = resourceLearningRecord.getCoursesId();
// String knowledgeId = resourceLearningRecord.getKnowledgeId();
// String resourceId = resourceLearningRecord.getResourceId();
// String userId = resourceLearningRecord.getUserId();
// //1.生成学习时间
// resourceLearningRecord.setTimes(LocalDateTime.now());
// //2.设置人数
// //2.1查人数
// Long count = resourceLearningNumberService.query()
// .eq("course_id", courseId)
// .eq("knowledge_id",knowledgeId)
// .eq("resource_id",resourceId).count();
// //2.2判断自己是否学习过
// Long count1 = query()
// .eq("user_id", userId)
// .eq("courses_id", courseId)
// .eq("knowledge_id",knowledgeId)
// .eq("resource_id",resourceId).count();
// if (count > 0){
// //自己没学过,人数加1
// if (count1 == 0){
// resourceLearningNumberService.update().setSql("number = number + 1")
// .eq("course_id",courseId)
// .eq("knowledge_id",knowledgeId)
// .eq("resource_id",resourceId).update();
//// System.out.println("用户:"+userId+"第一次学这门课");
// }
// }else {
// //该课程第一次被学,人数设置为1
// ResourceLearningNumber resourceLearningNumber = new ResourceLearningNumber();
// resourceLearningNumber.setNumber(1);
// resourceLearningNumber.setCourseId(courseId);
// resourceLearningNumber.setKnowledgeId(knowledgeId);
// resourceLearningNumber.setResourceId(resourceId);
// resourceLearningNumberService.save(resourceLearningNumber);
// }
// //设置人数
// String numberId = resourceLearningNumberService.query()
// .eq("course_id", courseId)
// .eq("knowledge_id",knowledgeId)
// .eq("resource_id",resourceId).one().getId();
// resourceLearningRecord.setNumber(numberId);
// //保存记录
// save(resourceLearningRecord);
// return ResultUtils.success("添加成功");
// }
//
// @Override
// public BaseResponse<Page> 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<ResourceLearningRecord> page = query()
// .orderByDesc("times")
// .eq("user_id", userId)
// .eq("knowledge_id",knowledgeId)
// .eq("courses_id",courseId).page(new Page<>(pagenum, pagesize));
// Page<ResourceLearingRecordVo> page1 = new Page<>();
// List<ResourceLearningRecord> records = page.getRecords();
// BeanUtil.copyProperties(page, page1);
// List<ResourceLearingRecordVo> 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<String> removeResourceRecord(List<Long> ids) {
// removeByIds(ids);
// return ResultUtils.success("删除成功!");
// }
//
//
//}
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.ResourceLearningNumber;
import com.teaching.backend.model.entity.records.ResourceLearningRecord;
import com.teaching.backend.model.vo.records.ResourceLearingRecordVo;
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;
/**
* <p>
* 服务实现类
* </p>
*
* @author author
* @since 2024-07-24
*/
@Service
public class ResourceLearningRecordServiceImpl extends ServiceImpl<ResourceLearningRecordMapper, ResourceLearningRecord> implements IResourceLearningRecordService {
@Resource
private ResourceLearningNumberServiceImpl resourceLearningNumberService;
@Override
public BaseResponse<String> saveCoursesRecords(ResourceLearningRecord resourceLearningRecord) {
//课程id
String courseId = resourceLearningRecord.getCoursesId();
String knowledgeId = resourceLearningRecord.getKnowledgeId();
String resourceId = resourceLearningRecord.getResourceId();
String userId = resourceLearningRecord.getUserId();
//1.生成学习时间
resourceLearningRecord.setTimes(LocalDateTime.now());
//2.设置人数
//2.1查人数
Long count = resourceLearningNumberService.query()
.eq("course_id", courseId)
.eq("knowledge_id",knowledgeId)
.eq("resource_id",resourceId).count();
//2.2判断自己是否学习过
Long count1 = query()
.eq("user_id", userId)
.eq("courses_id", courseId)
.eq("knowledge_id",knowledgeId)
.eq("resource_id",resourceId).count();
if (count > 0){
//自己没学过,人数加1
if (count1 == 0){
resourceLearningNumberService.update().setSql("number = number + 1")
.eq("course_id",courseId)
.eq("knowledge_id",knowledgeId)
.eq("resource_id",resourceId).update();
// System.out.println("用户:"+userId+"第一次学这门课");
}
}else {
//该课程第一次被学,人数设置为1
ResourceLearningNumber resourceLearningNumber = new ResourceLearningNumber();
resourceLearningNumber.setNumber(1);
resourceLearningNumber.setCourseId(courseId);
resourceLearningNumber.setKnowledgeId(knowledgeId);
resourceLearningNumber.setResourceId(resourceId);
resourceLearningNumberService.save(resourceLearningNumber);
}
//设置人数
String numberId = resourceLearningNumberService.query()
.eq("course_id", courseId)
.eq("knowledge_id",knowledgeId)
.eq("resource_id",resourceId).one().getId();
resourceLearningRecord.setNumber(numberId);
//保存记录
save(resourceLearningRecord);
return ResultUtils.success("添加成功");
}
@Override
public BaseResponse<Page> 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<ResourceLearningRecord> page = query()
.orderByDesc("times")
.eq("user_id", userId)
.eq("knowledge_id",knowledgeId)
.eq("courses_id",courseId).page(new Page<>(pagenum, pagesize));
Page<ResourceLearingRecordVo> page1 = new Page<>();
List<ResourceLearningRecord> records = page.getRecords();
BeanUtil.copyProperties(page, page1);
List<ResourceLearingRecordVo> 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<String> removeResourceRecord(List<Long> ids) {
removeByIds(ids);
return ResultUtils.success("删除成功!");
}
}

@ -0,0 +1,17 @@
package com.teaching.backend.service.records;
import com.baomidou.mybatisplus.extension.service.IService;
import com.teaching.backend.model.entity.records.ResourceLearningNumber;
/**
* <p>
* 服务类
* </p>
*
* @author author
* @since 2024-07-29
*/
public interface IResourceLearningNumberService extends IService<ResourceLearningNumber> {
}
Loading…
Cancel
Save