parent
199afb1d5c
commit
806e7b365f
50 changed files with 2045 additions and 1976 deletions
@ -0,0 +1,24 @@ |
|||||||
|
package com.teaching.backend.config; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author:youhang |
||||||
|
* @Date:2024-07-26-13:11 |
||||||
|
* @Description: |
||||||
|
*/ |
||||||
|
import org.springframework.context.annotation.Bean; |
||||||
|
import org.springframework.context.annotation.Configuration; |
||||||
|
import org.springframework.web.multipart.MultipartResolver; |
||||||
|
import org.springframework.web.multipart.commons.CommonsMultipartResolver; |
||||||
|
|
||||||
|
@Configuration |
||||||
|
public class UploadConfig { |
||||||
|
//显示声明CommonsMultipartResolver为mutipartResolver
|
||||||
|
@Bean(name = "multipartResolver") |
||||||
|
public MultipartResolver multipartResolver() { |
||||||
|
CommonsMultipartResolver resolver = new CommonsMultipartResolver(); |
||||||
|
resolver.setDefaultEncoding("UTF-8"); |
||||||
|
//resolveLazily属性启用是为了推迟文件解析,以在在UploadAction中捕获文件大小异常
|
||||||
|
resolver.setResolveLazily(true); |
||||||
|
return resolver; |
||||||
|
} |
||||||
|
} |
@ -1,45 +1,44 @@ |
|||||||
package com.teaching.backend.controller.FavourInformation; |
//package com.teaching.backend.controller.FavourInformation;
|
||||||
|
//
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.teaching.backend.common.BaseResponse; |
//import com.teaching.backend.common.BaseResponse;
|
||||||
import com.teaching.backend.common.PageRequest; |
//import com.teaching.backend.common.PageRequest;
|
||||||
import com.teaching.backend.common.ResultUtils; |
//import com.teaching.backend.common.ResultUtils;
|
||||||
import com.teaching.backend.model.entity.CourseResources; |
//import com.teaching.backend.model.entity.resource.CourseResources;
|
||||||
import com.teaching.backend.service.resource.CourseResourcesService; |
//import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.*; |
//
|
||||||
|
//import javax.annotation.Resource;
|
||||||
import javax.annotation.Resource; |
//import java.util.List;
|
||||||
import java.util.List; |
//
|
||||||
|
///**
|
||||||
/** |
// * ClassName: Get
|
||||||
* ClassName: Get |
// * Package: com.teaching.backend.controller.FavourInformation
|
||||||
* Package: com.teaching.backend.controller.FavourInformation |
// * Description:
|
||||||
* Description: |
// *
|
||||||
* |
// * @Author 姜钧瀚
|
||||||
* @Author 姜钧瀚 |
// * @Create 2024/6/13 18:15
|
||||||
* @Create 2024/6/13 18:15 |
// * @Version 1.0
|
||||||
* @Version 1.0 |
// */
|
||||||
*/ |
//@RestController
|
||||||
@RestController |
//@RequestMapping ("/api")
|
||||||
@RequestMapping ("/api") |
//public class FavourInformationController{
|
||||||
public class FavourInformationController{ |
//
|
||||||
|
//
|
||||||
|
// @Resource
|
||||||
@Resource |
// CourseResourcesService courseResourcesService;
|
||||||
CourseResourcesService courseResourcesService; |
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// @GetMapping("/Favour/get")
|
||||||
@GetMapping("/Favour/get") |
// public BaseResponse<Page<CourseResources>> getInformation2(@RequestParam List<Integer> resourceIdList , @RequestParam Integer type, PageRequest pageRequest) {
|
||||||
public BaseResponse<Page<CourseResources>> getInformation2(@RequestParam List<Integer> resourceIdList , @RequestParam Integer type, PageRequest pageRequest) { |
//
|
||||||
|
// int page=pageRequest.getCurrent();
|
||||||
int page=pageRequest.getCurrent(); |
// int pageSize=pageRequest.getPageSize();
|
||||||
int pageSize=pageRequest.getPageSize(); |
//
|
||||||
|
// Page<CourseResources> resourcesPage=courseResourcesService.getresourceRecords(type,resourceIdList,page,pageSize);
|
||||||
Page<CourseResources> resourcesPage=courseResourcesService.getresourceRecords(type,resourceIdList,page,pageSize); |
//
|
||||||
|
// return ResultUtils.success(resourcesPage);
|
||||||
return ResultUtils.success(resourcesPage); |
//
|
||||||
|
// }
|
||||||
} |
//
|
||||||
|
// }
|
||||||
} |
|
||||||
|
@ -0,0 +1,84 @@ |
|||||||
|
package com.teaching.backend.controller.KnowGraph; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author:youhang |
||||||
|
* @Date:2024-06-09-9:55 |
||||||
|
* @Description: |
||||||
|
*/ |
||||||
|
|
||||||
|
|
||||||
|
import com.teaching.backend.model.dto.KnowGraph.*; |
||||||
|
import com.teaching.backend.model.entity.KnowGraph.Know; |
||||||
|
|
||||||
|
import com.teaching.backend.model.entity.KnowGraph.Resources; |
||||||
|
|
||||||
|
import com.teaching.backend.service.KnowGraph.ResourcesService; |
||||||
|
import org.springframework.web.bind.annotation.*; |
||||||
|
import org.springframework.web.multipart.MultipartFile; |
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest; |
||||||
|
import java.io.File; |
||||||
|
import java.util.List; |
||||||
|
import java.util.Set; |
||||||
|
|
||||||
|
|
||||||
|
@RestController |
||||||
|
@RequestMapping("/resources") |
||||||
|
public class ResourcesController { |
||||||
|
|
||||||
|
private ResourcesService resourcesService; |
||||||
|
|
||||||
|
//添加知识点
|
||||||
|
@PostMapping("/upload") |
||||||
|
public String uploadFile(@RequestParam("file")MultipartFile file) { |
||||||
|
System.out.println(file.getOriginalFilename()); |
||||||
|
return resourcesService.uploadFile(file); |
||||||
|
} |
||||||
|
|
||||||
|
public ResourcesController(ResourcesService resourcesService) { |
||||||
|
this.resourcesService = resourcesService; |
||||||
|
} |
||||||
|
|
||||||
|
//根据 id查询所关联的所有结点
|
||||||
|
@PostMapping ("/query/{id}") |
||||||
|
public List<Resources> queryKnowAllKnowById(@PathVariable Long id) { |
||||||
|
return resourcesService.queryKnowAllResources(id); |
||||||
|
} |
||||||
|
|
||||||
|
//添加知识点
|
||||||
|
@PostMapping("/add") |
||||||
|
public Resources createResources(@RequestBody ResourcesAddRequest resourceAddRequest) { |
||||||
|
return resourcesService.createResource(resourceAddRequest); |
||||||
|
} |
||||||
|
|
||||||
|
//添加知识点 - 课程
|
||||||
|
@PostMapping("/addKnowResources") |
||||||
|
public void createCourseKnow(@RequestBody RelationshipResourceRequest relationshipResourceRequest) { |
||||||
|
resourcesService.addKnowWithResources(relationshipResourceRequest); |
||||||
|
} |
||||||
|
|
||||||
|
//修改知识点
|
||||||
|
@PostMapping ("/update") |
||||||
|
public Resources updateKnow(@RequestBody ResourceUpdateRequest resourceUpdateRequest ) { |
||||||
|
return resourcesService.updateResources(resourceUpdateRequest); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//删除知识点
|
||||||
|
@GetMapping ("delete/{id}") |
||||||
|
public void deleteResource(@PathVariable Long id) { |
||||||
|
resourcesService.deleteResources(id); |
||||||
|
} |
||||||
|
|
||||||
|
//添加知识点与知识点的关系 related
|
||||||
|
@PostMapping ("/addKnowResourcesResources") |
||||||
|
public void addKnowWithResource(@RequestBody RelationshipResourceRequest relationshipResourceRequest) { |
||||||
|
resourcesService.addKnowWithResources(relationshipResourceRequest); |
||||||
|
} |
||||||
|
|
||||||
|
@GetMapping ("queryCourseKnow/{KnowId}") |
||||||
|
public Set<Resources> queryCourseKnowToResources(@PathVariable Long KnowId) { |
||||||
|
return resourcesService.queryCourseKnowToResources(KnowId); |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -1,97 +1,96 @@ |
|||||||
package com.teaching.backend.controller.courseResource; |
//package com.teaching.backend.controller.courseResource;
|
||||||
|
//
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.teaching.backend.common.BaseResponse; |
//import com.teaching.backend.common.BaseResponse;
|
||||||
import com.teaching.backend.common.ResultUtils; |
//import com.teaching.backend.common.ResultUtils;
|
||||||
|
//
|
||||||
import com.teaching.backend.model.entity.CourseResources; |
//import com.teaching.backend.model.entity.resource.CourseResources;
|
||||||
import com.teaching.backend.service.impl.CourseResourcesServiceImpl; |
//import io.swagger.annotations.ApiOperation;
|
||||||
import io.swagger.annotations.ApiOperation; |
//import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Autowired; |
//import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.*; |
//
|
||||||
|
//import java.util.ArrayList;
|
||||||
import java.util.ArrayList; |
//import java.util.List;
|
||||||
import java.util.List; |
//
|
||||||
|
//@RestController
|
||||||
@RestController |
//@RequestMapping("/api/courses")
|
||||||
@RequestMapping("/api/courses") |
//public class CourseResourceController {
|
||||||
public class CourseResourceController { |
// @Autowired
|
||||||
@Autowired |
// private CourseResourcesServiceImpl courseResourcesService;
|
||||||
private CourseResourcesServiceImpl courseResourcesService; |
// @ApiOperation("查询全部课程资源记录")
|
||||||
@ApiOperation("查询全部课程资源记录") |
// @GetMapping("/all")
|
||||||
@GetMapping("/all") |
// public BaseResponse<List<CourseResources>> All(){
|
||||||
public BaseResponse<List<CourseResources>> All(){ |
// System.out.println("学习记录:"+courseResourcesService.list());
|
||||||
System.out.println("学习记录:"+courseResourcesService.list()); |
// return ResultUtils.success(courseResourcesService.list());
|
||||||
return ResultUtils.success(courseResourcesService.list()); |
// }
|
||||||
} |
//
|
||||||
|
// @ApiOperation("按type查询课程资源")
|
||||||
@ApiOperation("按type查询课程资源") |
// @GetMapping("/getall")
|
||||||
@GetMapping("/getall") |
// public BaseResponse<Page> getAll(@RequestParam(value = "pagenum", defaultValue = "1") int pagenum,
|
||||||
public BaseResponse<Page> getAll(@RequestParam(value = "pagenum", defaultValue = "1") int pagenum, |
// @RequestParam(value = "pagesize", defaultValue = "10") int pagesize,
|
||||||
@RequestParam(value = "pagesize", defaultValue = "10") int pagesize, |
// String type) {
|
||||||
String type) { |
//
|
||||||
|
// List<CourseResources> cs = courseResourcesService.getByType(type);
|
||||||
List<CourseResources> cs = courseResourcesService.getByType(type); |
// List<CourseResources> pageCs = new ArrayList<>();
|
||||||
List<CourseResources> pageCs = new ArrayList<>(); |
// //当前页面
|
||||||
//当前页面
|
// for(int i = (pagenum - 1) * pagesize; i < cs.size() && i < (pagenum) * pagesize; i++){
|
||||||
for(int i = (pagenum - 1) * pagesize; i < cs.size() && i < (pagenum) * pagesize; i++){ |
// pageCs.add(cs.get(i));
|
||||||
pageCs.add(cs.get(i)); |
// }
|
||||||
} |
// long total = cs.size(); // 总记录数
|
||||||
long total = cs.size(); // 总记录数
|
// Page<CourseResources> pageInfo = new Page<>(pagenum,pagesize,total);
|
||||||
Page<CourseResources> pageInfo = new Page<>(pagenum,pagesize,total); |
// pageInfo.setRecords(pageCs);
|
||||||
pageInfo.setRecords(pageCs); |
// pageInfo.setPages((int)(Math.ceil((double) total / pagesize)));//设置总页数
|
||||||
pageInfo.setPages((int)(Math.ceil((double) total / pagesize)));//设置总页数
|
// return ResultUtils.success(pageInfo);
|
||||||
return ResultUtils.success(pageInfo); |
// }
|
||||||
} |
//
|
||||||
|
// /**
|
||||||
/** |
// * 根据ids删除
|
||||||
* 根据ids删除 |
// * @param ids
|
||||||
* @param ids |
// * @return
|
||||||
* @return |
// */
|
||||||
*/ |
// @ApiOperation("根据ids删除")
|
||||||
@ApiOperation("根据ids删除") |
// @DeleteMapping("/delete")
|
||||||
@DeleteMapping("/delete") |
// public BaseResponse<String> deleteRecords(@RequestParam List<Long> ids){
|
||||||
public BaseResponse<String> deleteRecords(@RequestParam List<Long> ids){ |
// courseResourcesService.removeCourseResources(ids);
|
||||||
courseResourcesService.removeCourseResources(ids); |
//// courseResourcesService.removeBatchByIds(ids);
|
||||||
// courseResourcesService.removeBatchByIds(ids);
|
// return ResultUtils.success("删除成功!!");
|
||||||
return ResultUtils.success("删除成功!!"); |
// }
|
||||||
} |
//
|
||||||
|
// /**
|
||||||
/** |
// * 新增
|
||||||
* 新增 |
// * @param courseResources
|
||||||
* @param courseResources |
// * @return
|
||||||
* @return |
// */
|
||||||
*/ |
// @ApiOperation("新增课程资源")
|
||||||
@ApiOperation("新增课程资源") |
// @PostMapping("/save")
|
||||||
@PostMapping("/save") |
// public BaseResponse<String> saveCourseResource(@RequestBody CourseResources courseResources){
|
||||||
public BaseResponse<String> saveCourseResource(@RequestBody CourseResources courseResources){ |
// System.out.println(courseResources);
|
||||||
System.out.println(courseResources); |
// courseResourcesService.saveCourseResource(courseResources);
|
||||||
courseResourcesService.saveCourseResource(courseResources); |
// return ResultUtils.success("添加成功!");
|
||||||
return ResultUtils.success("添加成功!"); |
// }
|
||||||
} |
//
|
||||||
|
// /**
|
||||||
/** |
// * 编辑
|
||||||
* 编辑 |
// * @param resources
|
||||||
* @param resources |
// * @return
|
||||||
* @return |
// */
|
||||||
*/ |
// @ApiOperation("编辑课程资源")
|
||||||
@ApiOperation("编辑课程资源") |
// @PutMapping("/edit")
|
||||||
@PutMapping("/edit") |
// public BaseResponse<String> editCourseResource(@RequestBody CourseResources resources){
|
||||||
public BaseResponse<String> editCourseResource(@RequestBody CourseResources resources){ |
// System.out.println(resources);
|
||||||
System.out.println(resources); |
// courseResourcesService.updateById(resources);
|
||||||
courseResourcesService.updateById(resources); |
// return ResultUtils.success("编辑成功");
|
||||||
return ResultUtils.success("编辑成功"); |
// }
|
||||||
} |
//
|
||||||
|
// /**
|
||||||
/** |
// * 根据id查询课程资源
|
||||||
* 根据id查询课程资源 |
// * @param resourceId
|
||||||
* @param resourceId |
// * @return
|
||||||
* @return |
// */
|
||||||
*/ |
// @ApiOperation("根据id查询课程资源")
|
||||||
@ApiOperation("根据id查询课程资源") |
// @PostMapping("/getone")
|
||||||
@PostMapping("/getone") |
// public BaseResponse<CourseResources> getOne(@RequestParam String resourceId){
|
||||||
public BaseResponse<CourseResources> getOne(@RequestParam String resourceId){ |
// System.out.println(resourceId);
|
||||||
System.out.println(resourceId); |
// return ResultUtils.success(courseResourcesService.getById(resourceId));
|
||||||
return ResultUtils.success(courseResourcesService.getById(resourceId)); |
// }
|
||||||
} |
//}
|
||||||
} |
|
||||||
|
@ -1,91 +1,86 @@ |
|||||||
package com.teaching.backend.controller.courses; |
//package com.teaching.backend.controller.courses;
|
||||||
|
//
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
//import com.teaching.backend.common.BaseResponse;
|
||||||
import com.teaching.backend.common.BaseResponse; |
//import com.teaching.backend.common.ErrorCode;
|
||||||
import com.teaching.backend.common.ErrorCode; |
//import com.teaching.backend.common.ResultUtils;
|
||||||
import com.teaching.backend.common.ResultUtils; |
//import com.teaching.backend.exception.BusinessException;
|
||||||
import com.teaching.backend.exception.BusinessException; |
//import com.teaching.backend.filter.ValidateParams;
|
||||||
import com.teaching.backend.filter.ValidateParams; |
//import com.teaching.backend.model.dto.courses.CoursesDTO;
|
||||||
import com.teaching.backend.mapper.courses.CoursesMapper; |
//import com.teaching.backend.model.entity.resource.CourseResources;
|
||||||
import com.teaching.backend.model.dto.courses.CoursesDTO; |
//import com.teaching.backend.model.entity.courses.Courses;
|
||||||
import com.teaching.backend.model.entity.CourseResources; |
//import com.teaching.backend.service.courses.ICoursesService;
|
||||||
import com.teaching.backend.model.entity.ResourceRelationship; |
//import io.swagger.annotations.ApiOperation;
|
||||||
import com.teaching.backend.model.entity.courses.Courses; |
//import org.springframework.beans.BeanUtils;
|
||||||
import com.teaching.backend.model.vo.courses.CoursesVO; |
//import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import com.teaching.backend.service.courses.ICoursesService; |
//import org.springframework.web.bind.annotation.*;
|
||||||
import com.teaching.backend.service.resource.ResourcesRelationshipService; |
//
|
||||||
import io.swagger.annotations.ApiOperation; |
//import java.util.HashMap;
|
||||||
import org.springframework.beans.BeanUtils; |
//import java.util.List;
|
||||||
import org.springframework.beans.factory.annotation.Autowired; |
//import java.util.Map;
|
||||||
import org.springframework.web.bind.annotation.*; |
//
|
||||||
|
///**
|
||||||
import java.util.HashMap; |
// * ClassName: CoursesController2
|
||||||
import java.util.List; |
// * Package: com.teaching.backend.controller.courses
|
||||||
import java.util.Map; |
// * Description:
|
||||||
|
// *
|
||||||
/** |
// * @Author 姜钧瀚
|
||||||
* ClassName: CoursesController2 |
// * @Create 2024/7/22 17:52
|
||||||
* Package: com.teaching.backend.controller.courses |
// * @Version 1.0
|
||||||
* Description: |
// */
|
||||||
* |
//@RestController
|
||||||
* @Author 姜钧瀚 |
//@RequestMapping("/api/coursesteacher2")
|
||||||
* @Create 2024/7/22 17:52 |
//public class CoursesController2 {
|
||||||
* @Version 1.0 |
// @Autowired
|
||||||
*/ |
// ICoursesService coursesService;
|
||||||
@RestController |
// @Autowired
|
||||||
@RequestMapping("/api/coursesteacher2") |
// ResourcesRelationshipService resourcesRelationshipService;
|
||||||
public class CoursesController2 { |
//
|
||||||
@Autowired |
// @ApiOperation("网站首页2")
|
||||||
ICoursesService coursesService; |
// @GetMapping("/index2")
|
||||||
@Autowired |
// public BaseResponse<Map<String,Object>> getData(@RequestParam("page") int page, @RequestParam("pageSize") int pageSize) {
|
||||||
ResourcesRelationshipService resourcesRelationshipService; |
// Map<String, Object> result = coursesService.getPagePageSize2(page, pageSize);
|
||||||
|
//
|
||||||
@ApiOperation("网站首页2") |
// // 将结果放入新的Map对象中返回
|
||||||
@GetMapping("/index2") |
// Map<String, Object> objectMap = new HashMap<>();
|
||||||
public BaseResponse<Map<String,Object>> getData(@RequestParam("page") int page, @RequestParam("pageSize") int pageSize) { |
// objectMap.put("content", result.get("courses"));
|
||||||
Map<String, Object> result = coursesService.getPagePageSize2(page, pageSize); |
// objectMap.put("totalcount", result.get("totalcount"));
|
||||||
|
// objectMap.put("totalPages", result.get("totalPages"));
|
||||||
// 将结果放入新的Map对象中返回
|
// objectMap.put("currentPage", result.get("currentPage"));
|
||||||
Map<String, Object> objectMap = new HashMap<>(); |
//
|
||||||
objectMap.put("content", result.get("courses")); |
// return ResultUtils.success(objectMap);
|
||||||
objectMap.put("totalcount", result.get("totalcount")); |
// }
|
||||||
objectMap.put("totalPages", result.get("totalPages")); |
//
|
||||||
objectMap.put("currentPage", result.get("currentPage")); |
//
|
||||||
|
// @ApiOperation("根据id查询课程")
|
||||||
return ResultUtils.success(objectMap); |
// @ValidateParams({"id"})
|
||||||
} |
// @GetMapping("/{id}")
|
||||||
|
// public BaseResponse<CoursesDTO> getByIdCourse(@PathVariable String id){
|
||||||
|
// if(id==null){
|
||||||
@ApiOperation("根据id查询课程") |
// throw new BusinessException(ErrorCode.PARAMS_ERROR,"课程id为空");
|
||||||
@ValidateParams({"id"}) |
// }
|
||||||
@GetMapping("/{id}") |
// Courses course = coursesService.getById(id);
|
||||||
public BaseResponse<CoursesDTO> getByIdCourse(@PathVariable String id){ |
// CoursesDTO coursesDTO = new CoursesDTO();
|
||||||
if(id==null){ |
// BeanUtils.copyProperties(course,coursesDTO);
|
||||||
throw new BusinessException(ErrorCode.PARAMS_ERROR,"课程id为空"); |
// return ResultUtils.success(coursesDTO);
|
||||||
} |
// }
|
||||||
Courses course = coursesService.getById(id); |
//
|
||||||
CoursesDTO coursesDTO = new CoursesDTO(); |
// @ApiOperation("点击详情课程根据id查询对应课程的资源")
|
||||||
BeanUtils.copyProperties(course,coursesDTO); |
// @GetMapping("/resource/{id}")
|
||||||
return ResultUtils.success(coursesDTO); |
// public BaseResponse<List<CourseResources>> getResource(@PathVariable String id) {
|
||||||
} |
// List<CourseResources> relatedResources = resourcesRelationshipService.getResource(id);
|
||||||
|
// return ResultUtils.success(relatedResources);
|
||||||
@ApiOperation("点击详情课程根据id查询对应课程的资源") |
// }
|
||||||
@GetMapping("/resource/{id}") |
//
|
||||||
public BaseResponse<List<CourseResources>> getResource(@PathVariable String id) { |
// @ApiOperation("点击详情课程根据id和type查询对应课程的资源")
|
||||||
List<CourseResources> relatedResources = resourcesRelationshipService.getResource(id); |
// @GetMapping("/resource/list")
|
||||||
return ResultUtils.success(relatedResources); |
// public BaseResponse<List<CourseResources>> getResource2(@RequestParam String id,@RequestParam Integer type) {
|
||||||
} |
// List<CourseResources> relatedResources = resourcesRelationshipService.getResource2(id,type);
|
||||||
|
// return ResultUtils.success(relatedResources);
|
||||||
@ApiOperation("点击详情课程根据id和type查询对应课程的资源") |
// }
|
||||||
@GetMapping("/resource/list") |
//
|
||||||
public BaseResponse<List<CourseResources>> getResource2(@RequestParam String id,@RequestParam Integer type) { |
// }
|
||||||
List<CourseResources> relatedResources = resourcesRelationshipService.getResource2(id,type); |
//
|
||||||
return ResultUtils.success(relatedResources); |
//
|
||||||
} |
//
|
||||||
|
//
|
||||||
} |
//
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,114 +1,114 @@ |
|||||||
package com.teaching.backend.controller.favour; |
//package com.teaching.backend.controller.favour;
|
||||||
|
//
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.teaching.backend.common.BaseResponse; |
//import com.teaching.backend.common.BaseResponse;
|
||||||
import com.teaching.backend.common.ErrorCode; |
//import com.teaching.backend.common.ErrorCode;
|
||||||
import com.teaching.backend.common.ResultUtils; |
//import com.teaching.backend.common.ResultUtils;
|
||||||
import com.teaching.backend.exception.BusinessException; |
//import com.teaching.backend.exception.BusinessException;
|
||||||
import com.teaching.backend.model.dto.favour.courseFavour.CourseFavourAddRequest; |
//import com.teaching.backend.model.dto.favour.courseFavour.CourseFavourAddRequest;
|
||||||
import com.teaching.backend.model.dto.favour.courseFavour.CourseFavourAllRequest; |
//import com.teaching.backend.model.dto.favour.courseFavour.CourseFavourAllRequest;
|
||||||
import com.teaching.backend.model.dto.favour.courseFavour.CourseFavourQueryRequest; |
//import com.teaching.backend.model.dto.favour.courseFavour.CourseFavourQueryRequest;
|
||||||
import com.teaching.backend.model.entity.courses.Courses; |
//import com.teaching.backend.model.entity.courses.Courses;
|
||||||
import com.teaching.backend.model.vo.favour.CourseFavourDetailVO; |
//import com.teaching.backend.model.vo.favour.CourseFavourDetailVO;
|
||||||
import com.teaching.backend.service.favour.SeCourseFavourService; |
//import com.teaching.backend.service.favour.SeCourseFavourService;
|
||||||
import lombok.extern.slf4j.Slf4j; |
//import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils; |
//import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.web.bind.annotation.PostMapping; |
//import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestBody; |
//import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping; |
//import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController; |
//import org.springframework.web.bind.annotation.RestController;
|
||||||
|
//
|
||||||
import javax.annotation.Resource; |
//import javax.annotation.Resource;
|
||||||
import java.util.List; |
//import java.util.List;
|
||||||
|
//
|
||||||
/** |
///**
|
||||||
* @Author:youhang |
// * @Author:youhang
|
||||||
* @Date:2024-05-30-20:22 |
// * @Date:2024-05-30-20:22
|
||||||
* @Description: |
// * @Description:
|
||||||
*/ |
// */
|
||||||
@RestController |
//@RestController
|
||||||
@RequestMapping("/api/course_favour") |
//@RequestMapping("/api/course_favour")
|
||||||
@Slf4j |
//@Slf4j
|
||||||
public class SeCourseFavourController { |
//public class SeCourseFavourController {
|
||||||
|
//
|
||||||
@Resource |
// @Resource
|
||||||
private SeCourseFavourService seCourseFavourService; |
// private SeCourseFavourService seCourseFavourService;
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
/** |
// /**
|
||||||
* 收藏/取消收藏 |
// * 收藏/取消收藏
|
||||||
* |
// *
|
||||||
* @param courseFavourAddRequest |
// * @param courseFavourAddRequest
|
||||||
* @return result 执行情况 |
// * @return result 执行情况
|
||||||
*/ |
// */
|
||||||
@PostMapping("/add") |
// @PostMapping("/add")
|
||||||
// 加上 HttpServletRequest request 在一个fitter里面进行鉴权操作
|
// // 加上 HttpServletRequest request 在一个fitter里面进行鉴权操作
|
||||||
public BaseResponse<Boolean> doFavour(@RequestBody CourseFavourAddRequest courseFavourAddRequest) { |
// public BaseResponse<Boolean> doFavour(@RequestBody CourseFavourAddRequest courseFavourAddRequest) {
|
||||||
System.out.println(courseFavourAddRequest); |
// System.out.println(courseFavourAddRequest);
|
||||||
//判断字段是否为空
|
// //判断字段是否为空
|
||||||
if (StringUtils.isAnyBlank(courseFavourAddRequest.getCourseId(), courseFavourAddRequest.getUserId())) { |
// if (StringUtils.isAnyBlank(courseFavourAddRequest.getCourseId(), courseFavourAddRequest.getUserId())) {
|
||||||
throw new BusinessException(ErrorCode.PARAMS_ERROR); |
// throw new BusinessException(ErrorCode.PARAMS_ERROR);
|
||||||
} |
// }
|
||||||
|
//
|
||||||
return seCourseFavourService.doCourseFavour(courseFavourAddRequest.getCourseId(), courseFavourAddRequest.getUserId()); |
// return seCourseFavourService.doCourseFavour(courseFavourAddRequest.getCourseId(), courseFavourAddRequest.getUserId());
|
||||||
|
//
|
||||||
} |
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
/** |
// /**
|
||||||
* 课程点赞总数 |
// * 课程点赞总数
|
||||||
* |
// *
|
||||||
* @param courseFavourAddRequest |
// * @param courseFavourAddRequest
|
||||||
* @return result 课程点赞总数 |
// * @return result 课程点赞总数
|
||||||
*/ |
// */
|
||||||
@PostMapping("/count") |
// @PostMapping("/count")
|
||||||
// HttpServletRequest request 在一个fitter里面进行鉴权操作
|
// // HttpServletRequest request 在一个fitter里面进行鉴权操作
|
||||||
public BaseResponse<Long> favourCount(@RequestBody CourseFavourAddRequest courseFavourAddRequest) { |
// public BaseResponse<Long> favourCount(@RequestBody CourseFavourAddRequest courseFavourAddRequest) {
|
||||||
if (StringUtils.isAnyBlank(courseFavourAddRequest.getCourseId())) { |
// if (StringUtils.isAnyBlank(courseFavourAddRequest.getCourseId())) {
|
||||||
throw new BusinessException(ErrorCode.PARAMS_ERROR, "请求参数不能为空"); |
// throw new BusinessException(ErrorCode.PARAMS_ERROR, "请求参数不能为空");
|
||||||
} |
// }
|
||||||
return seCourseFavourService.favourCount(courseFavourAddRequest.getCourseId()); |
// return seCourseFavourService.favourCount(courseFavourAddRequest.getCourseId());
|
||||||
} |
// }
|
||||||
|
//
|
||||||
/** |
// /**
|
||||||
* 课程下资源和知识点点赞总数 |
// * 课程下资源和知识点点赞总数
|
||||||
* |
// *
|
||||||
* @param courseFavourAllRequest |
// * @param courseFavourAllRequest
|
||||||
* @return result 课程下资源和知识点点赞总数 |
// * @return result 课程下资源和知识点点赞总数
|
||||||
*/ |
// */
|
||||||
@PostMapping("/countAll") |
// @PostMapping("/countAll")
|
||||||
// todo 后期加上 HttpServletRequest request 在一个fitter里面进行鉴权操作
|
// // todo 后期加上 HttpServletRequest request 在一个fitter里面进行鉴权操作
|
||||||
public BaseResponse<Long> courseCount(@RequestBody CourseFavourAllRequest courseFavourAllRequest) { |
// public BaseResponse<Long> courseCount(@RequestBody CourseFavourAllRequest courseFavourAllRequest) {
|
||||||
if (StringUtils.isAnyBlank(courseFavourAllRequest.getCourseId())) { |
// if (StringUtils.isAnyBlank(courseFavourAllRequest.getCourseId())) {
|
||||||
throw new BusinessException(ErrorCode.PARAMS_ERROR, "请求参数不能为空"); |
// throw new BusinessException(ErrorCode.PARAMS_ERROR, "请求参数不能为空");
|
||||||
} |
// }
|
||||||
// todo 从数据库中校验是否存在courseid
|
// // todo 从数据库中校验是否存在courseid
|
||||||
|
//
|
||||||
return seCourseFavourService.courseCount(courseFavourAllRequest.getCourseId()); |
// return seCourseFavourService.courseCount(courseFavourAllRequest.getCourseId());
|
||||||
} |
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
/** |
// /**
|
||||||
* 分页获取课程列表 |
// * 分页获取课程列表
|
||||||
* |
// *
|
||||||
* @return |
// * @return
|
||||||
*/ |
// */
|
||||||
@PostMapping("/list/page") |
// @PostMapping("/list/page")
|
||||||
public BaseResponse<Page<CourseFavourDetailVO>> listPostByPage(@RequestBody CourseFavourQueryRequest courseFavourQueryRequest) { |
// public BaseResponse<Page<CourseFavourDetailVO>> listPostByPage(@RequestBody CourseFavourQueryRequest courseFavourQueryRequest) {
|
||||||
System.out.println(courseFavourQueryRequest); |
// System.out.println(courseFavourQueryRequest);
|
||||||
long current = courseFavourQueryRequest.getCurrent(); |
// long current = courseFavourQueryRequest.getCurrent();
|
||||||
long size = courseFavourQueryRequest.getPageSize(); |
// long size = courseFavourQueryRequest.getPageSize();
|
||||||
String userId = courseFavourQueryRequest.getUserId(); |
// String userId = courseFavourQueryRequest.getUserId();
|
||||||
List<String> ids = seCourseFavourService.courseList(userId); |
// List<String> ids = seCourseFavourService.courseList(userId);
|
||||||
QueryWrapper<Courses> courseQueryWrapper = new QueryWrapper<>(); |
// QueryWrapper<Courses> courseQueryWrapper = new QueryWrapper<>();
|
||||||
courseQueryWrapper.in("id", ids); |
// courseQueryWrapper.in("id", ids);
|
||||||
Page<CourseFavourDetailVO> courseFavourDetailVOPage = seCourseFavourService.listCourseFavourByPage(new Page<>(current, size), courseQueryWrapper); |
// Page<CourseFavourDetailVO> courseFavourDetailVOPage = seCourseFavourService.listCourseFavourByPage(new Page<>(current, size), courseQueryWrapper);
|
||||||
|
//
|
||||||
return ResultUtils.success(courseFavourDetailVOPage); |
// return ResultUtils.success(courseFavourDetailVOPage);
|
||||||
} |
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
} |
//}
|
||||||
|
@ -1,47 +1,47 @@ |
|||||||
package com.teaching.backend.controller.favour; |
//package com.teaching.backend.controller.favour;
|
||||||
|
//
|
||||||
import com.teaching.backend.common.BaseResponse; |
//import com.teaching.backend.common.BaseResponse;
|
||||||
import com.teaching.backend.common.ErrorCode; |
//import com.teaching.backend.common.ErrorCode;
|
||||||
import com.teaching.backend.exception.BusinessException; |
//import com.teaching.backend.exception.BusinessException;
|
||||||
import com.teaching.backend.model.dto.favour.knowFavour.KnowFavourAddRequest; |
//import com.teaching.backend.model.dto.favour.knowFavour.KnowFavourAddRequest;
|
||||||
import com.teaching.backend.service.favour.SeKnowFavourService; |
//import com.teaching.backend.service.favour.SeKnowFavourService;
|
||||||
import lombok.extern.slf4j.Slf4j; |
//import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils; |
//import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.web.bind.annotation.PostMapping; |
//import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestBody; |
//import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping; |
//import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController; |
//import org.springframework.web.bind.annotation.RestController;
|
||||||
|
//
|
||||||
import javax.annotation.Resource; |
//import javax.annotation.Resource;
|
||||||
|
//
|
||||||
/** |
///**
|
||||||
* @Author:youhang |
// * @Author:youhang
|
||||||
* @Date:2024-05-30-20:22 |
// * @Date:2024-05-30-20:22
|
||||||
* @Description: |
// * @Description:
|
||||||
*/ |
// */
|
||||||
@RestController |
//@RestController
|
||||||
@RequestMapping("/api/know_favour") |
//@RequestMapping("/api/know_favour")
|
||||||
@Slf4j |
//@Slf4j
|
||||||
public class SeKnowFavourController { |
//public class SeKnowFavourController {
|
||||||
|
//
|
||||||
@Resource |
// @Resource
|
||||||
private SeKnowFavourService seKnowFavourService; |
// private SeKnowFavourService seKnowFavourService;
|
||||||
|
//
|
||||||
|
//
|
||||||
/** |
// /**
|
||||||
* 知识点收藏 |
// * 知识点收藏
|
||||||
* |
// *
|
||||||
* @param knowFavourAddRequest |
// * @param knowFavourAddRequest
|
||||||
* @return result 执行情况 |
// * @return result 执行情况
|
||||||
*/ |
// */
|
||||||
@PostMapping("/add") |
// @PostMapping("/add")
|
||||||
// 加上 HttpServletRequest request 在一个fitter里面进行鉴权操作
|
// // 加上 HttpServletRequest request 在一个fitter里面进行鉴权操作
|
||||||
public BaseResponse<Boolean> doFavour(@RequestBody KnowFavourAddRequest knowFavourAddRequest) { |
// public BaseResponse<Boolean> doFavour(@RequestBody KnowFavourAddRequest knowFavourAddRequest) {
|
||||||
if (StringUtils.isAnyBlank(knowFavourAddRequest.getCourseId(), knowFavourAddRequest.getKnowId(), knowFavourAddRequest.getUserId())) { |
// if (StringUtils.isAnyBlank(knowFavourAddRequest.getCourseId(), knowFavourAddRequest.getKnowId(), knowFavourAddRequest.getUserId())) {
|
||||||
throw new BusinessException(ErrorCode.PARAMS_ERROR); |
// throw new BusinessException(ErrorCode.PARAMS_ERROR);
|
||||||
} |
// }
|
||||||
return seKnowFavourService.doKnowFavour( knowFavourAddRequest.getKnowId(), knowFavourAddRequest.getUserId()); |
// return seKnowFavourService.doKnowFavour( knowFavourAddRequest.getKnowId(), knowFavourAddRequest.getUserId());
|
||||||
|
//
|
||||||
} |
// }
|
||||||
|
//
|
||||||
} |
//}
|
||||||
|
@ -1,69 +1,69 @@ |
|||||||
package com.teaching.backend.controller.favour; |
//package com.teaching.backend.controller.favour;
|
||||||
|
//
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.teaching.backend.common.BaseResponse; |
//import com.teaching.backend.common.BaseResponse;
|
||||||
import com.teaching.backend.common.ErrorCode; |
//import com.teaching.backend.common.ErrorCode;
|
||||||
import com.teaching.backend.common.ResultUtils; |
//import com.teaching.backend.common.ResultUtils;
|
||||||
import com.teaching.backend.exception.BusinessException; |
//import com.teaching.backend.exception.BusinessException;
|
||||||
import com.teaching.backend.model.dto.favour.resourceFavour.ResourceFavourAddRequest; |
//import com.teaching.backend.model.dto.favour.resourceFavour.ResourceFavourAddRequest;
|
||||||
import com.teaching.backend.model.dto.favour.resourceFavour.ResourceFavourQueryRequest; |
//import com.teaching.backend.model.dto.favour.resourceFavour.ResourceFavourQueryRequest;
|
||||||
import com.teaching.backend.model.entity.CourseResources; |
//import com.teaching.backend.model.entity.resource.CourseResources;
|
||||||
import com.teaching.backend.service.favour.SeResourceFavourService; |
//import com.teaching.backend.service.favour.SeResourceFavourService;
|
||||||
import lombok.extern.slf4j.Slf4j; |
//import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils; |
//import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.web.bind.annotation.PostMapping; |
//import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestBody; |
//import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping; |
//import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController; |
//import org.springframework.web.bind.annotation.RestController;
|
||||||
|
//
|
||||||
import javax.annotation.Resource; |
//import javax.annotation.Resource;
|
||||||
|
//
|
||||||
/** |
///**
|
||||||
* @Author:youhang |
// * @Author:youhang
|
||||||
* @Date:2024-05-30-20:22 |
// * @Date:2024-05-30-20:22
|
||||||
* @Description: |
// * @Description:
|
||||||
*/ |
// */
|
||||||
@RestController |
//@RestController
|
||||||
@RequestMapping("/api/resource_favour") |
//@RequestMapping("/api/resource_favour")
|
||||||
@Slf4j |
//@Slf4j
|
||||||
public class SeResourceFavourController { |
//public class SeResourceFavourController {
|
||||||
|
//
|
||||||
@Resource |
// @Resource
|
||||||
private SeResourceFavourService seResourceFavourService; |
// private SeResourceFavourService seResourceFavourService;
|
||||||
|
//
|
||||||
|
//
|
||||||
/** |
// /**
|
||||||
* 资源收藏 |
// * 资源收藏
|
||||||
* |
// *
|
||||||
* @param resourceFavourAddRequest |
// * @param resourceFavourAddRequest
|
||||||
* @return result 执行情况 |
// * @return result 执行情况
|
||||||
*/ |
// */
|
||||||
@PostMapping("/add") |
// @PostMapping("/add")
|
||||||
// 加上 HttpServletRequest request 在一个fitter里面进行鉴权操作
|
// // 加上 HttpServletRequest request 在一个fitter里面进行鉴权操作
|
||||||
public BaseResponse<Boolean> doFavour(@RequestBody ResourceFavourAddRequest resourceFavourAddRequest) { |
// public BaseResponse<Boolean> doFavour(@RequestBody ResourceFavourAddRequest resourceFavourAddRequest) {
|
||||||
if (StringUtils.isAnyBlank(resourceFavourAddRequest.getUserId())) { |
// if (StringUtils.isAnyBlank(resourceFavourAddRequest.getUserId())) {
|
||||||
throw new BusinessException(ErrorCode.PARAMS_ERROR); |
// throw new BusinessException(ErrorCode.PARAMS_ERROR);
|
||||||
} |
// }
|
||||||
|
//
|
||||||
return seResourceFavourService.doResourceFavour(resourceFavourAddRequest.getResourceId(), resourceFavourAddRequest.getUserId()); |
// return seResourceFavourService.doResourceFavour(resourceFavourAddRequest.getResourceId(), resourceFavourAddRequest.getUserId());
|
||||||
} |
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
/** |
// /**
|
||||||
* 分页获取资源列表 |
// * 分页获取资源列表
|
||||||
* |
// *
|
||||||
* @return |
// * @return
|
||||||
*/ |
// */
|
||||||
@PostMapping("/list/page") |
// @PostMapping("/list/page")
|
||||||
public BaseResponse<Page<CourseResources>> listPostByPage(@RequestBody ResourceFavourQueryRequest resourceFavourQueryRequest) { |
// public BaseResponse<Page<CourseResources>> listPostByPage(@RequestBody ResourceFavourQueryRequest resourceFavourQueryRequest) {
|
||||||
Integer current = resourceFavourQueryRequest.getCurrent(); |
// Integer current = resourceFavourQueryRequest.getCurrent();
|
||||||
Integer size = resourceFavourQueryRequest.getPageSize(); |
// Integer size = resourceFavourQueryRequest.getPageSize();
|
||||||
String userId = resourceFavourQueryRequest.getUserId(); |
// String userId = resourceFavourQueryRequest.getUserId();
|
||||||
Integer type = resourceFavourQueryRequest.getType(); |
// Integer type = resourceFavourQueryRequest.getType();
|
||||||
return ResultUtils.success(seResourceFavourService.listCourseFavourByPage(userId,type,current,size)); |
// return ResultUtils.success(seResourceFavourService.listCourseFavourByPage(userId,type,current,size));
|
||||||
} |
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
} |
//}
|
||||||
|
@ -1,89 +1,89 @@ |
|||||||
package com.teaching.backend.controller.records; |
//package com.teaching.backend.controller.records;
|
||||||
|
//
|
||||||
|
//
|
||||||
import com.baomidou.mybatisplus.extension.conditions.query.QueryChainWrapper; |
//import com.baomidou.mybatisplus.extension.conditions.query.QueryChainWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.teaching.backend.common.BaseResponse; |
//import com.teaching.backend.common.BaseResponse;
|
||||||
import com.teaching.backend.common.ResultUtils; |
//import com.teaching.backend.common.ResultUtils;
|
||||||
|
//
|
||||||
import com.teaching.backend.filter.ValidateParams; |
//import com.teaching.backend.filter.ValidateParams;
|
||||||
import com.teaching.backend.model.entity.records.LearningRecords; |
//import com.teaching.backend.model.entity.records.LearningRecords;
|
||||||
import com.teaching.backend.model.vo.records.LearningRecordsVo; |
//import com.teaching.backend.model.vo.records.LearningRecordsVo;
|
||||||
import com.teaching.backend.service.impl.records.LearningRecordsServiceImpl; |
//import com.teaching.backend.service.impl.records.LearningRecordsServiceImpl;
|
||||||
import io.swagger.annotations.ApiOperation; |
//import io.swagger.annotations.ApiOperation;
|
||||||
import org.springframework.beans.factory.annotation.Autowired; |
//import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.ui.Model; |
//import org.springframework.ui.Model;
|
||||||
import org.springframework.web.bind.annotation.*; |
//import org.springframework.web.bind.annotation.*;
|
||||||
|
//
|
||||||
import java.util.ArrayList; |
//import java.util.ArrayList;
|
||||||
import java.util.List; |
//import java.util.List;
|
||||||
|
//
|
||||||
@RestController |
//@RestController
|
||||||
@RequestMapping("/api/learningrecords") |
//@RequestMapping("/api/learningrecords")
|
||||||
public class LearningRecordsController { |
//public class LearningRecordsController {
|
||||||
|
//
|
||||||
@Autowired |
// @Autowired
|
||||||
private LearningRecordsServiceImpl learningRecordsService; |
// private LearningRecordsServiceImpl learningRecordsService;
|
||||||
|
//
|
||||||
|
//
|
||||||
/** |
// /**
|
||||||
* 获取当前登录用户的学习记录 |
// * 获取当前登录用户的学习记录
|
||||||
* @param pagenum |
// * @param pagenum
|
||||||
* @param pagesize |
// * @param pagesize
|
||||||
* @return |
// * @return
|
||||||
*/ |
// */
|
||||||
@ApiOperation("根据用户id查询学习记录") |
// @ApiOperation("根据用户id查询学习记录")
|
||||||
@ValidateParams({"userId"}) |
// @ValidateParams({"userId"})
|
||||||
@GetMapping("/getall") |
// @GetMapping("/getall")
|
||||||
public BaseResponse<Page> getAll(@RequestParam(value = "pagenum", defaultValue = "1") int pagenum, |
// public BaseResponse<Page> getAll(@RequestParam(value = "pagenum", defaultValue = "1") int pagenum,
|
||||||
@RequestParam(value = "pagesize", defaultValue = "10") int pagesize, |
// @RequestParam(value = "pagesize", defaultValue = "10") int pagesize,
|
||||||
@RequestParam String userId){ |
// @RequestParam String userId){
|
||||||
//根据用户查询
|
// //根据用户查询
|
||||||
Page<LearningRecords> page = learningRecordsService.query() |
// Page<LearningRecords> page = learningRecordsService.query()
|
||||||
.orderByDesc("time") |
// .orderByDesc("time")
|
||||||
.eq("status", "1") |
// .eq("status", "1")
|
||||||
.eq("user_id", userId).page(new Page<>(pagenum, pagesize)); |
// .eq("user_id", userId).page(new Page<>(pagenum, pagesize));
|
||||||
//获取当前页数据
|
// //获取当前页数据
|
||||||
List<LearningRecords> list = page.getRecords(); |
// List<LearningRecords> list = page.getRecords();
|
||||||
List<LearningRecordsVo> cs= learningRecordsService.getAll(list); |
// List<LearningRecordsVo> cs= learningRecordsService.getAll(list);
|
||||||
|
//
|
||||||
long total = page.getTotal(); // 总记录数
|
// long total = page.getTotal(); // 总记录数
|
||||||
Page<LearningRecordsVo> pageInfo = new Page<>(pagenum,pagesize,total); |
// Page<LearningRecordsVo> pageInfo = new Page<>(pagenum,pagesize,total);
|
||||||
pageInfo.setRecords(cs); |
// pageInfo.setRecords(cs);
|
||||||
pageInfo.setPages(page.getPages());//设置总页数
|
// pageInfo.setPages(page.getPages());//设置总页数
|
||||||
return ResultUtils.success(pageInfo); |
// return ResultUtils.success(pageInfo);
|
||||||
} |
// }
|
||||||
|
//
|
||||||
@ApiOperation("查询所有") |
// @ApiOperation("查询所有")
|
||||||
@GetMapping("/all") |
// @GetMapping("/all")
|
||||||
public BaseResponse<List<LearningRecords>> All(){ |
// public BaseResponse<List<LearningRecords>> All(){
|
||||||
// System.out.println("学习记录:"+learningRecordsService.list());
|
//// System.out.println("学习记录:"+learningRecordsService.list());
|
||||||
|
//
|
||||||
return ResultUtils.success(learningRecordsService.list()); |
// return ResultUtils.success(learningRecordsService.list());
|
||||||
} |
// }
|
||||||
|
//
|
||||||
//资源类型: 1,课程学习记录,2,知识点学习记录,3课程资源学习记录
|
// //资源类型: 1,课程学习记录,2,知识点学习记录,3课程资源学习记录
|
||||||
/** |
// /**
|
||||||
* 添加课程记录 |
// * 添加课程记录
|
||||||
* @param learningRecords |
// * @param learningRecords
|
||||||
* @return |
// * @return
|
||||||
*/ |
// */
|
||||||
@ApiOperation("添加学习记录") |
// @ApiOperation("添加学习记录")
|
||||||
@ValidateParams({"userId","type","coursesId"}) |
// @ValidateParams({"userId","type","coursesId"})
|
||||||
@PostMapping("/saverecords") |
// @PostMapping("/saverecords")
|
||||||
public BaseResponse<String> saveRecords(@RequestBody LearningRecords learningRecords){ |
// public BaseResponse<String> saveRecords(@RequestBody LearningRecords learningRecords){
|
||||||
// System.out.println(learningRecords);
|
//// System.out.println(learningRecords);
|
||||||
return ResultUtils.success(learningRecordsService.saveRecords(learningRecords)); |
// return ResultUtils.success(learningRecordsService.saveRecords(learningRecords));
|
||||||
} |
// }
|
||||||
|
//
|
||||||
/** |
// /**
|
||||||
* 根据id删除 |
// * 根据id删除
|
||||||
* @param ids |
// * @param ids
|
||||||
* @return |
// * @return
|
||||||
*/ |
// */
|
||||||
@DeleteMapping("/delete") |
// @DeleteMapping("/delete")
|
||||||
//@ValidateParams({"ids"})
|
// //@ValidateParams({"ids"})
|
||||||
public BaseResponse<String> deleteRecords(@RequestParam List<Long> ids){ |
// public BaseResponse<String> deleteRecords(@RequestParam List<Long> ids){
|
||||||
return ResultUtils.success(learningRecordsService.delete(ids)); |
// return ResultUtils.success(learningRecordsService.delete(ids));
|
||||||
} |
// }
|
||||||
} |
//}
|
||||||
|
@ -1,65 +1,65 @@ |
|||||||
package com.teaching.backend.controller.thumb; |
//package com.teaching.backend.controller.thumb;
|
||||||
|
//
|
||||||
import com.teaching.backend.common.BaseResponse; |
//import com.teaching.backend.common.BaseResponse;
|
||||||
import com.teaching.backend.common.ErrorCode; |
//import com.teaching.backend.common.ErrorCode;
|
||||||
import com.teaching.backend.exception.BusinessException; |
//import com.teaching.backend.exception.BusinessException;
|
||||||
import com.teaching.backend.model.dto.thumb.coursethumb.CourseThumbAddRequest; |
//import com.teaching.backend.model.dto.thumb.coursethumb.CourseThumbAddRequest;
|
||||||
import com.teaching.backend.model.dto.thumb.coursethumb.CourseThumbAllRequest; |
//import com.teaching.backend.model.dto.thumb.coursethumb.CourseThumbAllRequest;
|
||||||
import com.teaching.backend.service.thumb.SeCourseThumbService; |
//import com.teaching.backend.service.thumb.SeCourseThumbService;
|
||||||
import lombok.extern.slf4j.Slf4j; |
//import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils; |
//import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.web.bind.annotation.PostMapping; |
//import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestBody; |
//import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping; |
//import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController; |
//import org.springframework.web.bind.annotation.RestController;
|
||||||
|
//
|
||||||
import javax.annotation.Resource; |
//import javax.annotation.Resource;
|
||||||
|
//
|
||||||
/** |
///**
|
||||||
* @Author:youhang |
// * @Author:youhang
|
||||||
* @Date:2024-05-30-20:22 |
// * @Date:2024-05-30-20:22
|
||||||
* @Description: |
// * @Description:
|
||||||
*/ |
// */
|
||||||
@RestController |
//@RestController
|
||||||
@RequestMapping("/api/course_thumb") |
//@RequestMapping("/api/course_thumb")
|
||||||
@Slf4j |
//@Slf4j
|
||||||
public class SeCourseThumbController { |
//public class SeCourseThumbController {
|
||||||
|
//
|
||||||
@Resource |
// @Resource
|
||||||
private SeCourseThumbService seCourseThumbService; |
// private SeCourseThumbService seCourseThumbService;
|
||||||
|
//
|
||||||
|
//
|
||||||
/** |
// /**
|
||||||
* 点赞/取消点赞 |
// * 点赞/取消点赞
|
||||||
* |
// *
|
||||||
* @param courseThumbAddRequest |
// * @param courseThumbAddRequest
|
||||||
* @return result 执行情况 |
// * @return result 执行情况
|
||||||
*/ |
// */
|
||||||
@PostMapping("/") |
// @PostMapping("/")
|
||||||
// HttpServletRequest request 在一个fitter里面进行鉴权操作
|
// // HttpServletRequest request 在一个fitter里面进行鉴权操作
|
||||||
public BaseResponse<Boolean> doThumb(@RequestBody CourseThumbAddRequest courseThumbAddRequest) { |
// public BaseResponse<Boolean> doThumb(@RequestBody CourseThumbAddRequest courseThumbAddRequest) {
|
||||||
|
//
|
||||||
return seCourseThumbService.doCourseThumb(courseThumbAddRequest.getCourseId(), courseThumbAddRequest.getUserId()); |
// return seCourseThumbService.doCourseThumb(courseThumbAddRequest.getCourseId(), courseThumbAddRequest.getUserId());
|
||||||
|
//
|
||||||
} |
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
/** |
// /**
|
||||||
* 课程点赞总数 |
// * 课程点赞总数
|
||||||
* |
// *
|
||||||
* @param courseThumbAddRequest |
// * @param courseThumbAddRequest
|
||||||
* @return result 课程点赞总数 |
// * @return result 课程点赞总数
|
||||||
*/ |
// */
|
||||||
@PostMapping("/count") |
// @PostMapping("/count")
|
||||||
// HttpServletRequest request 在一个fitter里面进行鉴权操作
|
// // HttpServletRequest request 在一个fitter里面进行鉴权操作
|
||||||
public BaseResponse<Long> thumbCount(@RequestBody CourseThumbAddRequest courseThumbAddRequest) { |
// public BaseResponse<Long> thumbCount(@RequestBody CourseThumbAddRequest courseThumbAddRequest) {
|
||||||
if (StringUtils.isAnyBlank(courseThumbAddRequest.getCourseId())) { |
// if (StringUtils.isAnyBlank(courseThumbAddRequest.getCourseId())) {
|
||||||
throw new BusinessException(ErrorCode.PARAMS_ERROR, "请求参数不能为空"); |
// throw new BusinessException(ErrorCode.PARAMS_ERROR, "请求参数不能为空");
|
||||||
} |
// }
|
||||||
|
//
|
||||||
return seCourseThumbService.thumbCount(courseThumbAddRequest.getCourseId()); |
// return seCourseThumbService.thumbCount(courseThumbAddRequest.getCourseId());
|
||||||
|
//
|
||||||
} |
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
} |
//}
|
||||||
|
@ -1,44 +1,44 @@ |
|||||||
package com.teaching.backend.controller.thumb; |
//package com.teaching.backend.controller.thumb;
|
||||||
|
//
|
||||||
import com.teaching.backend.common.BaseResponse; |
//import com.teaching.backend.common.BaseResponse;
|
||||||
import com.teaching.backend.common.ErrorCode; |
//import com.teaching.backend.common.ErrorCode;
|
||||||
import com.teaching.backend.exception.BusinessException; |
//import com.teaching.backend.exception.BusinessException;
|
||||||
import com.teaching.backend.model.dto.thumb.knowthumb.KnowThumbAddRequest; |
//import com.teaching.backend.model.dto.thumb.knowthumb.KnowThumbAddRequest;
|
||||||
import com.teaching.backend.service.thumb.SeKnowThumbService; |
//import com.teaching.backend.service.thumb.SeKnowThumbService;
|
||||||
import lombok.extern.slf4j.Slf4j; |
//import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils; |
//import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.web.bind.annotation.PostMapping; |
//import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestBody; |
//import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping; |
//import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController; |
//import org.springframework.web.bind.annotation.RestController;
|
||||||
|
//
|
||||||
import javax.annotation.Resource; |
//import javax.annotation.Resource;
|
||||||
|
//
|
||||||
/** |
///**
|
||||||
* @Author:youhang |
// * @Author:youhang
|
||||||
* @Date:2024-05-30-20:22 |
// * @Date:2024-05-30-20:22
|
||||||
* @Description: |
// * @Description:
|
||||||
*/ |
// */
|
||||||
@RestController |
//@RestController
|
||||||
@RequestMapping("/api/know_thumb") |
//@RequestMapping("/api/know_thumb")
|
||||||
@Slf4j |
//@Slf4j
|
||||||
public class SeKnowThumbController { |
//public class SeKnowThumbController {
|
||||||
|
//
|
||||||
@Resource |
// @Resource
|
||||||
private SeKnowThumbService seKnowThumbService; |
// private SeKnowThumbService seKnowThumbService;
|
||||||
|
//
|
||||||
|
//
|
||||||
/** |
// /**
|
||||||
* 点赞 |
// * 点赞
|
||||||
* |
// *
|
||||||
* @param knowThumbAddRequest |
// * @param knowThumbAddRequest
|
||||||
* @return result 执行情况 |
// * @return result 执行情况
|
||||||
*/ |
// */
|
||||||
@PostMapping("/add") |
// @PostMapping("/add")
|
||||||
// 加上 HttpServletRequest request 在一个fitter里面进行鉴权操作
|
// // 加上 HttpServletRequest request 在一个fitter里面进行鉴权操作
|
||||||
public BaseResponse<Boolean> doThumb(@RequestBody KnowThumbAddRequest knowThumbAddRequest) { |
// public BaseResponse<Boolean> doThumb(@RequestBody KnowThumbAddRequest knowThumbAddRequest) {
|
||||||
return seKnowThumbService.doKnowThumb(knowThumbAddRequest.getKnowId(), knowThumbAddRequest.getUserId()); |
// return seKnowThumbService.doKnowThumb(knowThumbAddRequest.getKnowId(), knowThumbAddRequest.getUserId());
|
||||||
|
//
|
||||||
} |
// }
|
||||||
|
//
|
||||||
} |
//}
|
||||||
|
@ -1,44 +1,44 @@ |
|||||||
package com.teaching.backend.controller.thumb; |
//package com.teaching.backend.controller.thumb;
|
||||||
|
//
|
||||||
import com.teaching.backend.common.BaseResponse; |
//import com.teaching.backend.common.BaseResponse;
|
||||||
import com.teaching.backend.common.ErrorCode; |
//import com.teaching.backend.common.ErrorCode;
|
||||||
import com.teaching.backend.exception.BusinessException; |
//import com.teaching.backend.exception.BusinessException;
|
||||||
import com.teaching.backend.model.dto.thumb.resourcethumb.ResourceThumbAddRequest; |
//import com.teaching.backend.model.dto.thumb.resourcethumb.ResourceThumbAddRequest;
|
||||||
import com.teaching.backend.service.thumb.SeResourceThumbService; |
//import com.teaching.backend.service.thumb.SeResourceThumbService;
|
||||||
import lombok.extern.slf4j.Slf4j; |
//import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils; |
//import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.web.bind.annotation.PostMapping; |
//import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestBody; |
//import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping; |
//import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController; |
//import org.springframework.web.bind.annotation.RestController;
|
||||||
|
//
|
||||||
import javax.annotation.Resource; |
//import javax.annotation.Resource;
|
||||||
|
//
|
||||||
/** |
///**
|
||||||
* @Author:youhang |
// * @Author:youhang
|
||||||
* @Date:2024-05-30-20:22 |
// * @Date:2024-05-30-20:22
|
||||||
* @Description: |
// * @Description:
|
||||||
*/ |
// */
|
||||||
@RestController |
//@RestController
|
||||||
@RequestMapping("/api/resource_thumb") |
//@RequestMapping("/api/resource_thumb")
|
||||||
@Slf4j |
//@Slf4j
|
||||||
public class SeResourceThumbController { |
//public class SeResourceThumbController {
|
||||||
|
//
|
||||||
@Resource |
// @Resource
|
||||||
private SeResourceThumbService seResourceThumbService; |
// private SeResourceThumbService seResourceThumbService;
|
||||||
|
//
|
||||||
|
//
|
||||||
/** |
// /**
|
||||||
* 点赞 |
// * 点赞
|
||||||
* |
// *
|
||||||
* @param resourceThumbAddRequest |
// * @param resourceThumbAddRequest
|
||||||
* @return result 执行情况 |
// * @return result 执行情况
|
||||||
*/ |
// */
|
||||||
@PostMapping("/add") |
// @PostMapping("/add")
|
||||||
// 加上 HttpServletRequest request 在一个fitter里面进行鉴权操作
|
// // 加上 HttpServletRequest request 在一个fitter里面进行鉴权操作
|
||||||
public BaseResponse<Boolean> doThumb(@RequestBody ResourceThumbAddRequest resourceThumbAddRequest) { |
// public BaseResponse<Boolean> doThumb(@RequestBody ResourceThumbAddRequest resourceThumbAddRequest) {
|
||||||
return seResourceThumbService.doResourceThumb( resourceThumbAddRequest.getResourceId(), resourceThumbAddRequest.getUserId()); |
// return seResourceThumbService.doResourceThumb( resourceThumbAddRequest.getResourceId(), resourceThumbAddRequest.getUserId());
|
||||||
|
//
|
||||||
} |
// }
|
||||||
|
//
|
||||||
} |
//}
|
||||||
|
@ -0,0 +1,34 @@ |
|||||||
|
package com.teaching.backend.mapper.KnowGraph; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author:youhang |
||||||
|
* @Date:2024-06-09-8:59 |
||||||
|
* @Description: |
||||||
|
*/ |
||||||
|
|
||||||
|
|
||||||
|
import com.teaching.backend.model.entity.KnowGraph.Know; |
||||||
|
|
||||||
|
import com.teaching.backend.model.entity.KnowGraph.Resources; |
||||||
|
import org.neo4j.driver.Result; |
||||||
|
import org.springframework.data.neo4j.repository.Neo4jRepository; |
||||||
|
import org.springframework.data.neo4j.repository.query.Query; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
import java.util.Set; |
||||||
|
|
||||||
|
public interface ResourcesRepository extends Neo4jRepository<Resources, Long> { |
||||||
|
|
||||||
|
|
||||||
|
@Query("MATCH (p:Know), (c:Resources) WHERE ID(p) = $id AND ID(c) in $ResourcesIds CREATE (p)-[r:resources]->(c)") |
||||||
|
void addResourceRelatedKnow(Long id, List<Long> ResourcesIds); |
||||||
|
|
||||||
|
|
||||||
|
@Query("MATCH(n:Know)-[r:resources]->(nn:Resources) where ID(nn) = $id RETURN nn") |
||||||
|
List<Resources> queryResourceAllId(Long id); |
||||||
|
|
||||||
|
@Query("MATCH p = (a:Know)-[rels*]-(b:Resources) WHERE ID(a) = $KnowId and ANY(rel IN rels WHERE TYPE(rel) = 'resources') RETURN b") |
||||||
|
Set<Resources> queryCourseKnowToResources(Long KnowId); |
||||||
|
|
||||||
|
|
||||||
|
} |
@ -1,21 +0,0 @@ |
|||||||
package com.teaching.backend.mapper.resource; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|
||||||
import com.teaching.backend.model.entity.CourseResources; |
|
||||||
import com.teaching.backend.model.entity.ResourceRelationship; |
|
||||||
import org.apache.ibatis.annotations.Mapper; |
|
||||||
import org.apache.tomcat.websocket.BackgroundProcess; |
|
||||||
|
|
||||||
/** |
|
||||||
* ClassName: ResourcesRelationshipMapper |
|
||||||
* Package: com.teaching.backend.mapper |
|
||||||
* Description: |
|
||||||
* |
|
||||||
* @Author 姜钧瀚 |
|
||||||
* @Create 2024/6/12 21:07 |
|
||||||
* @Version 1.0 |
|
||||||
*/ |
|
||||||
@Mapper |
|
||||||
public interface ResourcesRelationshipMapper extends BaseMapper<ResourceRelationship> { |
|
||||||
} |
|
@ -0,0 +1,31 @@ |
|||||||
|
package com.teaching.backend.model.dto.KnowGraph; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
import org.springframework.data.neo4j.core.schema.Property; |
||||||
|
|
||||||
|
import java.io.Serializable; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
@Data |
||||||
|
public class KnowChapterCreateRequest implements Serializable { |
||||||
|
|
||||||
|
/** |
||||||
|
* 知识点名称 |
||||||
|
*/ |
||||||
|
private String chapterId; |
||||||
|
|
||||||
|
/** |
||||||
|
* 知识点名称 |
||||||
|
*/ |
||||||
|
private String name; |
||||||
|
|
||||||
|
/** |
||||||
|
* 信息 |
||||||
|
*/ |
||||||
|
|
||||||
|
private String info; |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
@ -0,0 +1,22 @@ |
|||||||
|
package com.teaching.backend.model.dto.KnowGraph; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
import java.io.Serializable; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
@Data |
||||||
|
public class RelationshipResourceRequest implements Serializable { |
||||||
|
|
||||||
|
/** |
||||||
|
* knowid |
||||||
|
*/ |
||||||
|
private Long id; |
||||||
|
|
||||||
|
/** |
||||||
|
* 资源id |
||||||
|
*/ |
||||||
|
private List<Long> resourceIds; |
||||||
|
|
||||||
|
} |
||||||
|
|
@ -0,0 +1,22 @@ |
|||||||
|
package com.teaching.backend.model.dto.KnowGraph; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author:youhang |
||||||
|
* @Date:2024-07-25-8:39 |
||||||
|
* @Description: |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class ResourceUpdateRequest { |
||||||
|
|
||||||
|
private Long id; |
||||||
|
|
||||||
|
private String resourceId; |
||||||
|
|
||||||
|
|
||||||
|
private Integer type; |
||||||
|
|
||||||
|
|
||||||
|
private String path; |
||||||
|
} |
@ -0,0 +1,21 @@ |
|||||||
|
package com.teaching.backend.model.dto.KnowGraph; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
import org.springframework.data.neo4j.core.schema.Property; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author:youhang |
||||||
|
* @Date:2024-07-25-8:39 |
||||||
|
* @Description: |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class ResourcesAddRequest { |
||||||
|
|
||||||
|
private String resourcesId; |
||||||
|
|
||||||
|
private String name; |
||||||
|
|
||||||
|
private Integer type; |
||||||
|
|
||||||
|
private String path; |
||||||
|
} |
@ -0,0 +1,15 @@ |
|||||||
|
package com.teaching.backend.model.dto.KnowGraph; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
import org.springframework.web.multipart.MultipartFile; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author:youhang |
||||||
|
* @Date:2024-07-25-8:39 |
||||||
|
* @Description: |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
public class ResourcesRequest { |
||||||
|
|
||||||
|
private MultipartFile file; |
||||||
|
} |
@ -0,0 +1,44 @@ |
|||||||
|
package com.teaching.backend.model.entity.KnowGraph; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
import org.springframework.data.neo4j.core.schema.GeneratedValue; |
||||||
|
import org.springframework.data.neo4j.core.schema.Id; |
||||||
|
import org.springframework.data.neo4j.core.schema.Node; |
||||||
|
import org.springframework.data.neo4j.core.schema.Property; |
||||||
|
|
||||||
|
import java.io.Serializable; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
@Node |
||||||
|
@Data |
||||||
|
public class KnowChapter implements Serializable { |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* id |
||||||
|
*/ |
||||||
|
@Id |
||||||
|
@GeneratedValue |
||||||
|
private Long id; |
||||||
|
|
||||||
|
/** |
||||||
|
* 章节id |
||||||
|
*/ |
||||||
|
private String chapterId; |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* 知识点名称 |
||||||
|
*/ |
||||||
|
@Property |
||||||
|
private String name; |
||||||
|
|
||||||
|
/** |
||||||
|
* 信息 |
||||||
|
*/ |
||||||
|
@Property |
||||||
|
private String info; |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
@ -0,0 +1,32 @@ |
|||||||
|
package com.teaching.backend.model.entity.KnowGraph; |
||||||
|
|
||||||
|
import lombok.Data; |
||||||
|
import org.springframework.data.neo4j.core.schema.GeneratedValue; |
||||||
|
import org.springframework.data.neo4j.core.schema.Id; |
||||||
|
import org.springframework.data.neo4j.core.schema.Node; |
||||||
|
import org.springframework.data.neo4j.core.schema.Property; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author:youhang |
||||||
|
* @Date:2024-07-25-8:36 |
||||||
|
* @Description: |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
@Node |
||||||
|
public class Resources { |
||||||
|
@Id |
||||||
|
@GeneratedValue |
||||||
|
private Long id; |
||||||
|
|
||||||
|
@Property |
||||||
|
private String resourcesId; |
||||||
|
|
||||||
|
@Property |
||||||
|
private String name; |
||||||
|
|
||||||
|
@Property |
||||||
|
private Integer type; |
||||||
|
|
||||||
|
@Property |
||||||
|
private String path; |
||||||
|
} |
@ -0,0 +1,85 @@ |
|||||||
|
package com.teaching.backend.service.KnowGraph; |
||||||
|
|
||||||
|
import cn.hutool.core.io.FileUtil; |
||||||
|
import cn.hutool.http.HttpRequest; |
||||||
|
import cn.hutool.http.HttpResponse; |
||||||
|
import com.teaching.backend.mapper.KnowGraph.ResourcesRepository; |
||||||
|
import com.teaching.backend.model.dto.KnowGraph.*; |
||||||
|
import com.teaching.backend.model.entity.KnowGraph.Resources; |
||||||
|
import org.springframework.beans.BeanUtils; |
||||||
|
import org.springframework.data.neo4j.core.Neo4jClient; |
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
import org.springframework.web.multipart.MultipartFile; |
||||||
|
import javax.annotation.Resource; |
||||||
|
import java.io.File; |
||||||
|
import java.io.IOException; |
||||||
|
import java.nio.charset.StandardCharsets; |
||||||
|
import java.util.*; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author:youhang |
||||||
|
* @Date:2024-07-21-14:46 |
||||||
|
* @Description: |
||||||
|
*/ |
||||||
|
@Service |
||||||
|
public class ResourcesService { |
||||||
|
private static final String GLOBAL_CODE_DIR_NAME = "tempFile"; |
||||||
|
private ResourcesRepository resourcesRepository; |
||||||
|
@Resource |
||||||
|
private Neo4jClient neo4jClient; |
||||||
|
|
||||||
|
public ResourcesService(ResourcesRepository resourcesRepository) { |
||||||
|
this.resourcesRepository = resourcesRepository; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
public List<Resources> queryKnowAllResources(Long id) { |
||||||
|
return resourcesRepository.queryResourceAllId(id); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
public Resources createResource(ResourcesAddRequest resourceAddRequest ) { |
||||||
|
Resources resources = new Resources(); |
||||||
|
BeanUtils.copyProperties(resourceAddRequest,resources); |
||||||
|
return resourcesRepository.save(resources); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
public void deleteResources(Long id) { |
||||||
|
resourcesRepository.deleteById(id); |
||||||
|
} |
||||||
|
|
||||||
|
public Resources updateResources(ResourceUpdateRequest resourceUpdateRequest ) { |
||||||
|
Resources resources = new Resources(); |
||||||
|
resources = resourcesRepository.findById(resourceUpdateRequest.getId()).orElseThrow(() -> new RuntimeException("知识点 not found")); |
||||||
|
BeanUtils.copyProperties(resourceUpdateRequest,resources); |
||||||
|
return resourcesRepository.save(resources); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
public void addKnowWithResources( RelationshipResourceRequest relationshipResourceRequest) { |
||||||
|
resourcesRepository.addResourceRelatedKnow(relationshipResourceRequest.getId(),relationshipResourceRequest.getResourceIds()); |
||||||
|
} |
||||||
|
|
||||||
|
public Set<Resources> queryCourseKnowToResources(Long KnowId){ |
||||||
|
return resourcesRepository.queryCourseKnowToResources(KnowId); |
||||||
|
} |
||||||
|
|
||||||
|
public String uploadFile(MultipartFile file) { |
||||||
|
String userDir = System.getProperty("user.dir"); |
||||||
|
String globalFilePathName = userDir + File.separator + GLOBAL_CODE_DIR_NAME; |
||||||
|
if (!FileUtil.exist(globalFilePathName)) { |
||||||
|
FileUtil.mkdir(globalFilePathName); |
||||||
|
} |
||||||
|
// 把用户的代码隔离存放
|
||||||
|
File userCodeFile = null; |
||||||
|
try { |
||||||
|
String userCodeParentPath = globalFilePathName + File.separator + UUID.randomUUID(); |
||||||
|
String userCodePath = userCodeParentPath + File.separator + file.getOriginalFilename(); |
||||||
|
userCodeFile = FileUtil.writeFromStream(file.getInputStream(), userCodePath); |
||||||
|
} catch (Exception e) { |
||||||
|
System.out.println("失败"); |
||||||
|
} |
||||||
|
return userCodeFile.getPath(); |
||||||
|
} |
||||||
|
} |
@ -1,28 +1,28 @@ |
|||||||
package com.teaching.backend.service.favour; |
//package com.teaching.backend.service.favour;
|
||||||
|
//
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService; |
//import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.teaching.backend.common.BaseResponse; |
//import com.teaching.backend.common.BaseResponse;
|
||||||
import com.teaching.backend.model.entity.CourseResources; |
//import com.teaching.backend.model.entity.resource.CourseResources;
|
||||||
import com.teaching.backend.model.entity.favour.SeResourceFavour; |
//import com.teaching.backend.model.entity.favour.SeResourceFavour;
|
||||||
|
//
|
||||||
/** |
///**
|
||||||
* @Author:youhang |
// * @Author:youhang
|
||||||
* @Date:2024-05-30-20:22 |
// * @Date:2024-05-30-20:22
|
||||||
* @Description: |
// * @Description:
|
||||||
*/ |
// */
|
||||||
public interface SeResourceFavourService extends IService<SeResourceFavour> { |
//public interface SeResourceFavourService extends IService<SeResourceFavour> {
|
||||||
|
//
|
||||||
/** |
// /**
|
||||||
* 收藏 |
// * 收藏
|
||||||
* |
// *
|
||||||
* @param userId |
// * @param userId
|
||||||
* @return |
// * @return
|
||||||
*/ |
// */
|
||||||
BaseResponse<Boolean> doResourceFavour( Integer resourceId, String userId); |
// BaseResponse<Boolean> doResourceFavour( Integer resourceId, String userId);
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
public Page<CourseResources> listCourseFavourByPage(String userId, Integer type, Integer page, Integer pageSize); |
// public Page<CourseResources> listCourseFavourByPage(String userId, Integer type, Integer page, Integer pageSize);
|
||||||
|
//
|
||||||
} |
//}
|
||||||
|
@ -1,192 +0,0 @@ |
|||||||
package com.teaching.backend.service.impl; |
|
||||||
|
|
||||||
import com.aliyun.oss.OSS; |
|
||||||
import com.aliyun.oss.OSSClientBuilder; |
|
||||||
import com.aliyun.oss.model.OSSObject; |
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
||||||
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.mapper.resource.CourseResourcesMapper; |
|
||||||
import com.teaching.backend.model.entity.CourseResources; |
|
||||||
import com.teaching.backend.model.entity.ResourceRelationship; |
|
||||||
import com.teaching.backend.model.entity.records.LearningRecords; |
|
||||||
import com.teaching.backend.service.impl.records.LearningRecordsServiceImpl; |
|
||||||
import com.teaching.backend.service.resource.CourseResourcesService; |
|
||||||
import com.teaching.backend.service.resource.ResourcesRelationshipService; |
|
||||||
import org.apache.commons.io.FileUtils; |
|
||||||
import org.springframework.beans.factory.annotation.Autowired; |
|
||||||
import org.springframework.stereotype.Service; |
|
||||||
|
|
||||||
import javax.annotation.Resource; |
|
||||||
import javax.servlet.http.HttpServletResponse; |
|
||||||
import java.io.File; |
|
||||||
import java.io.IOException; |
|
||||||
import java.io.InputStream; |
|
||||||
import java.util.ArrayList; |
|
||||||
import java.util.List; |
|
||||||
import java.util.function.Consumer; |
|
||||||
|
|
||||||
/** |
|
||||||
* ClassName: FileTableImpl |
|
||||||
* Package: com.teaching.backend.service.impl |
|
||||||
* Description: |
|
||||||
* |
|
||||||
* @Author 姜钧瀚 |
|
||||||
* @Create 2024/6/4 11:50 |
|
||||||
* @Version 1.0 |
|
||||||
*/ |
|
||||||
@Service |
|
||||||
public class CourseResourcesServiceImpl extends ServiceImpl<CourseResourcesMapper, CourseResources> implements CourseResourcesService { |
|
||||||
// @Resource
|
|
||||||
// ResourcesRelationshipService resourcesRelationshipService;
|
|
||||||
|
|
||||||
@Autowired |
|
||||||
private CourseResourcesMapper courseResourcesMapper; |
|
||||||
@Autowired |
|
||||||
private LearningRecordsMapper learningRecordsMapper; |
|
||||||
@Override |
|
||||||
public void updateFile(Integer type, String fileName, String filePath) { |
|
||||||
|
|
||||||
CourseResources courseResources = new CourseResources(); |
|
||||||
|
|
||||||
courseResources.setName(fileName); |
|
||||||
courseResources.setPath(filePath); |
|
||||||
courseResources.setType(type); |
|
||||||
|
|
||||||
this.save(courseResources); |
|
||||||
|
|
||||||
String resourceId=courseResources.getId(); |
|
||||||
System.out.println(resourceId); |
|
||||||
|
|
||||||
ResourceRelationship resourcesRelationship=new ResourceRelationship(); |
|
||||||
|
|
||||||
resourcesRelationship.setResourceid(String.valueOf(resourceId)); |
|
||||||
|
|
||||||
// resourcesRelationshipService.save(resourcesRelationship);
|
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public void download(String Id, String path, HttpServletResponse response, String endpoint, String accessKeyId, String accessKeySecret, String bucketName) throws IOException { |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CourseResources courseResources=getById(Id); |
|
||||||
|
|
||||||
|
|
||||||
System.out.println(courseResources); |
|
||||||
|
|
||||||
|
|
||||||
// 创建OSS客户端
|
|
||||||
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); |
|
||||||
|
|
||||||
String key = extractKeyFromFullPath(courseResources.getPath()); |
|
||||||
OSSObject object = ossClient.getObject(bucketName, key); |
|
||||||
|
|
||||||
String fileName = courseResources.getName(); |
|
||||||
|
|
||||||
// 设置保存文件的路径
|
|
||||||
String savePath = path + "/" + fileName; |
|
||||||
|
|
||||||
// 获取文件的输入流
|
|
||||||
InputStream inputStream = object.getObjectContent(); |
|
||||||
|
|
||||||
// 设置响应头
|
|
||||||
response.setContentType("application/octet-stream"); |
|
||||||
response.setHeader("Content-Disposition", "attachment; filename=" + fileName); |
|
||||||
|
|
||||||
// 创建保存文件
|
|
||||||
File saveFile = new File(savePath); |
|
||||||
|
|
||||||
// 将文件内容复制到保存文件中
|
|
||||||
FileUtils.copyInputStreamToFile(inputStream, saveFile); |
|
||||||
|
|
||||||
// 关闭输入流和OSS客户端
|
|
||||||
inputStream.close(); |
|
||||||
ossClient.shutdown(); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public Page<CourseResources> getresourceRecords(Integer type, List<Integer> resourceIdList, int page, int pageSize) { |
|
||||||
Page <CourseResources> pageInfo=new Page<>(page,pageSize); |
|
||||||
|
|
||||||
LambdaQueryWrapper<CourseResources>lambdaQueryWrapper=new LambdaQueryWrapper<>(); |
|
||||||
lambdaQueryWrapper.in(CourseResources::getId,resourceIdList); |
|
||||||
lambdaQueryWrapper.eq(CourseResources::getType,type); |
|
||||||
|
|
||||||
return this.page(pageInfo,lambdaQueryWrapper); |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
private String extractKeyFromFullPath(String filePath) { |
|
||||||
// 提取存储桶名称
|
|
||||||
String key = filePath.substring(filePath.indexOf("com") + 4, filePath.indexOf("?")); |
|
||||||
return key; |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public List<CourseResources> getByType(String type) { |
|
||||||
LambdaQueryWrapper<CourseResources> lambdaQueryWrapper = new LambdaQueryWrapper<>(); |
|
||||||
lambdaQueryWrapper.eq(CourseResources::getType, type); |
|
||||||
|
|
||||||
List<CourseResources> list = this.list(lambdaQueryWrapper); |
|
||||||
|
|
||||||
return list; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
@Override |
|
||||||
public void removeCourseResources(List<Long> ids) { |
|
||||||
//删除资源在记录表里对应的记录
|
|
||||||
List<LearningRecords> list = new ArrayList<>(); |
|
||||||
for (Long id: ids) { |
|
||||||
LambdaQueryWrapper<LearningRecords> lambdaQueryWrapper = new LambdaQueryWrapper<>(); |
|
||||||
//System.out.println("id:"+id);
|
|
||||||
lambdaQueryWrapper.eq(LearningRecords::getCoursesId, id).eq(LearningRecords::getType, 4); |
|
||||||
//System.out.println("资源对应的记录:"+learningRecordsMapper.selectList(lambdaQueryWrapper));
|
|
||||||
list.addAll(learningRecordsMapper.selectList(lambdaQueryWrapper)); |
|
||||||
//System.out.println("添加完后的集合:"+list);
|
|
||||||
} |
|
||||||
learningRecordsMapper.deleteBatchIds(list); |
|
||||||
//System.out.println(list);
|
|
||||||
//删除课程资源
|
|
||||||
courseResourcesMapper.deleteBatchIds(ids); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public void saveCourseResource(CourseResources courseResources) { |
|
||||||
//将状态设置为1
|
|
||||||
courseResources.setStatus(1); |
|
||||||
//设置文件路径
|
|
||||||
courseResources.setPath(courseResources.getImg()); |
|
||||||
//设置默认图片
|
|
||||||
switch (courseResources.getType()){ |
|
||||||
case 1 : courseResources.setImg("src\\assets\\icons\\ppt (2).png");//ppt的默认图片
|
|
||||||
break; |
|
||||||
case 2 : courseResources.setImg(courseResources.getImg()); //图片
|
|
||||||
break; |
|
||||||
case 3 : courseResources.setImg("src\\assets\\images\\video.png"); //视频
|
|
||||||
break; |
|
||||||
case 4 : courseResources.setImg("src\\assets\\images\\PDF .png"); //pdf
|
|
||||||
break; |
|
||||||
case 5 : courseResources.setImg("src\\assets\\images\\test.png"); //文件
|
|
||||||
break; |
|
||||||
case 6 : courseResources.setImg("src\\assets\\images\\audio.png"); //音频
|
|
||||||
break; |
|
||||||
default: courseResources.setImg("图片丢失!!"); //暂无默认图片
|
|
||||||
} |
|
||||||
this.save(courseResources); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public void editCourseResource(String resourceId) { |
|
||||||
//根据id查数据
|
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,84 +0,0 @@ |
|||||||
package com.teaching.backend.service.impl; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
||||||
import com.teaching.backend.mapper.resource.CourseResourcesMapper; |
|
||||||
import com.teaching.backend.mapper.resource.ResourcesRelationshipMapper; |
|
||||||
import com.teaching.backend.model.entity.CourseResources; |
|
||||||
import com.teaching.backend.model.entity.ResourceRelationship; |
|
||||||
import com.teaching.backend.service.resource.CourseResourcesService; |
|
||||||
import com.teaching.backend.service.resource.ResourcesRelationshipService; |
|
||||||
import org.springframework.beans.factory.annotation.Autowired; |
|
||||||
import org.springframework.stereotype.Service; |
|
||||||
|
|
||||||
import java.util.ArrayList; |
|
||||||
import java.util.Collections; |
|
||||||
import java.util.List; |
|
||||||
import java.util.stream.Collectors; |
|
||||||
|
|
||||||
/** |
|
||||||
* ClassName: ResourcesRelationshipServiceImpl |
|
||||||
* Package: com.teaching.backend.service.impl |
|
||||||
* Description: |
|
||||||
* |
|
||||||
* @Author 姜钧瀚 |
|
||||||
* @Create 2024/6/12 21:05 |
|
||||||
* @Version 1.0 |
|
||||||
*/ |
|
||||||
@Service |
|
||||||
public class ResourcesRelationshipServiceImpl extends ServiceImpl<ResourcesRelationshipMapper, ResourceRelationship> implements ResourcesRelationshipService { |
|
||||||
|
|
||||||
@Autowired |
|
||||||
CourseResourcesService courseResourcesService; |
|
||||||
@Override |
|
||||||
public List<CourseResources> getResource(String id) { |
|
||||||
LambdaQueryWrapper<ResourceRelationship> lambdaQueryWrapper = new LambdaQueryWrapper<>(); |
|
||||||
|
|
||||||
lambdaQueryWrapper.eq(ResourceRelationship::getCourseid, id); |
|
||||||
List<ResourceRelationship> resourceRelationshipList = this.list(lambdaQueryWrapper); |
|
||||||
|
|
||||||
List<String> resourceIds = resourceRelationshipList.stream() |
|
||||||
.map(ResourceRelationship::getResourceid) |
|
||||||
.collect(Collectors.toList()); |
|
||||||
|
|
||||||
if (!resourceIds.isEmpty()) { |
|
||||||
|
|
||||||
LambdaQueryWrapper<CourseResources> courseResourcesQueryWrapper = new LambdaQueryWrapper<>(); |
|
||||||
courseResourcesQueryWrapper.in(CourseResources::getId, resourceIds); |
|
||||||
return courseResourcesService.list(courseResourcesQueryWrapper); |
|
||||||
} |
|
||||||
|
|
||||||
return Collections.emptyList(); |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public List<CourseResources> getResource2(String id, Integer type) { |
|
||||||
LambdaQueryWrapper<ResourceRelationship> lambdaQueryWrapper = new LambdaQueryWrapper<>(); |
|
||||||
lambdaQueryWrapper.eq(ResourceRelationship::getCourseid, id); |
|
||||||
List<ResourceRelationship> resourceRelationshipList = this.list(lambdaQueryWrapper); |
|
||||||
|
|
||||||
List<String> resourceIds = resourceRelationshipList.stream() |
|
||||||
.map(ResourceRelationship::getResourceid) |
|
||||||
.collect(Collectors.toList()); |
|
||||||
if (type==null){ |
|
||||||
|
|
||||||
if (!resourceIds.isEmpty()) { |
|
||||||
|
|
||||||
LambdaQueryWrapper<CourseResources> courseResourcesQueryWrapper = new LambdaQueryWrapper<>(); |
|
||||||
courseResourcesQueryWrapper.in(CourseResources::getId, resourceIds); |
|
||||||
return courseResourcesService.list(courseResourcesQueryWrapper); |
|
||||||
} |
|
||||||
|
|
||||||
}else { |
|
||||||
LambdaQueryWrapper<CourseResources> courseResourcesQueryWrapper = new LambdaQueryWrapper<>(); |
|
||||||
courseResourcesQueryWrapper.in(CourseResources::getId, resourceIds) |
|
||||||
.in(CourseResources::getType,type); |
|
||||||
return courseResourcesService.list(courseResourcesQueryWrapper); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
return Collections.emptyList(); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
} |
|
@ -1,165 +1,165 @@ |
|||||||
package com.teaching.backend.service.impl.favour; |
//package com.teaching.backend.service.impl.favour;
|
||||||
|
//
|
||||||
import cn.hutool.core.collection.CollUtil; |
//import cn.hutool.core.collection.CollUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.Wrapper; |
//import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
//import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.teaching.backend.common.BaseResponse; |
//import com.teaching.backend.common.BaseResponse;
|
||||||
import com.teaching.backend.common.ErrorCode; |
//import com.teaching.backend.common.ErrorCode;
|
||||||
import com.teaching.backend.common.ResultUtils; |
//import com.teaching.backend.common.ResultUtils;
|
||||||
import com.teaching.backend.exception.BusinessException; |
//import com.teaching.backend.exception.BusinessException;
|
||||||
import com.teaching.backend.mapper.courses.CoursesMapper; |
//import com.teaching.backend.mapper.courses.CoursesMapper;
|
||||||
import com.teaching.backend.mapper.favour.SeCourseFavourMapper; |
//import com.teaching.backend.mapper.favour.SeCourseFavourMapper;
|
||||||
import com.teaching.backend.model.entity.courses.Courses; |
//import com.teaching.backend.model.entity.courses.Courses;
|
||||||
import com.teaching.backend.model.entity.favour.SeCourseFavour; |
//import com.teaching.backend.model.entity.favour.SeCourseFavour;
|
||||||
import com.teaching.backend.model.entity.favour.SeKnowFavour; |
//import com.teaching.backend.model.entity.favour.SeKnowFavour;
|
||||||
import com.teaching.backend.model.entity.favour.SeResourceFavour; |
//import com.teaching.backend.model.entity.favour.SeResourceFavour;
|
||||||
import com.teaching.backend.model.vo.favour.CourseFavourDetailVO; |
//import com.teaching.backend.model.vo.favour.CourseFavourDetailVO;
|
||||||
import com.teaching.backend.service.courses.ICoursesService; |
//import com.teaching.backend.service.courses.ICoursesService;
|
||||||
import com.teaching.backend.service.favour.SeCourseFavourService; |
//import com.teaching.backend.service.favour.SeCourseFavourService;
|
||||||
import com.teaching.backend.service.favour.SeKnowFavourService; |
//import com.teaching.backend.service.favour.SeKnowFavourService;
|
||||||
import com.teaching.backend.service.favour.SeResourceFavourService; |
//import com.teaching.backend.service.favour.SeResourceFavourService;
|
||||||
import org.springframework.beans.BeanUtils; |
//import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired; |
//import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service; |
//import org.springframework.stereotype.Service;
|
||||||
|
//
|
||||||
import javax.annotation.Resource; |
//import javax.annotation.Resource;
|
||||||
import java.util.ArrayList; |
//import java.util.ArrayList;
|
||||||
import java.util.List; |
//import java.util.List;
|
||||||
import java.util.concurrent.locks.Lock; |
//import java.util.concurrent.locks.Lock;
|
||||||
import java.util.concurrent.locks.ReentrantLock; |
//import java.util.concurrent.locks.ReentrantLock;
|
||||||
import java.util.stream.Collectors; |
//import java.util.stream.Collectors;
|
||||||
|
//
|
||||||
|
//
|
||||||
/** |
///**
|
||||||
* @Author:youhang |
// * @Author:youhang
|
||||||
* @Date:2024-05-30-20:23 |
// * @Date:2024-05-30-20:23
|
||||||
* @Description: |
// * @Description:
|
||||||
*/ |
// */
|
||||||
@Service |
//@Service
|
||||||
public class SeCourseFavourServiceImpl extends ServiceImpl<SeCourseFavourMapper, SeCourseFavour> implements SeCourseFavourService { |
//public class SeCourseFavourServiceImpl extends ServiceImpl<SeCourseFavourMapper, SeCourseFavour> implements SeCourseFavourService {
|
||||||
|
//
|
||||||
|
//
|
||||||
@Resource |
// @Resource
|
||||||
private SeResourceFavourService seResourceFavourService; |
// private SeResourceFavourService seResourceFavourService;
|
||||||
|
//
|
||||||
@Resource |
// @Resource
|
||||||
SeKnowFavourService seKnowFavourService; |
// SeKnowFavourService seKnowFavourService;
|
||||||
|
//
|
||||||
@Autowired |
// @Autowired
|
||||||
CoursesMapper coursesMapper; |
// CoursesMapper coursesMapper;
|
||||||
|
//
|
||||||
@Autowired |
// @Autowired
|
||||||
ICoursesService coursesService; |
// ICoursesService coursesService;
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
@Override |
// @Override
|
||||||
public BaseResponse<Boolean> doCourseFavour(String courseId, String userId) { |
// public BaseResponse<Boolean> doCourseFavour(String courseId, String userId) {
|
||||||
System.out.println("进入点赞" + courseId + userId); |
// System.out.println("进入点赞" + courseId + userId);
|
||||||
//从数据库中校验是否存在courseid
|
// //从数据库中校验是否存在courseid
|
||||||
Courses courses = coursesMapper.selectById(courseId); |
// Courses courses = coursesMapper.selectById(courseId);
|
||||||
boolean result = false; |
// boolean result = false;
|
||||||
if(courses == null){ |
// if(courses == null){
|
||||||
return ResultUtils.error(ErrorCode.NOT_FOUND_ERROR,"课程不存在"); |
// return ResultUtils.error(ErrorCode.NOT_FOUND_ERROR,"课程不存在");
|
||||||
} |
// }
|
||||||
//查询数据库记录,该用户是否点赞
|
// //查询数据库记录,该用户是否点赞
|
||||||
SeCourseFavour seCourseFavour = new SeCourseFavour(); |
// SeCourseFavour seCourseFavour = new SeCourseFavour();
|
||||||
seCourseFavour.setCourseId(courseId); |
// seCourseFavour.setCourseId(courseId);
|
||||||
seCourseFavour.setUserId(userId); |
// seCourseFavour.setUserId(userId);
|
||||||
QueryWrapper<SeCourseFavour> favourQueryWrapper = new QueryWrapper<>(seCourseFavour); |
// QueryWrapper<SeCourseFavour> favourQueryWrapper = new QueryWrapper<>(seCourseFavour);
|
||||||
SeCourseFavour oldSeCourseFavour = this.getOne(favourQueryWrapper); |
// SeCourseFavour oldSeCourseFavour = this.getOne(favourQueryWrapper);
|
||||||
//已点赞
|
// //已点赞
|
||||||
if (oldSeCourseFavour != null) { |
// if (oldSeCourseFavour != null) {
|
||||||
// 取消点赞 删除记录
|
// // 取消点赞 删除记录
|
||||||
result = this.remove(favourQueryWrapper); |
// result = this.remove(favourQueryWrapper);
|
||||||
if (result) { |
// if (result) {
|
||||||
System.out.println("取消点赞成功"); |
// System.out.println("取消点赞成功");
|
||||||
return ResultUtils.success(result); |
// return ResultUtils.success(result);
|
||||||
} else { |
// } else {
|
||||||
throw new BusinessException(ErrorCode.SYSTEM_ERROR); |
// throw new BusinessException(ErrorCode.SYSTEM_ERROR);
|
||||||
} |
// }
|
||||||
} else { |
// } else {
|
||||||
// 每个用户串行点赞
|
// // 每个用户串行点赞
|
||||||
// 锁必须要包裹住事务方法
|
// // 锁必须要包裹住事务方法
|
||||||
Lock lock = new ReentrantLock(); |
// Lock lock = new ReentrantLock();
|
||||||
lock.lock(); |
// lock.lock();
|
||||||
try { |
// try {
|
||||||
result = this.save(seCourseFavour); |
// result = this.save(seCourseFavour);
|
||||||
} catch (Exception e) { |
// } catch (Exception e) {
|
||||||
throw new BusinessException(ErrorCode.OPERATION_ERROR); |
// throw new BusinessException(ErrorCode.OPERATION_ERROR);
|
||||||
} finally { |
// } finally {
|
||||||
lock.unlock(); |
// lock.unlock();
|
||||||
System.out.println("点赞成功"); |
// System.out.println("点赞成功");
|
||||||
return ResultUtils.success(result); |
// return ResultUtils.success(result);
|
||||||
} |
// }
|
||||||
} |
// }
|
||||||
} |
// }
|
||||||
|
//
|
||||||
@Override |
// @Override
|
||||||
public BaseResponse<Long>favourCount(String courseId) { |
// public BaseResponse<Long>favourCount(String courseId) {
|
||||||
//从数据库中校验是否存在courseid
|
// //从数据库中校验是否存在courseid
|
||||||
QueryWrapper<SeCourseFavour> favourQueryWrapper = new QueryWrapper<>(); |
// QueryWrapper<SeCourseFavour> favourQueryWrapper = new QueryWrapper<>();
|
||||||
favourQueryWrapper.eq("course_id", courseId); |
// favourQueryWrapper.eq("course_id", courseId);
|
||||||
long result = this.count(favourQueryWrapper); |
// long result = this.count(favourQueryWrapper);
|
||||||
if (result == 0) { |
// if (result == 0) {
|
||||||
throw new BusinessException(ErrorCode.SYSTEM_ERROR, "查询参数不存在"); |
// throw new BusinessException(ErrorCode.SYSTEM_ERROR, "查询参数不存在");
|
||||||
} else { |
// } else {
|
||||||
return ResultUtils.success(result); |
// return ResultUtils.success(result);
|
||||||
} |
// }
|
||||||
} |
// }
|
||||||
|
//
|
||||||
@Override |
// @Override
|
||||||
public BaseResponse<Long> courseCount(String courseId) { |
// public BaseResponse<Long> courseCount(String courseId) {
|
||||||
|
//
|
||||||
QueryWrapper<SeResourceFavour> ResourceQueryWrapper = new QueryWrapper<>(); |
// QueryWrapper<SeResourceFavour> ResourceQueryWrapper = new QueryWrapper<>();
|
||||||
ResourceQueryWrapper.eq("course_id", courseId); |
// ResourceQueryWrapper.eq("course_id", courseId);
|
||||||
long result1 = seResourceFavourService.count(ResourceQueryWrapper); |
// long result1 = seResourceFavourService.count(ResourceQueryWrapper);
|
||||||
QueryWrapper<SeKnowFavour> KnowQueryWrapper = new QueryWrapper<>(); |
// QueryWrapper<SeKnowFavour> KnowQueryWrapper = new QueryWrapper<>();
|
||||||
KnowQueryWrapper.eq("course_id", courseId); |
// KnowQueryWrapper.eq("course_id", courseId);
|
||||||
long result2 = seKnowFavourService.count(KnowQueryWrapper); |
// long result2 = seKnowFavourService.count(KnowQueryWrapper);
|
||||||
long result = result1 + result2; |
// long result = result1 + result2;
|
||||||
if (result == 0) { |
// if (result == 0) {
|
||||||
throw new BusinessException(ErrorCode.SYSTEM_ERROR, "查询参数不存在"); |
// throw new BusinessException(ErrorCode.SYSTEM_ERROR, "查询参数不存在");
|
||||||
} else { |
// } else {
|
||||||
return ResultUtils.success(result); |
// return ResultUtils.success(result);
|
||||||
} |
// }
|
||||||
} |
// }
|
||||||
|
//
|
||||||
/** |
// /**
|
||||||
* 某个用户课程列表 |
// * 某个用户课程列表
|
||||||
* |
// *
|
||||||
* @param userId |
// * @param userId
|
||||||
* @return |
// * @return
|
||||||
*/ |
// */
|
||||||
@Override |
// @Override
|
||||||
public List<String> courseList(String userId) { |
// public List<String> courseList(String userId) {
|
||||||
QueryWrapper<SeCourseFavour> courseQueryWrapper = new QueryWrapper<>(); |
// QueryWrapper<SeCourseFavour> courseQueryWrapper = new QueryWrapper<>();
|
||||||
courseQueryWrapper.eq("user_id", userId); |
// courseQueryWrapper.eq("user_id", userId);
|
||||||
List<String> list = this.list(courseQueryWrapper).stream().map(SeCourseFavour::getCourseId).collect(Collectors.toList()); |
// List<String> list = this.list(courseQueryWrapper).stream().map(SeCourseFavour::getCourseId).collect(Collectors.toList());
|
||||||
return list; |
// return list;
|
||||||
} |
// }
|
||||||
|
//
|
||||||
@Override |
// @Override
|
||||||
public Page<CourseFavourDetailVO> listCourseFavourByPage(Page<Courses> page, Wrapper<Courses> queryWrapper) { |
// public Page<CourseFavourDetailVO> listCourseFavourByPage(Page<Courses> page, Wrapper<Courses> queryWrapper) {
|
||||||
Page<Courses> coursePage = coursesService.page(page, queryWrapper); |
// Page<Courses> coursePage = coursesService.page(page, queryWrapper);
|
||||||
Page<CourseFavourDetailVO> courseFavourVOPage = new Page<>(coursePage.getCurrent(), coursePage.getSize(), coursePage.getTotal()); |
// Page<CourseFavourDetailVO> courseFavourVOPage = new Page<>(coursePage.getCurrent(), coursePage.getSize(), coursePage.getTotal());
|
||||||
List<Courses> courseFavourList = coursePage.getRecords(); |
// List<Courses> courseFavourList = coursePage.getRecords();
|
||||||
//若数据为空,直接返回
|
// //若数据为空,直接返回
|
||||||
if (CollUtil.isEmpty(courseFavourList)) { |
// if (CollUtil.isEmpty(courseFavourList)) {
|
||||||
return courseFavourVOPage; |
// return courseFavourVOPage;
|
||||||
} |
// }
|
||||||
//过滤字段
|
// //过滤字段
|
||||||
List<CourseFavourDetailVO> courseFavourDetailVOList = new ArrayList<>(); |
// List<CourseFavourDetailVO> courseFavourDetailVOList = new ArrayList<>();
|
||||||
for (int i = 0; i < courseFavourList.size(); i++) { |
// for (int i = 0; i < courseFavourList.size(); i++) {
|
||||||
CourseFavourDetailVO courseFavourDetailVO = new CourseFavourDetailVO(); |
// CourseFavourDetailVO courseFavourDetailVO = new CourseFavourDetailVO();
|
||||||
BeanUtils.copyProperties(courseFavourList.get(i), courseFavourDetailVO); |
// BeanUtils.copyProperties(courseFavourList.get(i), courseFavourDetailVO);
|
||||||
courseFavourDetailVOList.add(courseFavourDetailVO); |
// courseFavourDetailVOList.add(courseFavourDetailVO);
|
||||||
} |
// }
|
||||||
courseFavourVOPage.setRecords(courseFavourDetailVOList); |
// courseFavourVOPage.setRecords(courseFavourDetailVOList);
|
||||||
return courseFavourVOPage; |
// return courseFavourVOPage;
|
||||||
} |
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
} |
//}
|
||||||
|
@ -1,103 +1,102 @@ |
|||||||
package com.teaching.backend.service.impl.favour; |
//package com.teaching.backend.service.impl.favour;
|
||||||
|
//
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
//import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.teaching.backend.common.BaseResponse; |
//import com.teaching.backend.common.BaseResponse;
|
||||||
import com.teaching.backend.common.ErrorCode; |
//import com.teaching.backend.common.ErrorCode;
|
||||||
import com.teaching.backend.common.ResultUtils; |
//import com.teaching.backend.common.ResultUtils;
|
||||||
import com.teaching.backend.exception.BusinessException; |
//import com.teaching.backend.exception.BusinessException;
|
||||||
import com.teaching.backend.mapper.courses.CoursesMapper; |
//import com.teaching.backend.mapper.courses.CoursesMapper;
|
||||||
import com.teaching.backend.mapper.favour.SeResourceFavourMapper; |
//import com.teaching.backend.mapper.favour.SeResourceFavourMapper;
|
||||||
import com.teaching.backend.mapper.resource.CourseResourcesMapper; |
//import com.teaching.backend.mapper.resource.CourseResourcesMapper;
|
||||||
import com.teaching.backend.mapper.umsAdmin.UmsUserMapper; |
//import com.teaching.backend.mapper.umsAdmin.UmsUserMapper;
|
||||||
import com.teaching.backend.model.entity.CourseResources; |
//import com.teaching.backend.model.entity.resource.CourseResources;
|
||||||
import com.teaching.backend.model.entity.favour.SeResourceFavour; |
//import com.teaching.backend.model.entity.favour.SeResourceFavour;
|
||||||
import com.teaching.backend.model.entity.umsAdmin.UmsUser; |
//import com.teaching.backend.model.entity.umsAdmin.UmsUser;
|
||||||
import com.teaching.backend.service.resource.CourseResourcesService; |
//import com.teaching.backend.service.favour.SeResourceFavourService;
|
||||||
import com.teaching.backend.service.favour.SeResourceFavourService; |
//import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Autowired; |
//import org.springframework.stereotype.Service;
|
||||||
import org.springframework.stereotype.Service; |
//
|
||||||
|
//import java.util.List;
|
||||||
import java.util.List; |
//import java.util.concurrent.locks.Lock;
|
||||||
import java.util.concurrent.locks.Lock; |
//import java.util.concurrent.locks.ReentrantLock;
|
||||||
import java.util.concurrent.locks.ReentrantLock; |
//import java.util.stream.Collectors;
|
||||||
import java.util.stream.Collectors; |
//
|
||||||
|
//
|
||||||
|
///**
|
||||||
/** |
// * @Author:youhang
|
||||||
* @Author:youhang |
// * @Date:2024-05-30-20:23
|
||||||
* @Date:2024-05-30-20:23 |
// * @Description:
|
||||||
* @Description: |
// */
|
||||||
*/ |
//@Service
|
||||||
@Service |
//public class SeResourceFavourServiceImpl extends ServiceImpl<SeResourceFavourMapper, SeResourceFavour> implements SeResourceFavourService {
|
||||||
public class SeResourceFavourServiceImpl extends ServiceImpl<SeResourceFavourMapper, SeResourceFavour> implements SeResourceFavourService { |
//
|
||||||
|
//
|
||||||
|
// @Autowired
|
||||||
@Autowired |
// CoursesMapper coursesMapper;
|
||||||
CoursesMapper coursesMapper; |
//
|
||||||
|
// @Autowired
|
||||||
@Autowired |
// private CourseResourcesService courseResourcesService;
|
||||||
private CourseResourcesService courseResourcesService; |
//
|
||||||
|
// @Autowired
|
||||||
@Autowired |
// private UmsUserMapper umsAdminMapper;
|
||||||
private UmsUserMapper umsAdminMapper; |
//
|
||||||
|
// @Autowired
|
||||||
@Autowired |
// private CourseResourcesMapper courseResourcesMapper;
|
||||||
private CourseResourcesMapper courseResourcesMapper; |
//
|
||||||
|
// @Override
|
||||||
@Override |
// public BaseResponse<Boolean> doResourceFavour(Integer resourceId, String userId) {
|
||||||
public BaseResponse<Boolean> doResourceFavour(Integer resourceId, String userId) { |
//
|
||||||
|
// boolean result = false;
|
||||||
boolean result = false; |
//
|
||||||
|
// CourseResources courseResources = courseResourcesMapper.selectById(resourceId);
|
||||||
CourseResources courseResources = courseResourcesMapper.selectById(resourceId); |
// if(courseResources == null){
|
||||||
if(courseResources == null){ |
// throw new BusinessException(ErrorCode.PARAMS_RESOURCE_NOTEXISTS);
|
||||||
throw new BusinessException(ErrorCode.PARAMS_RESOURCE_NOTEXISTS); |
// }
|
||||||
} |
//
|
||||||
|
// // 先查询数据库记录,该用户是否收藏
|
||||||
// 先查询数据库记录,该用户是否收藏
|
// SeResourceFavour seResourceFavour = new SeResourceFavour();
|
||||||
SeResourceFavour seResourceFavour = new SeResourceFavour(); |
// seResourceFavour.setResourceId(resourceId);
|
||||||
seResourceFavour.setResourceId(resourceId); |
// seResourceFavour.setUserId(userId);
|
||||||
seResourceFavour.setUserId(userId); |
// QueryWrapper<SeResourceFavour> thumbQueryWrapper = new QueryWrapper<>(seResourceFavour);
|
||||||
QueryWrapper<SeResourceFavour> thumbQueryWrapper = new QueryWrapper<>(seResourceFavour); |
// SeResourceFavour oldSeResourceFavour = this.getOne(thumbQueryWrapper);
|
||||||
SeResourceFavour oldSeResourceFavour = this.getOne(thumbQueryWrapper); |
// //已收藏
|
||||||
//已收藏
|
// if (oldSeResourceFavour != null) {
|
||||||
if (oldSeResourceFavour != null) { |
// // 取消收藏 删除记录
|
||||||
// 取消收藏 删除记录
|
// result = this.remove(thumbQueryWrapper);
|
||||||
result = this.remove(thumbQueryWrapper); |
// if (result) {
|
||||||
if (result) { |
// System.out.println("取消收藏成功");
|
||||||
System.out.println("取消收藏成功"); |
// return ResultUtils.success(result);
|
||||||
return ResultUtils.success(result); |
// } else {
|
||||||
} else { |
// throw new BusinessException(ErrorCode.SYSTEM_ERROR);
|
||||||
throw new BusinessException(ErrorCode.SYSTEM_ERROR); |
// }
|
||||||
} |
// } else {
|
||||||
} else { |
// // 每个用户串行收藏
|
||||||
// 每个用户串行收藏
|
// // 锁必须要包裹住事务方法
|
||||||
// 锁必须要包裹住事务方法
|
// Lock lock = new ReentrantLock();
|
||||||
Lock lock = new ReentrantLock(); |
// lock.lock();
|
||||||
lock.lock(); |
// try {
|
||||||
try { |
// result = this.save(seResourceFavour);
|
||||||
result = this.save(seResourceFavour); |
// } catch (Exception e) {
|
||||||
} catch (Exception e) { |
// throw new BusinessException(ErrorCode.OPERATION_ERROR);
|
||||||
throw new BusinessException(ErrorCode.OPERATION_ERROR); |
// } finally {
|
||||||
} finally { |
// lock.unlock();
|
||||||
lock.unlock(); |
// System.out.println("收藏成功");
|
||||||
System.out.println("收藏成功"); |
// return ResultUtils.success(result);
|
||||||
return ResultUtils.success(result); |
// }
|
||||||
} |
// }
|
||||||
} |
// }
|
||||||
} |
//
|
||||||
|
// @Override
|
||||||
@Override |
// public Page<CourseResources> listCourseFavourByPage(String userId, Integer type, Integer page, Integer pageSize) {
|
||||||
public Page<CourseResources> listCourseFavourByPage(String userId, Integer type, Integer page, Integer pageSize) { |
// UmsUser umsAdmin = umsAdminMapper.selectById(userId);
|
||||||
UmsUser umsAdmin = umsAdminMapper.selectById(userId); |
// if(umsAdmin == null){
|
||||||
if(umsAdmin == null){ |
// throw new BusinessException(ErrorCode.PARAMS_USER_NOTEXISTS);
|
||||||
throw new BusinessException(ErrorCode.PARAMS_USER_NOTEXISTS); |
// }
|
||||||
} |
// QueryWrapper<SeResourceFavour> resourceQueryWrapper = new QueryWrapper<>();
|
||||||
QueryWrapper<SeResourceFavour> resourceQueryWrapper = new QueryWrapper<>(); |
// resourceQueryWrapper.eq("user_id",userId);
|
||||||
resourceQueryWrapper.eq("user_id",userId); |
// List<Integer> ids = this.list(resourceQueryWrapper).stream().map(SeResourceFavour::getResourceId).collect(Collectors.toList());
|
||||||
List<Integer> ids = this.list(resourceQueryWrapper).stream().map(SeResourceFavour::getResourceId).collect(Collectors.toList()); |
// return courseResourcesService.getresourceRecords(type,ids,page,pageSize);
|
||||||
return courseResourcesService.getresourceRecords(type,ids,page,pageSize); |
// }
|
||||||
} |
//}
|
||||||
} |
|
||||||
|
@ -1,180 +1,179 @@ |
|||||||
package com.teaching.backend.service.impl.records; |
//package com.teaching.backend.service.impl.records;
|
||||||
|
//
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
//import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
//import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
//
|
||||||
import com.teaching.backend.common.ErrorCode; |
//import com.teaching.backend.common.ErrorCode;
|
||||||
import com.teaching.backend.exception.BusinessException; |
//import com.teaching.backend.exception.BusinessException;
|
||||||
import com.teaching.backend.mapper.records.LearningRecordsMapper; |
//import com.teaching.backend.mapper.records.LearningRecordsMapper;
|
||||||
|
//
|
||||||
import com.teaching.backend.model.entity.records.LearningRecords; |
//import com.teaching.backend.model.entity.records.LearningRecords;
|
||||||
import com.teaching.backend.model.vo.records.LearningRecordsVo; |
//import com.teaching.backend.model.vo.records.LearningRecordsVo;
|
||||||
import com.teaching.backend.service.impl.CourseResourcesServiceImpl; |
//import com.teaching.backend.service.impl.courses.CoursesServiceImpl;
|
||||||
import com.teaching.backend.service.impl.courses.CoursesServiceImpl; |
//import com.teaching.backend.service.records.LearningRecordsService;
|
||||||
import com.teaching.backend.service.records.LearningRecordsService; |
//import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.BeanUtils; |
//import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Autowired; |
//import org.springframework.stereotype.Service;
|
||||||
import org.springframework.stereotype.Service; |
//import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.transaction.annotation.Transactional; |
//
|
||||||
|
//import java.text.SimpleDateFormat;
|
||||||
import java.text.SimpleDateFormat; |
//import java.time.LocalDateTime;
|
||||||
import java.time.LocalDateTime; |
//import java.time.ZoneId;
|
||||||
import java.time.ZoneId; |
//import java.util.ArrayList;
|
||||||
import java.util.ArrayList; |
//import java.util.Date;
|
||||||
import java.util.Date; |
//import java.util.List;
|
||||||
import java.util.List; |
//
|
||||||
|
//@Service
|
||||||
@Service |
//public class LearningRecordsServiceImpl extends ServiceImpl<LearningRecordsMapper, LearningRecords> implements LearningRecordsService {
|
||||||
public class LearningRecordsServiceImpl extends ServiceImpl<LearningRecordsMapper, LearningRecords> implements LearningRecordsService { |
//
|
||||||
|
|
||||||
@Autowired |
|
||||||
private CoursesServiceImpl coursesService; |
|
||||||
@Autowired |
|
||||||
private LearningRecordsMapper learningRecordsMapper; |
|
||||||
@Autowired |
|
||||||
private CourseResourcesServiceImpl courseResourcesService; |
|
||||||
// @Autowired
|
// @Autowired
|
||||||
// private ChapterServiceImpl chapterService;
|
// private CoursesServiceImpl coursesService;
|
||||||
|
// @Autowired
|
||||||
@Override |
// private LearningRecordsMapper learningRecordsMapper;
|
||||||
public IPage<LearningRecords> selectPageList(Page<LearningRecords> page, LearningRecords model) { |
// @Autowired
|
||||||
return learningRecordsMapper.selectPageList(page,model); |
// private CourseResourcesServiceImpl courseResourcesService;
|
||||||
} |
//// @Autowired
|
||||||
|
//// private ChapterServiceImpl chapterService;
|
||||||
@Override |
//
|
||||||
public String delete(List<Long> ids) { |
// @Override
|
||||||
LambdaQueryWrapper<LearningRecords> lambdaQueryWrapper = new LambdaQueryWrapper<>(); |
// public IPage<LearningRecords> selectPageList(Page<LearningRecords> page, LearningRecords model) {
|
||||||
lambdaQueryWrapper.in(LearningRecords::getId, ids); |
// return learningRecordsMapper.selectPageList(page,model);
|
||||||
List<LearningRecords> list = this.list(lambdaQueryWrapper); |
// }
|
||||||
//把即将要删除的记录状态调成0
|
//
|
||||||
for (LearningRecords learningRecords : list) { |
// @Override
|
||||||
learningRecords.setStatus("0"); |
// public String delete(List<Long> ids) {
|
||||||
} |
|
||||||
updateBatchById(list); |
|
||||||
// System.out.println(this.updateBatchById(list));
|
|
||||||
// this.remove(lambdaQueryWrapper);
|
|
||||||
return "删除成功"; |
|
||||||
} |
|
||||||
|
|
||||||
@Override |
|
||||||
public List<LearningRecordsVo> getAll(List<LearningRecords> list){ |
|
||||||
List<LearningRecordsVo> records = new ArrayList<>(); |
|
||||||
//格式化时间
|
|
||||||
String strDateFormat = "yyyy-MM-dd HH:mm:ss"; |
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat(strDateFormat); |
|
||||||
//如果为空-------------------?????
|
|
||||||
list.forEach(learningRecords -> { |
|
||||||
LearningRecordsVo learningRecordsVo = new LearningRecordsVo();//好像可以拿出去-----------??
|
|
||||||
BeanUtils.copyProperties(learningRecords,learningRecordsVo);//从多传到少(时间需要转格式)
|
|
||||||
Date date = Date.from(learningRecords.getTime().atZone(ZoneId.systemDefault()).toInstant()); |
|
||||||
learningRecordsVo.setTime(sdf.format(date)); |
|
||||||
// //统计记录表里有多少人查看过这门资源
|
|
||||||
// LambdaQueryWrapper<LearningRecords> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
// LambdaQueryWrapper<LearningRecords> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
// lambdaQueryWrapper.eq(LearningRecords::getCoursesId, learningRecords.getCoursesId());
|
// lambdaQueryWrapper.in(LearningRecords::getId, ids);
|
||||||
// long count = this.count(lambdaQueryWrapper);
|
// List<LearningRecords> list = this.list(lambdaQueryWrapper);
|
||||||
learningRecordsVo.setNumber(learningRecords.getNumber()); |
// //把即将要删除的记录状态调成0
|
||||||
//把整合后该用户的学习记录添加到List里
|
|
||||||
records.add(learningRecordsVo); |
|
||||||
}); |
|
||||||
// for (LearningRecords learningRecords : list) {
|
// for (LearningRecords learningRecords : list) {
|
||||||
// //查找该用户的学习记录
|
// learningRecords.setStatus("0");
|
||||||
|
// }
|
||||||
|
// updateBatchById(list);
|
||||||
|
//// System.out.println(this.updateBatchById(list));
|
||||||
|
//// this.remove(lambdaQueryWrapper);
|
||||||
|
// return "删除成功";
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// public List<LearningRecordsVo> getAll(List<LearningRecords> list){
|
||||||
|
// List<LearningRecordsVo> records = new ArrayList<>();
|
||||||
|
// //格式化时间
|
||||||
|
// String strDateFormat = "yyyy-MM-dd HH:mm:ss";
|
||||||
|
// SimpleDateFormat sdf = new SimpleDateFormat(strDateFormat);
|
||||||
|
// //如果为空-------------------?????
|
||||||
|
// list.forEach(learningRecords -> {
|
||||||
// LearningRecordsVo learningRecordsVo = new LearningRecordsVo();//好像可以拿出去-----------??
|
// LearningRecordsVo learningRecordsVo = new LearningRecordsVo();//好像可以拿出去-----------??
|
||||||
// BeanUtils.copyProperties(learningRecords,learningRecordsVo);//从多传到少(缺少人数,和资源名称,时间需要转格式)
|
// BeanUtils.copyProperties(learningRecords,learningRecordsVo);//从多传到少(时间需要转格式)
|
||||||
// //添加时间
|
|
||||||
// //LocalDateTime转Date
|
|
||||||
// Date date = Date.from(learningRecords.getTime().atZone(ZoneId.systemDefault()).toInstant());
|
// Date date = Date.from(learningRecords.getTime().atZone(ZoneId.systemDefault()).toInstant());
|
||||||
// learningRecordsVo.setTime(sdf.format(date));
|
// learningRecordsVo.setTime(sdf.format(date));
|
||||||
|
//// //统计记录表里有多少人查看过这门资源
|
||||||
|
//// LambdaQueryWrapper<LearningRecords> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
//// lambdaQueryWrapper.eq(LearningRecords::getCoursesId, learningRecords.getCoursesId());
|
||||||
|
//// long count = this.count(lambdaQueryWrapper);
|
||||||
|
// learningRecordsVo.setNumber(learningRecords.getNumber());
|
||||||
|
// //把整合后该用户的学习记录添加到List里
|
||||||
|
// records.add(learningRecordsVo);
|
||||||
|
// });
|
||||||
|
//// for (LearningRecords learningRecords : list) {
|
||||||
|
//// //查找该用户的学习记录
|
||||||
|
//// LearningRecordsVo learningRecordsVo = new LearningRecordsVo();//好像可以拿出去-----------??
|
||||||
|
//// BeanUtils.copyProperties(learningRecords,learningRecordsVo);//从多传到少(缺少人数,和资源名称,时间需要转格式)
|
||||||
|
//// //添加时间
|
||||||
|
//// //LocalDateTime转Date
|
||||||
|
//// Date date = Date.from(learningRecords.getTime().atZone(ZoneId.systemDefault()).toInstant());
|
||||||
|
//// learningRecordsVo.setTime(sdf.format(date));
|
||||||
|
//// LambdaQueryWrapper<LearningRecords> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
//// lambdaQueryWrapper.eq(LearningRecords::getCoursesId, learningRecords.getCoursesId());
|
||||||
|
//// String name;
|
||||||
|
//// //添加课程名称
|
||||||
|
//// switch (learningRecords.getType()) {
|
||||||
|
//// case "4": //如果是资源学习
|
||||||
|
//// if (courseResourcesService.getById(learningRecords.getCoursesId()) != null){
|
||||||
|
//// learningRecordsVo.setCoursesName(courseResourcesService.getById(learningRecords.getCoursesId()).getName());
|
||||||
|
//// }
|
||||||
|
//// break;
|
||||||
|
//// case "1": //如果是课程学习记录
|
||||||
|
//// if (coursesService.getById(learningRecords.getCoursesId()) != null){
|
||||||
|
//// learningRecordsVo.setCoursesName(coursesService.getById(learningRecords.getCoursesId()).getName());
|
||||||
|
//// }
|
||||||
|
//// break;
|
||||||
|
//// }
|
||||||
|
//// //添加观看人数
|
||||||
|
//// //统计记录表里有多少人查看过这门资源
|
||||||
|
//// long count = this.count(lambdaQueryWrapper);
|
||||||
|
//// learningRecordsVo.setNumber(count);
|
||||||
|
//// //把整合后该用户的学习记录添加到List里
|
||||||
|
//// records.add(learningRecordsVo);
|
||||||
|
//// }
|
||||||
|
// return records;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 根据用户id和学习资源id来判断记录是否存在
|
||||||
|
// * @param learningRecords
|
||||||
|
// * @return
|
||||||
|
// */
|
||||||
|
// @Override
|
||||||
|
// @Transactional
|
||||||
|
// public String saveRecords(LearningRecords learningRecords) {
|
||||||
|
// String userId = learningRecords.getUserId();
|
||||||
|
// String coursesId = learningRecords.getCoursesId();
|
||||||
|
// //如果userId或者coursesId为空就抛出异常事务回滚----------------------------
|
||||||
|
// if (userId == null || userId.equals("") || coursesId == null || coursesId.equals("")){
|
||||||
|
// throw new BusinessException(ErrorCode.PARAMS_ERROR);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
//// System.out.println("学习记录:"+learningRecords);
|
||||||
|
// //查找该用户是否观看过该学习资源
|
||||||
// LambdaQueryWrapper<LearningRecords> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
// LambdaQueryWrapper<LearningRecords> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
// lambdaQueryWrapper.eq(LearningRecords::getCoursesId, learningRecords.getCoursesId());
|
// lambdaQueryWrapper
|
||||||
// String name;
|
// .eq(LearningRecords::getUserId, userId)
|
||||||
// //添加课程名称
|
// .eq(LearningRecords::getCoursesId, coursesId)
|
||||||
// switch (learningRecords.getType()) {
|
// .eq(LearningRecords::getType, learningRecords.getType());
|
||||||
// case "4": //如果是资源学习
|
// long count = this.count(lambdaQueryWrapper);
|
||||||
// if (courseResourcesService.getById(learningRecords.getCoursesId()) != null){
|
// //System.out.println("数据库:"+count);
|
||||||
// learningRecordsVo.setCoursesName(courseResourcesService.getById(learningRecords.getCoursesId()).getName());
|
// learningRecords.setStatus("1");//将该记录的状态设置为1
|
||||||
|
// //更新观看时间
|
||||||
|
// learningRecords.setTime(LocalDateTime.now());
|
||||||
|
// //设置默认封面
|
||||||
|
// if (learningRecords.getContent() == null || learningRecords.getContent().equals("")){
|
||||||
|
// learningRecords.setContent("img/v2-c57eb7863ec4233f503176ca3f90f8d5_1440w.png");
|
||||||
// }
|
// }
|
||||||
// break;
|
// List<LearningRecords> list = query().eq("courses_id", coursesId).eq("type", learningRecords.getType()).list();
|
||||||
// case "1": //如果是课程学习记录
|
// LearningRecords one1 = query().eq("courses_id", coursesId).eq("type", learningRecords.getType()).eq("user_id", userId).one();
|
||||||
// if (coursesService.getById(learningRecords.getCoursesId()) != null){
|
// int number = list.size();
|
||||||
// learningRecordsVo.setCoursesName(coursesService.getById(learningRecords.getCoursesId()).getName());
|
// //该用户是否学习过
|
||||||
|
// if (one1 != null){//学习过观看人数不加
|
||||||
|
// learningRecords.setNumber(number);
|
||||||
|
// list.forEach(learningRecords1 -> {
|
||||||
|
// learningRecords1.setNumber(number);
|
||||||
|
// });
|
||||||
|
// } else {//否则观看人数加1
|
||||||
|
// learningRecords.setNumber(number + 1);
|
||||||
// }
|
// }
|
||||||
// break;
|
// updateBatchById(list);
|
||||||
|
// 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.getOpen() != null && one.getOpen().equals("1")){
|
||||||
|
// learningRecords.setOpen(one.getOpen());
|
||||||
|
// }
|
||||||
|
// if (one.getDownload() != null && one.getDownload().equals("1")){
|
||||||
|
// learningRecords.setDownload(one.getDownload());
|
||||||
|
// }
|
||||||
|
// this.updateById(learningRecords);
|
||||||
|
// return "修改成功";
|
||||||
// }
|
// }
|
||||||
// //添加观看人数
|
|
||||||
// //统计记录表里有多少人查看过这门资源
|
|
||||||
// long count = this.count(lambdaQueryWrapper);
|
|
||||||
// learningRecordsVo.setNumber(count);
|
|
||||||
// //把整合后该用户的学习记录添加到List里
|
|
||||||
// records.add(learningRecordsVo);
|
|
||||||
// }
|
// }
|
||||||
return records; |
//
|
||||||
} |
//
|
||||||
|
//}
|
||||||
/** |
|
||||||
* 根据用户id和学习资源id来判断记录是否存在 |
|
||||||
* @param learningRecords |
|
||||||
* @return |
|
||||||
*/ |
|
||||||
@Override |
|
||||||
@Transactional |
|
||||||
public String saveRecords(LearningRecords learningRecords) { |
|
||||||
String userId = learningRecords.getUserId(); |
|
||||||
String coursesId = learningRecords.getCoursesId(); |
|
||||||
//如果userId或者coursesId为空就抛出异常事务回滚----------------------------
|
|
||||||
if (userId == null || userId.equals("") || coursesId == null || coursesId.equals("")){ |
|
||||||
throw new BusinessException(ErrorCode.PARAMS_ERROR); |
|
||||||
} |
|
||||||
|
|
||||||
// System.out.println("学习记录:"+learningRecords);
|
|
||||||
//查找该用户是否观看过该学习资源
|
|
||||||
LambdaQueryWrapper<LearningRecords> 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.setTime(LocalDateTime.now()); |
|
||||||
//设置默认封面
|
|
||||||
if (learningRecords.getContent() == null || learningRecords.getContent().equals("")){ |
|
||||||
learningRecords.setContent("img/v2-c57eb7863ec4233f503176ca3f90f8d5_1440w.png"); |
|
||||||
} |
|
||||||
List<LearningRecords> list = query().eq("courses_id", coursesId).eq("type", learningRecords.getType()).list(); |
|
||||||
LearningRecords one1 = query().eq("courses_id", coursesId).eq("type", learningRecords.getType()).eq("user_id", userId).one(); |
|
||||||
int number = list.size(); |
|
||||||
//该用户是否学习过
|
|
||||||
if (one1 != null){//学习过观看人数不加
|
|
||||||
learningRecords.setNumber(number); |
|
||||||
list.forEach(learningRecords1 -> { |
|
||||||
learningRecords1.setNumber(number); |
|
||||||
}); |
|
||||||
} else {//否则观看人数加1
|
|
||||||
learningRecords.setNumber(number + 1); |
|
||||||
} |
|
||||||
updateBatchById(list); |
|
||||||
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.getOpen() != null && one.getOpen().equals("1")){ |
|
||||||
learningRecords.setOpen(one.getOpen()); |
|
||||||
} |
|
||||||
if (one.getDownload() != null && one.getDownload().equals("1")){ |
|
||||||
learningRecords.setDownload(one.getDownload()); |
|
||||||
} |
|
||||||
this.updateById(learningRecords); |
|
||||||
return "修改成功"; |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
} |
|
||||||
|
@ -0,0 +1,45 @@ |
|||||||
|
package com.teaching.backend.service.impl.resource; |
||||||
|
|
||||||
|
import cn.hutool.core.io.FileUtil; |
||||||
|
import com.teaching.backend.mapper.KnowGraph.ResourcesRepository; |
||||||
|
import com.teaching.backend.mapper.resource.ResourcesMapper; |
||||||
|
import com.teaching.backend.model.entity.KnowGraph.Resources; |
||||||
|
import com.teaching.backend.model.entity.resource.Resource; |
||||||
|
import com.teaching.backend.service.resource.ResourceService; |
||||||
|
import org.springframework.beans.BeanUtils; |
||||||
|
import org.springframework.web.multipart.MultipartFile; |
||||||
|
|
||||||
|
import java.io.File; |
||||||
|
import java.util.UUID; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author:youhang |
||||||
|
* @Date:2024-07-26-13:58 |
||||||
|
* @Description: |
||||||
|
*/ |
||||||
|
public class ResourceServiceImpl implements ResourceService { |
||||||
|
|
||||||
|
private static final String GLOBAL_CODE_DIR_NAME = "tempFile"; |
||||||
|
private ResourcesRepository resourcesRepository; |
||||||
|
|
||||||
|
private ResourcesMapper resourcesMapper; |
||||||
|
|
||||||
|
@Override |
||||||
|
public String upload(MultipartFile file) { |
||||||
|
String userDir = System.getProperty("user.dir"); |
||||||
|
String globalFilePathName = userDir + File.separator + GLOBAL_CODE_DIR_NAME; |
||||||
|
if (!FileUtil.exist(globalFilePathName)) { |
||||||
|
FileUtil.mkdir(globalFilePathName); |
||||||
|
} |
||||||
|
// 把用户的代码隔离存放
|
||||||
|
File userCodeFile = null; |
||||||
|
try { |
||||||
|
String userCodeParentPath = globalFilePathName + File.separator + UUID.randomUUID(); |
||||||
|
String userCodePath = userCodeParentPath + File.separator + file.getOriginalFilename(); |
||||||
|
userCodeFile = FileUtil.writeFromStream(file.getInputStream(), userCodePath); |
||||||
|
} catch (Exception e) { |
||||||
|
System.out.println("失败"); |
||||||
|
} |
||||||
|
return userCodeFile.getPath(); |
||||||
|
} |
||||||
|
} |
@ -1,108 +1,108 @@ |
|||||||
package com.teaching.backend.service.impl.thumb; |
//package com.teaching.backend.service.impl.thumb;
|
||||||
|
//
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
//import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.teaching.backend.common.BaseResponse; |
//import com.teaching.backend.common.BaseResponse;
|
||||||
import com.teaching.backend.common.ErrorCode; |
//import com.teaching.backend.common.ErrorCode;
|
||||||
import com.teaching.backend.common.ResultUtils; |
//import com.teaching.backend.common.ResultUtils;
|
||||||
import com.teaching.backend.exception.BusinessException; |
//import com.teaching.backend.exception.BusinessException;
|
||||||
import com.teaching.backend.mapper.courses.CoursesMapper; |
//import com.teaching.backend.mapper.courses.CoursesMapper;
|
||||||
import com.teaching.backend.mapper.thumb.SeCourseThumbMapper; |
//import com.teaching.backend.mapper.thumb.SeCourseThumbMapper;
|
||||||
import com.teaching.backend.model.entity.courses.Courses; |
//import com.teaching.backend.model.entity.courses.Courses;
|
||||||
import com.teaching.backend.model.entity.thumb.SeCourseThumb; |
//import com.teaching.backend.model.entity.thumb.SeCourseThumb;
|
||||||
import com.teaching.backend.model.entity.thumb.SeKnowThumb; |
//import com.teaching.backend.model.entity.thumb.SeKnowThumb;
|
||||||
import com.teaching.backend.model.entity.thumb.SeResourceThumb; |
//import com.teaching.backend.model.entity.thumb.SeResourceThumb;
|
||||||
import com.teaching.backend.service.thumb.SeCourseThumbService; |
//import com.teaching.backend.service.thumb.SeCourseThumbService;
|
||||||
import com.teaching.backend.service.thumb.SeKnowThumbService; |
//import com.teaching.backend.service.thumb.SeKnowThumbService;
|
||||||
import com.teaching.backend.service.thumb.SeResourceThumbService; |
//import com.teaching.backend.service.thumb.SeResourceThumbService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired; |
//import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service; |
//import org.springframework.stereotype.Service;
|
||||||
|
//
|
||||||
import javax.annotation.Resource; |
//import javax.annotation.Resource;
|
||||||
import java.util.concurrent.locks.Lock; |
//import java.util.concurrent.locks.Lock;
|
||||||
import java.util.concurrent.locks.ReentrantLock; |
//import java.util.concurrent.locks.ReentrantLock;
|
||||||
|
//
|
||||||
|
//
|
||||||
/** |
///**
|
||||||
* @Author:youhang |
// * @Author:youhang
|
||||||
* @Date:2024-05-30-20:23 |
// * @Date:2024-05-30-20:23
|
||||||
* @Description: |
// * @Description:
|
||||||
*/ |
// */
|
||||||
@Service |
//@Service
|
||||||
public class SeCourseThumbServiceImpl extends ServiceImpl<SeCourseThumbMapper, SeCourseThumb> implements SeCourseThumbService { |
//public class SeCourseThumbServiceImpl extends ServiceImpl<SeCourseThumbMapper, SeCourseThumb> implements SeCourseThumbService {
|
||||||
|
//
|
||||||
|
//
|
||||||
@Resource |
// @Resource
|
||||||
private SeResourceThumbService seResourceThumbService; |
// private SeResourceThumbService seResourceThumbService;
|
||||||
|
//
|
||||||
@Resource |
// @Resource
|
||||||
SeKnowThumbService seKnowThumbService; |
// SeKnowThumbService seKnowThumbService;
|
||||||
|
//
|
||||||
|
//
|
||||||
@Autowired |
// @Autowired
|
||||||
CoursesMapper coursesMapper; |
// CoursesMapper coursesMapper;
|
||||||
|
//
|
||||||
@Override |
// @Override
|
||||||
public BaseResponse<Boolean> doCourseThumb(String courseId, String userId) { |
// public BaseResponse<Boolean> doCourseThumb(String courseId, String userId) {
|
||||||
|
//
|
||||||
//从数据库中校验是否存在courseid
|
// //从数据库中校验是否存在courseid
|
||||||
Courses courses = coursesMapper.selectById(courseId); |
// Courses courses = coursesMapper.selectById(courseId);
|
||||||
boolean result = false; |
// boolean result = false;
|
||||||
if(courses == null){ |
// if(courses == null){
|
||||||
return ResultUtils.error(ErrorCode.PARAMS_COURSE_NOTEXISTS); |
// return ResultUtils.error(ErrorCode.PARAMS_COURSE_NOTEXISTS);
|
||||||
} |
// }
|
||||||
|
//
|
||||||
// 先查询数据库记录,该用户是否点赞
|
// // 先查询数据库记录,该用户是否点赞
|
||||||
SeCourseThumb seCourseThumb = new SeCourseThumb(); |
// SeCourseThumb seCourseThumb = new SeCourseThumb();
|
||||||
seCourseThumb.setCourseId(courseId); |
// seCourseThumb.setCourseId(courseId);
|
||||||
seCourseThumb.setUserId(userId); |
// seCourseThumb.setUserId(userId);
|
||||||
QueryWrapper<SeCourseThumb> thumbQueryWrapper = new QueryWrapper<>(seCourseThumb); |
// QueryWrapper<SeCourseThumb> thumbQueryWrapper = new QueryWrapper<>(seCourseThumb);
|
||||||
SeCourseThumb oldSeCourseThumb = this.getOne(thumbQueryWrapper); |
// SeCourseThumb oldSeCourseThumb = this.getOne(thumbQueryWrapper);
|
||||||
//已点赞
|
// //已点赞
|
||||||
if (oldSeCourseThumb != null) { |
// if (oldSeCourseThumb != null) {
|
||||||
// 取消点赞 删除记录
|
// // 取消点赞 删除记录
|
||||||
result = this.remove(thumbQueryWrapper); |
// result = this.remove(thumbQueryWrapper);
|
||||||
if (result) { |
// if (result) {
|
||||||
System.out.println("取消点赞成功"); |
// System.out.println("取消点赞成功");
|
||||||
return ResultUtils.success(result); |
// return ResultUtils.success(result);
|
||||||
} else { |
// } else {
|
||||||
throw new BusinessException(ErrorCode.SYSTEM_ERROR); |
// throw new BusinessException(ErrorCode.SYSTEM_ERROR);
|
||||||
} |
// }
|
||||||
} else { |
// } else {
|
||||||
// 每个用户串行点赞
|
// // 每个用户串行点赞
|
||||||
// 锁必须要包裹住事务方法
|
// // 锁必须要包裹住事务方法
|
||||||
Lock lock = new ReentrantLock(); |
// Lock lock = new ReentrantLock();
|
||||||
lock.lock(); |
// lock.lock();
|
||||||
try { |
// try {
|
||||||
result = this.save(seCourseThumb); |
// result = this.save(seCourseThumb);
|
||||||
} catch (Exception e) { |
// } catch (Exception e) {
|
||||||
throw new BusinessException(ErrorCode.OPERATION_ERROR); |
// throw new BusinessException(ErrorCode.OPERATION_ERROR);
|
||||||
} finally { |
// } finally {
|
||||||
lock.unlock(); |
// lock.unlock();
|
||||||
System.out.println("点赞成功"); |
// System.out.println("点赞成功");
|
||||||
return ResultUtils.success(result); |
// return ResultUtils.success(result);
|
||||||
} |
// }
|
||||||
} |
// }
|
||||||
} |
// }
|
||||||
|
//
|
||||||
@Override |
// @Override
|
||||||
public BaseResponse<Long> thumbCount(String courseId) { |
// public BaseResponse<Long> thumbCount(String courseId) {
|
||||||
|
//
|
||||||
//从数据库中校验是否存在courseid
|
// //从数据库中校验是否存在courseid
|
||||||
Courses courses = coursesMapper.selectById(courseId); |
// Courses courses = coursesMapper.selectById(courseId);
|
||||||
if(courses == null){ |
// if(courses == null){
|
||||||
return ResultUtils.error(ErrorCode.PARAMS_COURSE_NOTEXISTS); |
// return ResultUtils.error(ErrorCode.PARAMS_COURSE_NOTEXISTS);
|
||||||
} |
// }
|
||||||
|
//
|
||||||
QueryWrapper<SeCourseThumb> thumbQueryWrapper = new QueryWrapper<>(); |
// QueryWrapper<SeCourseThumb> thumbQueryWrapper = new QueryWrapper<>();
|
||||||
thumbQueryWrapper.eq("course_id", courseId); |
// thumbQueryWrapper.eq("course_id", courseId);
|
||||||
long count = this.count(thumbQueryWrapper); |
// long count = this.count(thumbQueryWrapper);
|
||||||
if (count == 0) { |
// if (count == 0) {
|
||||||
throw new BusinessException(ErrorCode.SYSTEM_ERROR, "查询参数不存在"); |
// throw new BusinessException(ErrorCode.SYSTEM_ERROR, "查询参数不存在");
|
||||||
} else { |
// } else {
|
||||||
return ResultUtils.success(count); |
// return ResultUtils.success(count);
|
||||||
} |
// }
|
||||||
} |
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
} |
//}
|
||||||
|
@ -1,68 +1,68 @@ |
|||||||
package com.teaching.backend.service.impl.thumb; |
//package com.teaching.backend.service.impl.thumb;
|
||||||
|
//
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
//import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.teaching.backend.common.BaseResponse; |
//import com.teaching.backend.common.BaseResponse;
|
||||||
import com.teaching.backend.common.ErrorCode; |
//import com.teaching.backend.common.ErrorCode;
|
||||||
import com.teaching.backend.common.ResultUtils; |
//import com.teaching.backend.common.ResultUtils;
|
||||||
import com.teaching.backend.exception.BusinessException; |
//import com.teaching.backend.exception.BusinessException;
|
||||||
import com.teaching.backend.mapper.courses.CoursesMapper; |
//import com.teaching.backend.mapper.courses.CoursesMapper;
|
||||||
import com.teaching.backend.mapper.thumb.SeKnowThumbMapper; |
//import com.teaching.backend.mapper.thumb.SeKnowThumbMapper;
|
||||||
import com.teaching.backend.model.entity.courses.Courses; |
//import com.teaching.backend.model.entity.courses.Courses;
|
||||||
import com.teaching.backend.model.entity.thumb.SeKnowThumb; |
//import com.teaching.backend.model.entity.thumb.SeKnowThumb;
|
||||||
import com.teaching.backend.service.thumb.SeKnowThumbService; |
//import com.teaching.backend.service.thumb.SeKnowThumbService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired; |
//import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service; |
//import org.springframework.stereotype.Service;
|
||||||
|
//
|
||||||
import java.util.concurrent.locks.Lock; |
//import java.util.concurrent.locks.Lock;
|
||||||
import java.util.concurrent.locks.ReentrantLock; |
//import java.util.concurrent.locks.ReentrantLock;
|
||||||
|
//
|
||||||
|
//
|
||||||
/** |
///**
|
||||||
* @Author:youhang |
// * @Author:youhang
|
||||||
* @Date:2024-05-30-20:23 |
// * @Date:2024-05-30-20:23
|
||||||
* @Description: |
// * @Description:
|
||||||
*/ |
// */
|
||||||
@Service |
//@Service
|
||||||
public class SeKnowThumbServiceImpl extends ServiceImpl<SeKnowThumbMapper, SeKnowThumb> implements SeKnowThumbService { |
//public class SeKnowThumbServiceImpl extends ServiceImpl<SeKnowThumbMapper, SeKnowThumb> implements SeKnowThumbService {
|
||||||
@Autowired |
// @Autowired
|
||||||
CoursesMapper coursesMapper; |
// CoursesMapper coursesMapper;
|
||||||
@Override |
// @Override
|
||||||
public BaseResponse<Boolean> doKnowThumb(Integer knowId, String userId) { |
// public BaseResponse<Boolean> doKnowThumb(Integer knowId, String userId) {
|
||||||
boolean result = false; |
// boolean result = false;
|
||||||
// todo 查询知识点
|
// // todo 查询知识点
|
||||||
// 先查询数据库记录,该用户是否点赞
|
// // 先查询数据库记录,该用户是否点赞
|
||||||
SeKnowThumb seKnowThumb = new SeKnowThumb(); |
// SeKnowThumb seKnowThumb = new SeKnowThumb();
|
||||||
seKnowThumb.setKnowId(knowId); |
// seKnowThumb.setKnowId(knowId);
|
||||||
seKnowThumb.setUserId(userId); |
// seKnowThumb.setUserId(userId);
|
||||||
QueryWrapper<SeKnowThumb> thumbQueryWrapper = new QueryWrapper<>(seKnowThumb); |
// QueryWrapper<SeKnowThumb> thumbQueryWrapper = new QueryWrapper<>(seKnowThumb);
|
||||||
SeKnowThumb oldSeKnowThumb = this.getOne(thumbQueryWrapper); |
// SeKnowThumb oldSeKnowThumb = this.getOne(thumbQueryWrapper);
|
||||||
//已点赞
|
// //已点赞
|
||||||
if (oldSeKnowThumb != null) { |
// if (oldSeKnowThumb != null) {
|
||||||
// 取消点赞 删除记录
|
// // 取消点赞 删除记录
|
||||||
result = this.remove(thumbQueryWrapper); |
// result = this.remove(thumbQueryWrapper);
|
||||||
if (result) { |
// if (result) {
|
||||||
System.out.println("取消点赞成功"); |
// System.out.println("取消点赞成功");
|
||||||
return ResultUtils.success(result); |
// return ResultUtils.success(result);
|
||||||
} else { |
// } else {
|
||||||
throw new BusinessException(ErrorCode.SYSTEM_ERROR); |
// throw new BusinessException(ErrorCode.SYSTEM_ERROR);
|
||||||
} |
// }
|
||||||
} else { |
// } else {
|
||||||
// 每个用户串行点赞
|
// // 每个用户串行点赞
|
||||||
// 锁必须要包裹住事务方法
|
// // 锁必须要包裹住事务方法
|
||||||
Lock lock = new ReentrantLock(); |
// Lock lock = new ReentrantLock();
|
||||||
lock.lock(); |
// lock.lock();
|
||||||
try { |
// try {
|
||||||
result = this.save(seKnowThumb); |
// result = this.save(seKnowThumb);
|
||||||
} catch (Exception e) { |
// } catch (Exception e) {
|
||||||
throw new BusinessException(ErrorCode.OPERATION_ERROR); |
// throw new BusinessException(ErrorCode.OPERATION_ERROR);
|
||||||
} finally { |
// } finally {
|
||||||
lock.unlock(); |
// lock.unlock();
|
||||||
System.out.println("点赞成功"); |
// System.out.println("点赞成功");
|
||||||
return ResultUtils.success(result); |
// return ResultUtils.success(result);
|
||||||
} |
// }
|
||||||
} |
// }
|
||||||
} |
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
} |
//}
|
||||||
|
@ -1,82 +1,80 @@ |
|||||||
package com.teaching.backend.service.impl.thumb; |
//package com.teaching.backend.service.impl.thumb;
|
||||||
|
//
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
//import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.teaching.backend.common.BaseResponse; |
//import com.teaching.backend.common.BaseResponse;
|
||||||
import com.teaching.backend.common.ErrorCode; |
//import com.teaching.backend.common.ErrorCode;
|
||||||
import com.teaching.backend.common.ResultUtils; |
//import com.teaching.backend.common.ResultUtils;
|
||||||
import com.teaching.backend.exception.BusinessException; |
//import com.teaching.backend.exception.BusinessException;
|
||||||
import com.teaching.backend.mapper.courses.CoursesMapper; |
//import com.teaching.backend.mapper.courses.CoursesMapper;
|
||||||
import com.teaching.backend.mapper.resource.CourseResourcesMapper; |
//import com.teaching.backend.mapper.resource.CourseResourcesMapper;
|
||||||
import com.teaching.backend.mapper.thumb.SeResourceThumbMapper; |
//import com.teaching.backend.mapper.thumb.SeResourceThumbMapper;
|
||||||
import com.teaching.backend.model.entity.CourseResources; |
//import com.teaching.backend.model.entity.resource.CourseResources;
|
||||||
import com.teaching.backend.model.entity.courses.Courses; |
//import com.teaching.backend.model.entity.thumb.SeResourceThumb;
|
||||||
import com.teaching.backend.model.entity.thumb.SeResourceThumb; |
//import com.teaching.backend.service.thumb.SeResourceThumbService;
|
||||||
import com.teaching.backend.service.thumb.SeResourceThumbService; |
//import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import io.swagger.models.auth.In; |
//import org.springframework.stereotype.Service;
|
||||||
import org.springframework.beans.factory.annotation.Autowired; |
//
|
||||||
import org.springframework.stereotype.Service; |
//import java.util.concurrent.locks.Lock;
|
||||||
|
//import java.util.concurrent.locks.ReentrantLock;
|
||||||
import java.util.concurrent.locks.Lock; |
//
|
||||||
import java.util.concurrent.locks.ReentrantLock; |
//
|
||||||
|
///**
|
||||||
|
// * @Author:youhang
|
||||||
/** |
// * @Date:2024-05-30-20:23
|
||||||
* @Author:youhang |
// * @Description:
|
||||||
* @Date:2024-05-30-20:23 |
// */
|
||||||
* @Description: |
//@Service
|
||||||
*/ |
//public class SeResourceThumbServiceImpl extends ServiceImpl<SeResourceThumbMapper, SeResourceThumb> implements SeResourceThumbService {
|
||||||
@Service |
//
|
||||||
public class SeResourceThumbServiceImpl extends ServiceImpl<SeResourceThumbMapper, SeResourceThumb> implements SeResourceThumbService { |
// @Autowired
|
||||||
|
// CoursesMapper coursesMapper;
|
||||||
@Autowired |
//
|
||||||
CoursesMapper coursesMapper; |
//
|
||||||
|
// @Autowired
|
||||||
|
// private Reso courseResourcesMapper;
|
||||||
@Autowired |
//
|
||||||
private CourseResourcesMapper courseResourcesMapper; |
// @Override
|
||||||
|
// public BaseResponse<Boolean> doResourceThumb(Integer resourceId, String userId) {
|
||||||
@Override |
// boolean result = false;
|
||||||
public BaseResponse<Boolean> doResourceThumb(Integer resourceId, String userId) { |
// //查询是否有资源
|
||||||
boolean result = false; |
// CourseResources courseResources = courseResourcesMapper.selectById(resourceId);
|
||||||
//查询是否有资源
|
// if(courseResources == null){
|
||||||
CourseResources courseResources = courseResourcesMapper.selectById(resourceId); |
// throw new BusinessException(ErrorCode.PARAMS_RESOURCE_NOTEXISTS);
|
||||||
if(courseResources == null){ |
// }
|
||||||
throw new BusinessException(ErrorCode.PARAMS_RESOURCE_NOTEXISTS); |
// // 先查询数据库记录,该用户是否点赞
|
||||||
} |
// SeResourceThumb seResourceThumb = new SeResourceThumb();
|
||||||
// 先查询数据库记录,该用户是否点赞
|
// seResourceThumb.setResourceId(resourceId);
|
||||||
SeResourceThumb seResourceThumb = new SeResourceThumb(); |
// seResourceThumb.setUserId(userId);
|
||||||
seResourceThumb.setResourceId(resourceId); |
// QueryWrapper<SeResourceThumb> thumbQueryWrapper = new QueryWrapper<>(seResourceThumb);
|
||||||
seResourceThumb.setUserId(userId); |
// SeResourceThumb oldSeResourceThumb = this.getOne(thumbQueryWrapper);
|
||||||
QueryWrapper<SeResourceThumb> thumbQueryWrapper = new QueryWrapper<>(seResourceThumb); |
//
|
||||||
SeResourceThumb oldSeResourceThumb = this.getOne(thumbQueryWrapper); |
// //已点赞
|
||||||
|
// if (oldSeResourceThumb != null) {
|
||||||
//已点赞
|
// // 取消点赞 删除记录
|
||||||
if (oldSeResourceThumb != null) { |
// result = this.remove(thumbQueryWrapper);
|
||||||
// 取消点赞 删除记录
|
// if (result) {
|
||||||
result = this.remove(thumbQueryWrapper); |
// System.out.println("取消点赞成功");
|
||||||
if (result) { |
// return ResultUtils.success(result);
|
||||||
System.out.println("取消点赞成功"); |
// } else {
|
||||||
return ResultUtils.success(result); |
// throw new BusinessException(ErrorCode.SYSTEM_ERROR);
|
||||||
} else { |
// }
|
||||||
throw new BusinessException(ErrorCode.SYSTEM_ERROR); |
// } else {
|
||||||
} |
// // 每个用户串行点赞
|
||||||
} else { |
// // 锁必须要包裹住事务方法
|
||||||
// 每个用户串行点赞
|
// Lock lock = new ReentrantLock();
|
||||||
// 锁必须要包裹住事务方法
|
// lock.lock();
|
||||||
Lock lock = new ReentrantLock(); |
// try {
|
||||||
lock.lock(); |
// result = this.save(seResourceThumb);
|
||||||
try { |
// } catch (Exception e) {
|
||||||
result = this.save(seResourceThumb); |
// throw new BusinessException(ErrorCode.OPERATION_ERROR);
|
||||||
} catch (Exception e) { |
// } finally {
|
||||||
throw new BusinessException(ErrorCode.OPERATION_ERROR); |
// lock.unlock();
|
||||||
} finally { |
// System.out.println("点赞成功");
|
||||||
lock.unlock(); |
// return ResultUtils.success(result);
|
||||||
System.out.println("点赞成功"); |
// }
|
||||||
return ResultUtils.success(result); |
// }
|
||||||
} |
// }
|
||||||
} |
//
|
||||||
} |
//
|
||||||
|
//}
|
||||||
|
|
||||||
} |
|
||||||
|
@ -1,35 +0,0 @@ |
|||||||
package com.teaching.backend.service.resource; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|
||||||
import com.baomidou.mybatisplus.extension.service.IService; |
|
||||||
import com.teaching.backend.model.entity.CourseResources; |
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse; |
|
||||||
import java.io.IOException; |
|
||||||
import java.util.List; |
|
||||||
|
|
||||||
/** |
|
||||||
* ClassName: FileTableService |
|
||||||
* Package: com.teaching.backend.service |
|
||||||
* Description: |
|
||||||
* |
|
||||||
* @Author 姜钧瀚 |
|
||||||
* @Create 2024/6/4 11:49 |
|
||||||
* @Version 1.0 |
|
||||||
*/ |
|
||||||
public interface CourseResourcesService extends IService<CourseResources> { |
|
||||||
void updateFile(Integer type, String fileName, String filePath); |
|
||||||
|
|
||||||
void download(String id, String path, HttpServletResponse response, String endpoint, String accessKeyId, String accessKeySecret, String bucketName) throws IOException; |
|
||||||
|
|
||||||
|
|
||||||
Page<CourseResources> getresourceRecords(Integer type, List<Integer> resourceIdList, int page, int pageSize); |
|
||||||
|
|
||||||
|
|
||||||
public List<CourseResources> getByType(String type); |
|
||||||
public void removeCourseResources(List<Long> ids); |
|
||||||
|
|
||||||
public void saveCourseResource(CourseResources courseResources); |
|
||||||
|
|
||||||
public void editCourseResource(String resourceId); |
|
||||||
} |
|
@ -0,0 +1,17 @@ |
|||||||
|
package com.teaching.backend.service.resource; |
||||||
|
|
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
import org.springframework.web.multipart.MultipartFile; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Author:youhang |
||||||
|
* @Date:2024-07-26-13:55 |
||||||
|
* @Description: |
||||||
|
*/ |
||||||
|
@Service |
||||||
|
public interface ResourceService { |
||||||
|
|
||||||
|
public String upload(MultipartFile file); |
||||||
|
|
||||||
|
|
||||||
|
} |
@ -1,25 +0,0 @@ |
|||||||
package com.teaching.backend.service.resource; |
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService; |
|
||||||
import com.teaching.backend.model.entity.CourseResources; |
|
||||||
import com.teaching.backend.model.entity.ResourceRelationship; |
|
||||||
|
|
||||||
import java.util.List; |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* ClassName: ResourcesRelationshipService |
|
||||||
* Package: com.teaching.backend.service |
|
||||||
* Description: |
|
||||||
* |
|
||||||
* @Author 姜钧瀚 |
|
||||||
* @Create 2024/6/12 21:04 |
|
||||||
* @Version 1.0 |
|
||||||
*/ |
|
||||||
public interface ResourcesRelationshipService extends IService<ResourceRelationship> { |
|
||||||
|
|
||||||
|
|
||||||
List<CourseResources> getResource(String id); |
|
||||||
|
|
||||||
List<CourseResources> getResource2(String id, Integer type); |
|
||||||
} |
|
@ -1,33 +1,33 @@ |
|||||||
package com.teaching.backend.service.thumb; |
//package com.teaching.backend.service.thumb;
|
||||||
|
//
|
||||||
import com.baomidou.mybatisplus.extension.service.IService; |
//import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.teaching.backend.common.BaseResponse; |
//import com.teaching.backend.common.BaseResponse;
|
||||||
import com.teaching.backend.model.entity.thumb.SeCourseThumb; |
//import com.teaching.backend.model.entity.thumb.SeCourseThumb;
|
||||||
|
//
|
||||||
/** |
///**
|
||||||
* @Author:youhang |
// * @Author:youhang
|
||||||
* @Date:2024-05-30-20:22 |
// * @Date:2024-05-30-20:22
|
||||||
* @Description: |
// * @Description:
|
||||||
*/ |
// */
|
||||||
public interface SeCourseThumbService extends IService<SeCourseThumb> { |
//public interface SeCourseThumbService extends IService<SeCourseThumb> {
|
||||||
|
//
|
||||||
/** |
// /**
|
||||||
* 点赞 |
// * 点赞
|
||||||
* |
// *
|
||||||
* @param courseId |
// * @param courseId
|
||||||
* @param userId |
// * @param userId
|
||||||
* @return |
// * @return
|
||||||
*/ |
// */
|
||||||
BaseResponse<Boolean> doCourseThumb(String courseId, String userId); |
// BaseResponse<Boolean> doCourseThumb(String courseId, String userId);
|
||||||
|
//
|
||||||
|
//
|
||||||
/** |
// /**
|
||||||
* 点赞总数 |
// * 点赞总数
|
||||||
* |
// *
|
||||||
* @param courseId |
// * @param courseId
|
||||||
* @return |
// * @return
|
||||||
*/ |
// */
|
||||||
BaseResponse<Long> thumbCount(String courseId); |
// BaseResponse<Long> thumbCount(String courseId);
|
||||||
|
//
|
||||||
|
//
|
||||||
} |
//}
|
||||||
|
@ -1,23 +1,23 @@ |
|||||||
package com.teaching.backend.service.thumb; |
//package com.teaching.backend.service.thumb;
|
||||||
|
//
|
||||||
import com.baomidou.mybatisplus.extension.service.IService; |
//import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.teaching.backend.common.BaseResponse; |
//import com.teaching.backend.common.BaseResponse;
|
||||||
import com.teaching.backend.model.entity.thumb.SeKnowThumb; |
//import com.teaching.backend.model.entity.thumb.SeKnowThumb;
|
||||||
import io.swagger.models.auth.In; |
//import io.swagger.models.auth.In;
|
||||||
|
//
|
||||||
/** |
///**
|
||||||
* @Author:youhang |
// * @Author:youhang
|
||||||
* @Date:2024-05-30-20:22 |
// * @Date:2024-05-30-20:22
|
||||||
* @Description: |
// * @Description:
|
||||||
*/ |
// */
|
||||||
public interface SeKnowThumbService extends IService<SeKnowThumb> { |
//public interface SeKnowThumbService extends IService<SeKnowThumb> {
|
||||||
|
//
|
||||||
/** |
// /**
|
||||||
* 点赞 |
// * 点赞
|
||||||
* |
// *
|
||||||
|
//
|
||||||
* @return |
// * @return
|
||||||
*/ |
// */
|
||||||
BaseResponse<Boolean> doKnowThumb(Integer knowId, String userId); |
// BaseResponse<Boolean> doKnowThumb(Integer knowId, String userId);
|
||||||
|
//
|
||||||
} |
//}
|
||||||
|
@ -1,22 +1,22 @@ |
|||||||
package com.teaching.backend.service.thumb; |
//package com.teaching.backend.service.thumb;
|
||||||
|
//
|
||||||
import com.baomidou.mybatisplus.extension.service.IService; |
//import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.teaching.backend.common.BaseResponse; |
//import com.teaching.backend.common.BaseResponse;
|
||||||
import com.teaching.backend.model.entity.thumb.SeResourceThumb; |
//import com.teaching.backend.model.entity.thumb.SeResourceThumb;
|
||||||
|
//
|
||||||
/** |
///**
|
||||||
* @Author:youhang |
// * @Author:youhang
|
||||||
* @Date:2024-05-30-20:22 |
// * @Date:2024-05-30-20:22
|
||||||
* @Description: |
// * @Description:
|
||||||
*/ |
// */
|
||||||
public interface SeResourceThumbService extends IService<SeResourceThumb> { |
//public interface SeResourceThumbService extends IService<SeResourceThumb> {
|
||||||
|
//
|
||||||
/** |
// /**
|
||||||
* 点赞 |
// * 点赞
|
||||||
* |
// *
|
||||||
* @param userId |
// * @param userId
|
||||||
* @return |
// * @return
|
||||||
*/ |
// */
|
||||||
BaseResponse<Boolean> doResourceThumb(Integer resourceId, String userId); |
// BaseResponse<Boolean> doResourceThumb(Integer resourceId, String userId);
|
||||||
|
//
|
||||||
} |
//}
|
||||||
|
Loading…
Reference in new issue