diff --git a/pom.xml b/pom.xml index 71efd32..a96b610 100644 --- a/pom.xml +++ b/pom.xml @@ -155,13 +155,6 @@ spring-boot-starter-data-redis - - - - - - - diff --git a/src/main/java/com/teaching/backend/controller/records/LearningRecordsController.java b/src/main/java/com/teaching/backend/controller/records/LearningRecordsController.java index 20aaed3..5af486c 100644 --- a/src/main/java/com/teaching/backend/controller/records/LearningRecordsController.java +++ b/src/main/java/com/teaching/backend/controller/records/LearningRecordsController.java @@ -1,89 +1,84 @@ -//package com.teaching.backend.controller.records; -// -// -//import com.github.pagehelper.PageHelper; -//import com.github.pagehelper.PageInfo; -//import com.teaching.backend.common.BaseResponse; -//import com.teaching.backend.common.ResultUtils; -// -//import com.teaching.backend.model.entity.records.LearningRecords; -//import com.teaching.backend.model.vo.records.LearningRecordsVo; -//import com.teaching.backend.service.impl.records.LearningRecordsServiceImpl; -//import org.springframework.beans.factory.annotation.Autowired; -//import org.springframework.ui.Model; -//import org.springframework.web.bind.annotation.*; -// -//import java.util.ArrayList; -//import java.util.List; -// -//@RestController -//@RequestMapping("/learningrecords") -//public class LearningRecordsController { -// -// @Autowired -// private LearningRecordsServiceImpl learningRecordsService; -// -// -// /** -// * 获取当前登录用户的学习记录 -// * @param m -// * @param pagenum -// * @param pagesize -// * @return -// */ -// @GetMapping("/getall") -// public BaseResponse getAll(Model m, -// @RequestParam(value = "pagenum", defaultValue = "1") int pagenum, -// @RequestParam(value = "pagesize", defaultValue = "15") int pagesize, -// @RequestParam String userId){ -// PageHelper.startPage(pagenum,pagesize); -// List cs= learningRecordsService.getAll(userId); -// List pageCs = new ArrayList<>(); -// //当前页面 -// for(int i = (pagenum - 1) * pagesize; i < cs.size() && i < (pagenum) * pagesize; i++){ -// pageCs.add(cs.get(i)); -// } -// PageInfo pageInfo = new PageInfo<>(pageCs); -// System.out.println("当前页面:"+pagenum); -// System.out.println("当前页面大小:"+pagesize); -// System.out.println("当前页面内容:"+pageCs); -//// PageInfo pageInfo = new PageInfo<>(cs); -//// pageInfo.setPageSize(pagesize);//设置当前页面大小 -//// pageInfo.setPageNum(pagenum);//设置当前页码 -//// pageInfo.setSize(pagesize);//不知道是啥,--------- -//// pageInfo.setTotal(cs.size());//设置总条数 -// long total = pageInfo.getTotal(); // 总记录数 -//// pageInfo.setPages((int)(Math.ceil((double) total / pagesize)));//设置总页数 -// return ResultUtils.success(pageInfo); -// } -// -// @GetMapping("/all") -// public BaseResponse> All(){ -// System.out.println("学习记录:"+learningRecordsService.list()); -// return ResultUtils.success(learningRecordsService.list()); -// } -// -// //资源类型: 1,课程学习记录,2,知识点学习记录,3课程资源学习记录 -// /** -// * 添加课程记录 -// * @param learningRecords -// * @return -// */ -// @PostMapping("/saverecords") -// public BaseResponse saveRecords(@RequestBody LearningRecords learningRecords){ -// System.out.println(learningRecords); -// return ResultUtils.success(learningRecordsService.saveRecords(learningRecords)); -// } -// -// /** -// * 根据id删除 -// * @param ids -// * @return -// */ -// @DeleteMapping("/delete") -// public BaseResponse deleteRecords(@RequestParam List ids){ -// -// return ResultUtils.success(learningRecordsService.delete(ids)); -// } -// -//} +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.model.entity.records.LearningRecords; +import com.teaching.backend.model.vo.records.LearningRecordsVo; +import com.teaching.backend.service.impl.records.LearningRecordsServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.List; + +@RestController +@RequestMapping("/learningrecords") +public class LearningRecordsController { + + @Autowired + private LearningRecordsServiceImpl learningRecordsService; + + + /** + * 获取当前登录用户的学习记录 + * @param pagenum + * @param pagesize + * @return + */ + @GetMapping("/getall") + public BaseResponse getAll(@RequestParam(value = "pagenum", defaultValue = "1") int pagenum, + @RequestParam(value = "pagesize", defaultValue = "15") int pagesize, + @RequestParam String userId){ + List cs= learningRecordsService.getAll(userId); + List pageCs = new ArrayList<>(); + //当前页面 + for(int i = (pagenum - 1) * pagesize; i < cs.size() && i < (pagenum) * pagesize; i++){ + pageCs.add(cs.get(i)); + } + long total = cs.size(); // 总记录数 + Page pageInfo = new Page<>(pagenum,pagesize,total); + pageInfo.setRecords(pageCs); + System.out.println("总记录数"+pageInfo.getTotal()); + System.out.println("当前页面:"+pagenum); + System.out.println("当前页面大小:"+pagesize); + System.out.println("当前页面内容:"+pageCs); + System.out.println("页面数:"+pageInfo.getPages()); + pageInfo.setPages((int)(Math.ceil((double) total / pagesize)));//设置总页数 + System.out.println(pageInfo.getPages()); + return ResultUtils.success(pageInfo); + } + + @GetMapping("/all") + public BaseResponse> All(){ + System.out.println("学习记录:"+learningRecordsService.list()); + return ResultUtils.success(learningRecordsService.list()); + } + + //资源类型: 1,课程学习记录,2,知识点学习记录,3课程资源学习记录 + /** + * 添加课程记录 + * @param learningRecords + * @return + */ + @PostMapping("/saverecords") + public BaseResponse saveRecords(@RequestBody LearningRecords learningRecords){ + System.out.println(learningRecords); + return ResultUtils.success(learningRecordsService.saveRecords(learningRecords)); + } + + /** + * 根据id删除 + * @param ids + * @return + */ + @DeleteMapping("/delete") + public BaseResponse deleteRecords(@RequestParam List ids){ + + return ResultUtils.success(learningRecordsService.delete(ids)); + } + +} diff --git a/src/main/java/com/teaching/backend/mapper/records/LearningRecordsMapper.java b/src/main/java/com/teaching/backend/mapper/records/LearningRecordsMapper.java index cf6f3d1..fe107ef 100644 --- a/src/main/java/com/teaching/backend/mapper/records/LearningRecordsMapper.java +++ b/src/main/java/com/teaching/backend/mapper/records/LearningRecordsMapper.java @@ -1,16 +1,17 @@ -//package com.teaching.backend.mapper.records; +package com.teaching.backend.mapper.records; + + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.teaching.backend.model.entity.records.LearningRecords; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +@Mapper +public interface LearningRecordsMapper extends BaseMapper { + IPage selectPageList(Page page, @Param("model")LearningRecords model); + +} // -//import com.baomidou.mybatisplus.core.mapper.BaseMapper; -//import com.baomidou.mybatisplus.core.metadata.IPage; -//import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -// -//import com.teaching.backend.model.entity.records.LearningRecords; -//import org.apache.ibatis.annotations.Mapper; -//import org.apache.ibatis.annotations.Param; -// -//@Mapper -//public interface LearningRecordsMapper extends BaseMapper { -// IPage selectPageList(Page page, @Param("model")LearningRecords model); -// -//} -//// diff --git a/src/main/java/com/teaching/backend/model/entity/records/LearningRecords.java b/src/main/java/com/teaching/backend/model/entity/records/LearningRecords.java index 37cd5ef..be7d920 100644 --- a/src/main/java/com/teaching/backend/model/entity/records/LearningRecords.java +++ b/src/main/java/com/teaching/backend/model/entity/records/LearningRecords.java @@ -1,96 +1,96 @@ -//package com.teaching.backend.model.entity.records; -// -// -//import com.baomidou.mybatisplus.annotation.IdType; -//import com.baomidou.mybatisplus.annotation.TableId; -//import com.baomidou.mybatisplus.annotation.TableName; -//import lombok.Data; -//import lombok.EqualsAndHashCode; -//import lombok.experimental.Accessors; -// -//import java.time.LocalDateTime; -// -// -//@Data -//@EqualsAndHashCode(callSuper = false) -//@Accessors(chain = true) -//@TableName("learning_records") -//public class LearningRecords { -// private static final long serialVersionUID = 1L; -// -// /** -// * 内部编号 -// */ -// @TableId(value = "id", type = IdType.ASSIGN_ID) -// private String id; -// -// /** -// * 用户id -// */ -// private String userId; -// -// /** -// * 课程id -// */ -// private String coursesId; -// /** -// * 章节id -// */ -// private String chapterId; -// /** -// * 知识点id -// */ -// private String knowledgePointId; -// /** -// * 资源id -// */ -// private String resourceId; -// /** -// * 访问时间 -// */ -// private LocalDateTime accessTime; -// -// /** -// * 学习方式:打开; 1,打开过,2未打开 -// */ -// private String learningMethod1; -// /** -// * 学习方式:下载; 1下载过, 2未下载 -// */ -// private String learningMethod2; -// /** -// *视频学习时长 -// */ -// private String videoDuration; -// -// /** -// *是否完成观看:1,已完成,0未完成 -// */ -// private String isCompleted; -// -// /** -// * 记录封面图片 -// */ -// private String content; -// /** -// * 资源地址 -// */ -// private String address; -// -// /** -// * 是否存在: 1存在;0不存在; -// */ -// private String status; -// /** -// * 类型, 如:1,课程; 2,章节; 3,知识点; 4,学习资源 -// */ -// private String type; -// /** -// * 父节点 -// */ -// private String parentNode; -// -// -// -// -//} +package com.teaching.backend.model.entity.records; + + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.time.LocalDateTime; + + +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("learning_records") +public class LearningRecords { + private static final long serialVersionUID = 1L; + + /** + * 内部编号 + */ + @TableId(value = "id", type = IdType.ASSIGN_ID) + private String id; + + /** + * 用户id + */ + private String userId; + + /** + * 课程id + */ + private String coursesId; + /** + * 章节id + */ + private String chapterId; + /** + * 知识点id + */ + private String knowledgePointId; + /** + * 资源id + */ + private String resourceId; + /** + * 访问时间 + */ + private LocalDateTime accessTime; + + /** + * 学习方式:打开; 1,打开过,2未打开 + */ + private String learningMethod1; + /** + * 学习方式:下载; 1下载过, 2未下载 + */ + private String learningMethod2; + /** + *视频学习时长 + */ + private String videoDuration; + + /** + *是否完成观看:1,已完成,0未完成 + */ + private String isCompleted; + + /** + * 记录封面图片 + */ + private String content; + /** + * 资源地址 + */ + private String address; + + /** + * 是否存在: 1存在;0不存在; + */ + private String status; + /** + * 类型, 如:1,课程; 2,章节; 3,知识点; 4,学习资源 + */ + private String type; + /** + * 父节点 + */ + private String parentNode; + + + + +} diff --git a/src/main/java/com/teaching/backend/model/vo/records/LearningRecordsVo.java b/src/main/java/com/teaching/backend/model/vo/records/LearningRecordsVo.java index 75b2550..e9b3ab2 100644 --- a/src/main/java/com/teaching/backend/model/vo/records/LearningRecordsVo.java +++ b/src/main/java/com/teaching/backend/model/vo/records/LearningRecordsVo.java @@ -1,59 +1,59 @@ -//package com.teaching.backend.model.vo.records; -// -//import lombok.Data; -//import lombok.EqualsAndHashCode; -//import lombok.experimental.Accessors; -// -//@Data -//@EqualsAndHashCode(callSuper = false) -//@Accessors(chain = true) -//public class LearningRecordsVo { -//// private static final long serialVersionUID = 1L; -// +package com.teaching.backend.model.vo.records; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +public class LearningRecordsVo { +// private static final long serialVersionUID = 1L; + + /** + * 内部编号 + */ + private String id; + + /** + * 课程名称 + */ + private String coursesName; + // /** -// * 内部编号 +// * 资源类型 // */ -// private String id; -// +// private String type; + + /** + * 封面 + */ + private String content; + + /** + * 资源观看人数 + */ + private Long number; + + + /** + * 上次观看时间 + */ + private String time; + /** + * 地址 + */ + private String address; // /** -// * 课程名称 +// * 创建日期 // */ -// private String coursesName; -// -//// /** -//// * 资源类型 -//// */ -//// private String type; +// private LocalDateTime createTime; // // /** -// * 封面 +// * 更新日期 // */ -// private String content; -// -// /** -// * 资源观看人数 -// */ -// private Long number; -// -// -// /** -// * 上次观看时间 -// */ -// private String time; -// /** -// * 地址 -// */ -// private String address; -//// /** -//// * 创建日期 -//// */ -//// private LocalDateTime createTime; -//// -//// /** -//// * 更新日期 -//// */ -//// private LocalDateTime updateTime; -// -// -// -//} +// private LocalDateTime updateTime; + + + +} diff --git a/src/main/java/com/teaching/backend/service/impl/records/LearningRecordsServiceImpl.java b/src/main/java/com/teaching/backend/service/impl/records/LearningRecordsServiceImpl.java index ba5473d..9bf49af 100644 --- a/src/main/java/com/teaching/backend/service/impl/records/LearningRecordsServiceImpl.java +++ b/src/main/java/com/teaching/backend/service/impl/records/LearningRecordsServiceImpl.java @@ -1,185 +1,185 @@ -//package com.teaching.backend.service.impl.records; -// -//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -//import com.baomidou.mybatisplus.core.metadata.IPage; -//import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -//import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -// -//import com.teaching.backend.mapper.records.LearningRecordsMapper; -// -//import com.teaching.backend.model.entity.records.LearningRecords; -//import com.teaching.backend.model.vo.records.LearningRecordsVo; -//import com.teaching.backend.service.impl.chapter.ChapterServiceImpl; -//import com.teaching.backend.service.impl.courses.CoursesServiceImpl; -//import com.teaching.backend.service.impl.know.IknowServiceimpl; -//import com.teaching.backend.service.records.LearningRecordsService; -//import org.springframework.beans.BeanUtils; -//import org.springframework.beans.factory.annotation.Autowired; -//import org.springframework.stereotype.Service; -// -//import java.text.SimpleDateFormat; -//import java.time.LocalDateTime; -//import java.time.ZoneId; -//import java.util.ArrayList; -//import java.util.Date; -//import java.util.List; -// -//@Service -//public class LearningRecordsServiceImpl extends ServiceImpl implements LearningRecordsService { -// -// @Autowired -// private CoursesServiceImpl coursesService; +package com.teaching.backend.service.impl.records; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +import com.teaching.backend.mapper.records.LearningRecordsMapper; + +import com.teaching.backend.model.entity.records.LearningRecords; +import com.teaching.backend.model.vo.records.LearningRecordsVo; +import com.teaching.backend.service.impl.chapter.ChapterServiceImpl; +import com.teaching.backend.service.impl.courses.CoursesServiceImpl; +import com.teaching.backend.service.impl.know.IknowServiceimpl; +import com.teaching.backend.service.records.LearningRecordsService; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Service +public class LearningRecordsServiceImpl extends ServiceImpl implements LearningRecordsService { + + @Autowired + private CoursesServiceImpl coursesService; + @Autowired + private LearningRecordsMapper learningRecordsMapper; // @Autowired -// private LearningRecordsMapper learningRecordsMapper; -//// @Autowired -//// private LearningResourceServiceImpl learningResourceService; -// @Autowired -// private IknowServiceimpl knowledgePointService; -// @Autowired -// private ChapterServiceImpl chapterService; -// -// @Override -// public IPage selectPageList(Page page, LearningRecords model) { -// return learningRecordsMapper.selectPageList(page,model); -// } -// -// @Override -// public String delete(List ids) { -// LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); -// lambdaQueryWrapper.in(LearningRecords::getId, ids); -// List list = this.list(lambdaQueryWrapper); -// //把即将要删除的记录状态调成0 -// for (LearningRecords learningRecords : list) { -// learningRecords.setStatus("0"); -// } -// this.updateBatchById(list); -//// System.out.println(this.updateBatchById(list)); -//// this.remove(lambdaQueryWrapper); -// return "删除成功"; -// } -// -// @Override -// public List getAll(String userId){ -// //格式化时间 -// //格式化时间 -// String strDateFormat = "yyyy-MM-dd HH:mm:ss"; -// SimpleDateFormat sdf = new SimpleDateFormat(strDateFormat); -// -// List list = new ArrayList<>(); -// //将学习记录实体转成学习记录Vo实体 -// LambdaQueryWrapper lambdaQueryWrapper1 = new LambdaQueryWrapper<>(); -// lambdaQueryWrapper1 -// .orderByDesc(LearningRecords::getAccessTime) -// .eq(LearningRecords::getUserId, userId) -// .eq(LearningRecords::getStatus, "1"); -// System.out.println(this.list(lambdaQueryWrapper1)); -// //如果为空-------------------????? -// for (LearningRecords learningRecords : this.list(lambdaQueryWrapper1)) { -// //查找该用户的学习记录 -//// if (learningRecords.getUserId().equals(userId) && learningRecords.getStatus().equals("1")){ -// LearningRecordsVo learningRecordsVo = new LearningRecordsVo();//好像可以拿出去-----------?? -// BeanUtils.copyProperties(learningRecords,learningRecordsVo);//从多传到少(缺少人数,和资源名称,时间需要转格式) -// //添加时间 -// //LocalDateTime转Date -// Date date = Date.from(learningRecords.getAccessTime().atZone(ZoneId.systemDefault()).toInstant()); -// learningRecordsVo.setTime(sdf.format(date)); -// LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); -// lambdaQueryWrapper.eq(LearningRecords::getCoursesId, learningRecords.getCoursesId()); -//// System.out.println(learningRecords.getResourceId()); -//// System.out.println("1"); -// -// //添加课程名称 -// switch (learningRecords.getType()) { -// case "4": //如果是资源学习 -// learningRecordsVo.setCoursesName("学习资源");//设置名称 --------------------------------------------待完善 -// -// break; -// case "3": //如果是知识点学习记录 -// learningRecordsVo.setCoursesName(knowledgePointService.getById(learningRecords.getCoursesId()).getName()); -// -// break; -// case "2": //如果是章节学习记录 -// learningRecordsVo.setCoursesName(chapterService.getById(learningRecords.getCoursesId()).getName()); -// -// break; -// case "1": //如果是课程学习记录 -// learningRecordsVo.setCoursesName(coursesService.getById(learningRecords.getCoursesId()).getName()); -// break; -// } -// //添加观看人数 -// //统计记录表里有多少人查看过这门资源 -// long count = this.count(lambdaQueryWrapper); -// System.out.println(count); -// learningRecordsVo.setNumber(count); -// //把整合后该用户的学习记录添加到List里 -// list.add(learningRecordsVo); -//// } -// } -// System.out.println(list); -// return list; -// } -// -// /** -// * 根据用户id和学习资源id来判断记录是否存在 -// * @param learningRecords -// * @return -// */ -// @Override -// public String saveRecords(LearningRecords learningRecords) { -// String userId = learningRecords.getUserId(); -// String coursesId = learningRecords.getCoursesId(); -// System.out.println("学习记录:"+learningRecords); -// //查找该用户是否观看过该学习资源 -// LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); -// lambdaQueryWrapper -// .eq(LearningRecords::getUserId, userId) -// .eq(LearningRecords::getCoursesId, coursesId) -// .eq(LearningRecords::getType, learningRecords.getType()); -// long count = this.count(lambdaQueryWrapper); -// System.out.println("数据库:"+count); -// learningRecords.setStatus("1");//将该记录的状态设置为1 -// //更新观看时间 -// learningRecords.setAccessTime(LocalDateTime.now()); -// //设置默认封面 -// if (learningRecords.getContent() == null || learningRecords.getContent().equals("")){ -// learningRecords.setContent("https://teaching-edu123.oss-cn-beijing.aliyuncs.com/Borovets_ZH-CN5914681811_UHD.jpg"); -// } -//// //添加记录封面 -//// switch (learningRecords.getType()) { -//// case "4": //如果是资源学习 -//// learningRecords.setContent(learningResourceService.getById(learningRecords.getCoursesId()).getContent());//设置封面 -//// break; -//// case "3": //如果是知识点学习记录 -//// learningRecords.setContent(knowledgePointService.getById(learningRecords.getCoursesId()).getContent());//设置封面 -//// -//// break; -//// case "2": //如果是章节学习记录 -//// learningRecords.setContent(chapterService.getById(learningRecords.getCoursesId()).getContent());//设置封面 -//// -//// break; -//// case "1": //如果是课程学习记录 -//// learningRecords.setContent(coursesService.getById(learningRecords.getCoursesId()).getImg());//设置封面 -//// break; -//// } -// if (count == 0){//如果没有就新增并记录学习方式是打开还是下载 -// //根据传上来的type设置 -//// learningRecords.setType(learningRecords.getType()); -// this.save(learningRecords); -// return "添加成功"; -// }else {//有就修改记录,更新学习方式 -// LearningRecords one = this.getOne(lambdaQueryWrapper); -// System.out.println(one); -// learningRecords.setId(one.getId());//找到该条记录的id并赋值给本次观看记录 -// if ( one.getLearningMethod1() != null && one.getLearningMethod1().equals("1")){ -// learningRecords.setLearningMethod1(one.getLearningMethod1()); +// private LearningResourceServiceImpl learningResourceService; + @Autowired + private IknowServiceimpl knowledgePointService; + @Autowired + private ChapterServiceImpl chapterService; + + @Override + public IPage selectPageList(Page page, LearningRecords model) { + return learningRecordsMapper.selectPageList(page,model); + } + + @Override + public String delete(List ids) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(LearningRecords::getId, ids); + List list = this.list(lambdaQueryWrapper); + //把即将要删除的记录状态调成0 + for (LearningRecords learningRecords : list) { + learningRecords.setStatus("0"); + } + this.updateBatchById(list); +// System.out.println(this.updateBatchById(list)); +// this.remove(lambdaQueryWrapper); + return "删除成功"; + } + + @Override + public List getAll(String userId){ + //格式化时间 + //格式化时间 + String strDateFormat = "yyyy-MM-dd HH:mm:ss"; + SimpleDateFormat sdf = new SimpleDateFormat(strDateFormat); + + List list = new ArrayList<>(); + //将学习记录实体转成学习记录Vo实体 + LambdaQueryWrapper lambdaQueryWrapper1 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper1 + .orderByDesc(LearningRecords::getAccessTime) + .eq(LearningRecords::getUserId, userId) + .eq(LearningRecords::getStatus, "1"); + System.out.println(this.list(lambdaQueryWrapper1)); + //如果为空-------------------????? + for (LearningRecords learningRecords : this.list(lambdaQueryWrapper1)) { + //查找该用户的学习记录 +// if (learningRecords.getUserId().equals(userId) && learningRecords.getStatus().equals("1")){ + LearningRecordsVo learningRecordsVo = new LearningRecordsVo();//好像可以拿出去-----------?? + BeanUtils.copyProperties(learningRecords,learningRecordsVo);//从多传到少(缺少人数,和资源名称,时间需要转格式) + //添加时间 + //LocalDateTime转Date + Date date = Date.from(learningRecords.getAccessTime().atZone(ZoneId.systemDefault()).toInstant()); + learningRecordsVo.setTime(sdf.format(date)); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(LearningRecords::getCoursesId, learningRecords.getCoursesId()); +// System.out.println(learningRecords.getResourceId()); +// System.out.println("1"); + + //添加课程名称 + switch (learningRecords.getType()) { + case "4": //如果是资源学习 + learningRecordsVo.setCoursesName("学习资源");//设置名称 --------------------------------------------待完善 + + break; + case "3": //如果是知识点学习记录 + learningRecordsVo.setCoursesName(knowledgePointService.getById(learningRecords.getCoursesId()).getName()); + + break; + case "2": //如果是章节学习记录 + learningRecordsVo.setCoursesName(chapterService.getById(learningRecords.getCoursesId()).getName()); + + break; + case "1": //如果是课程学习记录 + learningRecordsVo.setCoursesName(coursesService.getById(learningRecords.getCoursesId()).getName()); + break; + } + //添加观看人数 + //统计记录表里有多少人查看过这门资源 + long count = this.count(lambdaQueryWrapper); + System.out.println(count); + learningRecordsVo.setNumber(count); + //把整合后该用户的学习记录添加到List里 + list.add(learningRecordsVo); // } -// if (one.getLearningMethod2() != null && one.getLearningMethod2().equals("1")){ -// learningRecords.setLearningMethod2(one.getLearningMethod2()); -// } -// this.updateById(learningRecords); -// return "修改成功"; + } + System.out.println(list); + return list; + } + + /** + * 根据用户id和学习资源id来判断记录是否存在 + * @param learningRecords + * @return + */ + @Override + public String saveRecords(LearningRecords learningRecords) { + String userId = learningRecords.getUserId(); + String coursesId = learningRecords.getCoursesId(); + System.out.println("学习记录:"+learningRecords); + //查找该用户是否观看过该学习资源 + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper + .eq(LearningRecords::getUserId, userId) + .eq(LearningRecords::getCoursesId, coursesId) + .eq(LearningRecords::getType, learningRecords.getType()); + long count = this.count(lambdaQueryWrapper); + System.out.println("数据库:"+count); + learningRecords.setStatus("1");//将该记录的状态设置为1 + //更新观看时间 + learningRecords.setAccessTime(LocalDateTime.now()); + //设置默认封面 + if (learningRecords.getContent() == null || learningRecords.getContent().equals("")){ + learningRecords.setContent("https://teaching-edu123.oss-cn-beijing.aliyuncs.com/Borovets_ZH-CN5914681811_UHD.jpg"); + } +// //添加记录封面 +// switch (learningRecords.getType()) { +// case "4": //如果是资源学习 +// learningRecords.setContent(learningResourceService.getById(learningRecords.getCoursesId()).getContent());//设置封面 +// break; +// case "3": //如果是知识点学习记录 +// learningRecords.setContent(knowledgePointService.getById(learningRecords.getCoursesId()).getContent());//设置封面 +// +// break; +// case "2": //如果是章节学习记录 +// learningRecords.setContent(chapterService.getById(learningRecords.getCoursesId()).getContent());//设置封面 +// +// break; +// case "1": //如果是课程学习记录 +// learningRecords.setContent(coursesService.getById(learningRecords.getCoursesId()).getImg());//设置封面 +// break; // } -// } -// -// -//} + if (count == 0){//如果没有就新增并记录学习方式是打开还是下载 + //根据传上来的type设置 +// learningRecords.setType(learningRecords.getType()); + this.save(learningRecords); + return "添加成功"; + }else {//有就修改记录,更新学习方式 + LearningRecords one = this.getOne(lambdaQueryWrapper); + System.out.println(one); + learningRecords.setId(one.getId());//找到该条记录的id并赋值给本次观看记录 + if ( one.getLearningMethod1() != null && one.getLearningMethod1().equals("1")){ + learningRecords.setLearningMethod1(one.getLearningMethod1()); + } + if (one.getLearningMethod2() != null && one.getLearningMethod2().equals("1")){ + learningRecords.setLearningMethod2(one.getLearningMethod2()); + } + this.updateById(learningRecords); + return "修改成功"; + } + } + + +} diff --git a/src/main/java/com/teaching/backend/service/records/LearningRecordsService.java b/src/main/java/com/teaching/backend/service/records/LearningRecordsService.java index daa776a..d2acb1b 100644 --- a/src/main/java/com/teaching/backend/service/records/LearningRecordsService.java +++ b/src/main/java/com/teaching/backend/service/records/LearningRecordsService.java @@ -1,19 +1,19 @@ -//package com.teaching.backend.service.records; -// -//import com.baomidou.mybatisplus.core.metadata.IPage; -//import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -//import com.baomidou.mybatisplus.extension.service.IService; -//import com.teaching.backend.model.entity.records.LearningRecords; -//import com.teaching.backend.model.vo.records.LearningRecordsVo; -// -// -//import java.util.List; -// -//public interface LearningRecordsService extends IService { -// public List getAll(String username); -// public String saveRecords(LearningRecords learningRecords); -// IPage selectPageList(Page page, LearningRecords model); -// -// public String delete(List ids); -// -//} +package com.teaching.backend.service.records; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.teaching.backend.model.entity.records.LearningRecords; +import com.teaching.backend.model.vo.records.LearningRecordsVo; + + +import java.util.List; + +public interface LearningRecordsService extends IService { + public List getAll(String username); + public String saveRecords(LearningRecords learningRecords); + IPage selectPageList(Page page, LearningRecords model); + + public String delete(List ids); + +}