From a0a8fa1ca7a61f596b2a07efbd849d1cbf6b82b0 Mon Sep 17 00:00:00 2001 From: youahng <2998465706@qq.com> Date: Thu, 13 Jun 2024 14:04:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=88=E5=B9=B6=E6=89=80=E6=9C=89=E8=A1=A8?= =?UTF-8?q?=204.0=20-yhhs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../favour/SeCourseFavourController.java | 251 ++++++-------- .../favour/SeKnowFavourController.java | 97 +++--- .../favour/SeResourceFavourController.java | 99 +++--- .../thumb/SeCourseThumbController.java | 170 +++++---- .../thumb/SeKnowThumbController.java | 96 +++-- .../thumb/SeResourceThumbController.java | 96 +++-- .../service/favour/SeCourseFavourService.java | 134 ++++--- .../service/favour/SeKnowFavourService.java | 45 +-- .../favour/SeResourceFavourService.java | 45 +-- .../favour/SeCourseFavourServiceImpl.java | 327 +++++++++--------- .../impl/favour/SeKnowFavourServiceImpl.java | 141 ++++---- .../favour/SeResourceFavourServiceImpl.java | 145 ++++---- .../impl/thumb/SeCourseThumbServiceImpl.java | 236 +++++++------ .../impl/thumb/SeKnowThumbServiceImpl.java | 137 ++++---- .../thumb/SeResourceThumbServiceImpl.java | 141 ++++---- .../service/thumb/SeCourseThumbService.java | 81 ++--- .../service/thumb/SeKnowThumbService.java | 45 +-- .../service/thumb/SeResourceThumbService.java | 45 +-- src/main/resources/application.yml | 6 +- 19 files changed, 1191 insertions(+), 1146 deletions(-) diff --git a/src/main/java/com/teaching/backend/controller/favour/SeCourseFavourController.java b/src/main/java/com/teaching/backend/controller/favour/SeCourseFavourController.java index ea2ef1d..0dc2e77 100644 --- a/src/main/java/com/teaching/backend/controller/favour/SeCourseFavourController.java +++ b/src/main/java/com/teaching/backend/controller/favour/SeCourseFavourController.java @@ -1,138 +1,113 @@ -package com.teaching.backend.controller.favour; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.teaching.backend.common.BaseResponse; -import com.teaching.backend.common.ErrorCode; -import com.teaching.backend.common.ResultUtils; -import com.teaching.backend.exception.BusinessException; - - -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.CourseFavourListRequest; -import com.teaching.backend.model.dto.favour.courseFavour.CourseFavourQueryRequest; -import com.teaching.backend.model.entity.courses.Courses; -import com.teaching.backend.model.entity.favour.SeCourseFavour; -import com.teaching.backend.model.vo.CoursesVO; -import com.teaching.backend.model.vo.favour.CourseFavourDetailVO; -import com.teaching.backend.service.courses.ICoursesService; -import com.teaching.backend.service.favour.SeCourseFavourService; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import javax.annotation.Resource; -import java.util.List; - -/** - * @Author:youhang - * @Date:2024-05-30-20:22 - * @Description: - */ -@RestController -@RequestMapping("/course_favour") -@Slf4j -public class SeCourseFavourController { - - @Resource - private SeCourseFavourService seCourseFavourService; - - - /** - * 点赞 - * - * @param courseFavourAddRequest - * @return result 执行情况 - */ - @PostMapping("/add") - // todo 后期加上 HttpServletRequest request 在一个fitter里面进行鉴权操作 - public BaseResponse doFavour(@RequestBody CourseFavourAddRequest courseFavourAddRequest) { - System.out.println(courseFavourAddRequest); - if (StringUtils.isAnyBlank(courseFavourAddRequest.getCourseId(), courseFavourAddRequest.getUserId())) { - throw new BusinessException(ErrorCode.PARAMS_ERROR); - } - // todo 从数据库中校验是否存在courseid , userid - Boolean result = seCourseFavourService.doCourseFavour(courseFavourAddRequest.getCourseId(), courseFavourAddRequest.getUserId()); - return ResultUtils.success(result); - } - - - /** - * 课程点赞总数 - * - * @param courseFavourAddRequest - * @return result 课程点赞总数 - */ - @PostMapping("/count") - // todo 后期加上 HttpServletRequest request 在一个fitter里面进行鉴权操作 - public BaseResponse favourCount(@RequestBody CourseFavourAddRequest courseFavourAddRequest) { - if (StringUtils.isAnyBlank(courseFavourAddRequest.getCourseId())) { - throw new BusinessException(ErrorCode.PARAMS_ERROR, "请求参数不能为空"); - } - // todo 从数据库中校验是否存在courseid - - Long result = seCourseFavourService.favourCount(courseFavourAddRequest.getCourseId()); - return ResultUtils.success(result); - } - - /** - * 课程下资源和知识点点赞总数 - * - * @param courseFavourAllRequest - * @return result 课程下资源和知识点点赞总数 - */ - @PostMapping("/countAll") - // todo 后期加上 HttpServletRequest request 在一个fitter里面进行鉴权操作 - public BaseResponse courseCount(@RequestBody CourseFavourAllRequest courseFavourAllRequest) { - if (StringUtils.isAnyBlank(courseFavourAllRequest.getCourseId())) { - throw new BusinessException(ErrorCode.PARAMS_ERROR, "请求参数不能为空"); - } - // todo 从数据库中校验是否存在courseid - - Long result = seCourseFavourService.courseCount(courseFavourAllRequest.getCourseId()); - return ResultUtils.success(result); - } - - /** - * 某个用户课程列表 - * - * @param courseFavourListRequest - * @return result 某个用户课程列表 - */ - @PostMapping("/countList") - // todo 后期加上 HttpServletRequest request 在一个fitter里面进行鉴权操作 - public BaseResponse> courseList(@RequestBody CourseFavourListRequest courseFavourListRequest) { - if (StringUtils.isAnyBlank(courseFavourListRequest.getUserId())) { - throw new BusinessException(ErrorCode.PARAMS_ERROR, "请求参数-用户id不能为空"); - } - // todo 从数据库中校验是否存在userid - List result = seCourseFavourService.courseList(courseFavourListRequest.getUserId()); - return ResultUtils.success(result); - } - - /** - * 分页获取列表(仅管理员) - * - * @return - */ - @PostMapping("/list/page") - public BaseResponse> listPostByPage(@RequestBody CourseFavourQueryRequest courseFavourQueryRequest) { - long current = courseFavourQueryRequest.getCurrent(); - long size = courseFavourQueryRequest.getPageSize(); - String userId = courseFavourQueryRequest.getUserId(); - List ids = seCourseFavourService.courseList(userId); - QueryWrapper courseQueryWrapper = new QueryWrapper<>(); - courseQueryWrapper.in("id", ids); - Page courseFavourDetailVOPage = seCourseFavourService.listCourseFavourByPage(new Page<>(current, size), courseQueryWrapper); - - return ResultUtils.success(courseFavourDetailVOPage); - } - - -} +package com.teaching.backend.controller.favour; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.teaching.backend.common.BaseResponse; +import com.teaching.backend.common.ErrorCode; +import com.teaching.backend.common.ResultUtils; +import com.teaching.backend.exception.BusinessException; +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.CourseFavourQueryRequest; +import com.teaching.backend.model.entity.courses.Courses; +import com.teaching.backend.model.vo.favour.CourseFavourDetailVO; +import com.teaching.backend.service.favour.SeCourseFavourService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author:youhang + * @Date:2024-05-30-20:22 + * @Description: + */ +@RestController +@RequestMapping("/course_favour") +@Slf4j +public class SeCourseFavourController { + + @Resource + private SeCourseFavourService seCourseFavourService; + + + + /** + * 收藏/取消收藏 + * + * @param courseFavourAddRequest + * @return result 执行情况 + */ + @PostMapping("/add") + // 加上 HttpServletRequest request 在一个fitter里面进行鉴权操作 + public BaseResponse doFavour(@RequestBody CourseFavourAddRequest courseFavourAddRequest) { + System.out.println(courseFavourAddRequest); + //判断字段是否为空 + if (StringUtils.isAnyBlank(courseFavourAddRequest.getCourseId(), courseFavourAddRequest.getUserId())) { + throw new BusinessException(ErrorCode.PARAMS_ERROR); + } + + return seCourseFavourService.doCourseFavour(courseFavourAddRequest.getCourseId(), courseFavourAddRequest.getUserId()); + + } + + + /** + * 课程点赞总数 + * + * @param courseFavourAddRequest + * @return result 课程点赞总数 + */ + @PostMapping("/count") + // HttpServletRequest request 在一个fitter里面进行鉴权操作 + public BaseResponse favourCount(@RequestBody CourseFavourAddRequest courseFavourAddRequest) { + if (StringUtils.isAnyBlank(courseFavourAddRequest.getCourseId())) { + throw new BusinessException(ErrorCode.PARAMS_ERROR, "请求参数不能为空"); + } + return seCourseFavourService.favourCount(courseFavourAddRequest.getCourseId()); + } + + /** + * 课程下资源和知识点点赞总数 + * + * @param courseFavourAllRequest + * @return result 课程下资源和知识点点赞总数 + */ + @PostMapping("/countAll") + // todo 后期加上 HttpServletRequest request 在一个fitter里面进行鉴权操作 + public BaseResponse courseCount(@RequestBody CourseFavourAllRequest courseFavourAllRequest) { + if (StringUtils.isAnyBlank(courseFavourAllRequest.getCourseId())) { + throw new BusinessException(ErrorCode.PARAMS_ERROR, "请求参数不能为空"); + } + // todo 从数据库中校验是否存在courseid + + return seCourseFavourService.courseCount(courseFavourAllRequest.getCourseId()); + } + + + + /** + * 分页获取课程列表 + * + * @return + */ + @PostMapping("/list/page") + public BaseResponse> listPostByPage(@RequestBody CourseFavourQueryRequest courseFavourQueryRequest) { + long current = courseFavourQueryRequest.getCurrent(); + long size = courseFavourQueryRequest.getPageSize(); + String userId = courseFavourQueryRequest.getUserId(); + List ids = seCourseFavourService.courseList(userId); + QueryWrapper courseQueryWrapper = new QueryWrapper<>(); + courseQueryWrapper.in("id", ids); + Page courseFavourDetailVOPage = seCourseFavourService.listCourseFavourByPage(new Page<>(current, size), courseQueryWrapper); + + return ResultUtils.success(courseFavourDetailVOPage); + } + + +} diff --git a/src/main/java/com/teaching/backend/controller/favour/SeKnowFavourController.java b/src/main/java/com/teaching/backend/controller/favour/SeKnowFavourController.java index 755b4d6..27e6980 100644 --- a/src/main/java/com/teaching/backend/controller/favour/SeKnowFavourController.java +++ b/src/main/java/com/teaching/backend/controller/favour/SeKnowFavourController.java @@ -1,50 +1,47 @@ -package com.teaching.backend.controller.favour; - -import com.teaching.backend.common.BaseResponse; -import com.teaching.backend.common.ErrorCode; -import com.teaching.backend.common.ResultUtils; -import com.teaching.backend.exception.BusinessException; - -import com.teaching.backend.model.dto.favour.knowFavour.KnowFavourAddRequest; -import com.teaching.backend.service.favour.SeKnowFavourService; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import javax.annotation.Resource; - -/** - * @Author:youhang - * @Date:2024-05-30-20:22 - * @Description: - */ -@RestController -@RequestMapping("/know_favour") -@Slf4j -public class SeKnowFavourController { - - @Resource - private SeKnowFavourService seKnowFavourService; - - - /** - * 点赞 - * - * @param knowFavourAddRequest - * @return result 执行情况 - */ - @PostMapping("/add") - // todo 后期加上 HttpServletRequest request 在一个fitter里面进行鉴权操作 - public BaseResponse doFavour(@RequestBody KnowFavourAddRequest knowFavourAddRequest) { - if (StringUtils.isAnyBlank(knowFavourAddRequest.getCourseId(), knowFavourAddRequest.getKnowId(), knowFavourAddRequest.getUserId())) { - throw new BusinessException(ErrorCode.PARAMS_ERROR); - } - // todo 从数据库中校验是否存在knowid , userid ,courseid - Boolean result = seKnowFavourService.doKnowFavour(knowFavourAddRequest.getCourseId(), knowFavourAddRequest.getKnowId(), knowFavourAddRequest.getUserId()); - return ResultUtils.success(result); - } - -} +package com.teaching.backend.controller.favour; + +import com.teaching.backend.common.BaseResponse; +import com.teaching.backend.common.ErrorCode; +import com.teaching.backend.exception.BusinessException; +import com.teaching.backend.model.dto.favour.knowFavour.KnowFavourAddRequest; +import com.teaching.backend.service.favour.SeKnowFavourService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * @Author:youhang + * @Date:2024-05-30-20:22 + * @Description: + */ +@RestController +@RequestMapping("/know_favour") +@Slf4j +public class SeKnowFavourController { + + @Resource + private SeKnowFavourService seKnowFavourService; + + + /** + * 知识点收藏 + * + * @param knowFavourAddRequest + * @return result 执行情况 + */ + @PostMapping("/add") + // 加上 HttpServletRequest request 在一个fitter里面进行鉴权操作 + public BaseResponse doFavour(@RequestBody KnowFavourAddRequest knowFavourAddRequest) { + if (StringUtils.isAnyBlank(knowFavourAddRequest.getCourseId(), knowFavourAddRequest.getKnowId(), knowFavourAddRequest.getUserId())) { + throw new BusinessException(ErrorCode.PARAMS_ERROR); + } + return seKnowFavourService.doKnowFavour(knowFavourAddRequest.getCourseId(), knowFavourAddRequest.getKnowId(), knowFavourAddRequest.getUserId()); + + } + +} diff --git a/src/main/java/com/teaching/backend/controller/favour/SeResourceFavourController.java b/src/main/java/com/teaching/backend/controller/favour/SeResourceFavourController.java index a9f0afa..22e55b7 100644 --- a/src/main/java/com/teaching/backend/controller/favour/SeResourceFavourController.java +++ b/src/main/java/com/teaching/backend/controller/favour/SeResourceFavourController.java @@ -1,51 +1,48 @@ -package com.teaching.backend.controller.favour; - -import com.teaching.backend.common.BaseResponse; -import com.teaching.backend.common.ErrorCode; -import com.teaching.backend.common.ResultUtils; -import com.teaching.backend.exception.BusinessException; - -import com.teaching.backend.model.dto.favour.resourceFavour.ResourceFavourAddRequest; -import com.teaching.backend.service.favour.SeResourceFavourService; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import javax.annotation.Resource; - -/** - * @Author:youhang - * @Date:2024-05-30-20:22 - * @Description: - */ -@RestController -@RequestMapping("/resource_favour") -@Slf4j -public class SeResourceFavourController { - - @Resource - private SeResourceFavourService seResourceFavourService; - - - /** - * 收藏 - * - * @param resourceFavourAddRequest - * @return result 执行情况 - */ - @PostMapping("/add") - // todo 后期加上 HttpServletRequest request 在一个fitter里面进行鉴权操作 - public BaseResponse doFavour(@RequestBody ResourceFavourAddRequest resourceFavourAddRequest) { - if (StringUtils.isAnyBlank(resourceFavourAddRequest.getCourseId(), resourceFavourAddRequest.getResourceId(), resourceFavourAddRequest.getUserId())) { - throw new BusinessException(ErrorCode.PARAMS_ERROR); - } - // todo 从数据库中校验是否存在resourceid , userid ,courseid - Boolean result = seResourceFavourService.doResourceFavour(resourceFavourAddRequest.getCourseId(), resourceFavourAddRequest.getResourceId(), resourceFavourAddRequest.getUserId()); - return ResultUtils.success(result); - } - - -} +package com.teaching.backend.controller.favour; + +import com.teaching.backend.common.BaseResponse; +import com.teaching.backend.common.ErrorCode; +import com.teaching.backend.exception.BusinessException; +import com.teaching.backend.model.dto.favour.resourceFavour.ResourceFavourAddRequest; +import com.teaching.backend.service.favour.SeResourceFavourService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * @Author:youhang + * @Date:2024-05-30-20:22 + * @Description: + */ +@RestController +@RequestMapping("/resource_favour") +@Slf4j +public class SeResourceFavourController { + + @Resource + private SeResourceFavourService seResourceFavourService; + + + /** + * 资源收藏 + * + * @param resourceFavourAddRequest + * @return result 执行情况 + */ + @PostMapping("/add") + // 加上 HttpServletRequest request 在一个fitter里面进行鉴权操作 + public BaseResponse doFavour(@RequestBody ResourceFavourAddRequest resourceFavourAddRequest) { + if (StringUtils.isAnyBlank(resourceFavourAddRequest.getCourseId(), resourceFavourAddRequest.getResourceId(), resourceFavourAddRequest.getUserId())) { + throw new BusinessException(ErrorCode.PARAMS_ERROR); + } + + return seResourceFavourService.doResourceFavour(resourceFavourAddRequest.getCourseId(), resourceFavourAddRequest.getResourceId(), resourceFavourAddRequest.getUserId()); + } + + +} diff --git a/src/main/java/com/teaching/backend/controller/thumb/SeCourseThumbController.java b/src/main/java/com/teaching/backend/controller/thumb/SeCourseThumbController.java index 14368f7..15e2df3 100644 --- a/src/main/java/com/teaching/backend/controller/thumb/SeCourseThumbController.java +++ b/src/main/java/com/teaching/backend/controller/thumb/SeCourseThumbController.java @@ -1,87 +1,83 @@ -package com.teaching.backend.controller.thumb; - -import com.teaching.backend.common.BaseResponse; -import com.teaching.backend.common.ErrorCode; -import com.teaching.backend.common.ResultUtils; -import com.teaching.backend.exception.BusinessException; -import com.teaching.backend.model.dto.thumb.coursethumb.CourseThumbAddRequest; -import com.teaching.backend.model.dto.thumb.coursethumb.CourseThumbAllRequest; -import com.teaching.backend.service.thumb.SeCourseThumbService; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import javax.annotation.Resource; - -/** - * @Author:youhang - * @Date:2024-05-30-20:22 - * @Description: - */ -@RestController -@RequestMapping("/course_thumb") -@Slf4j -public class SeCourseThumbController { - - @Resource - private SeCourseThumbService seCourseThumbService; - - - /** - * 点赞/取消点赞 - * - * @param courseThumbAddRequest - * @return result 执行情况 - */ - @PostMapping("/") - // todo 后期加上 HttpServletRequest request 在一个fitter里面进行鉴权操作 - public BaseResponse doThumb(@RequestBody CourseThumbAddRequest courseThumbAddRequest) { - if (StringUtils.isAnyBlank(courseThumbAddRequest.getCourseId(), courseThumbAddRequest.getUserId())) { - throw new BusinessException(ErrorCode.PARAMS_ERROR); - } - // todo 从数据库中校验是否存在courseid , userid 从课程表和用户表查询 - Boolean result = seCourseThumbService.doCourseThumb(courseThumbAddRequest.getCourseId(), courseThumbAddRequest.getUserId()); - return ResultUtils.success(result); - } - - - /** - * 课程点赞总数 - * - * @param courseThumbAddRequest - * @return result 课程点赞总数 - */ - @PostMapping("/count") - // todo 后期加上 HttpServletRequest request 在一个fitter里面进行鉴权操作 - public BaseResponse thumbCount(@RequestBody CourseThumbAddRequest courseThumbAddRequest) { - if (StringUtils.isAnyBlank(courseThumbAddRequest.getCourseId())) { - throw new BusinessException(ErrorCode.PARAMS_ERROR, "请求参数不能为空"); - } - // todo 从数据库中校验是否存在courseid - - Long result = seCourseThumbService.thumbCount(courseThumbAddRequest.getCourseId()); - return ResultUtils.success(result); - } - - /** - * 课程下资源和知识点点赞总数 - * - * @param courseThumbAllRequest - * @return result 课程下资源和知识点点赞总数 - */ - @PostMapping("/countAll") - // todo 后期加上 HttpServletRequest request 在一个fitter里面进行鉴权操作 - public BaseResponse courseCount(@RequestBody CourseThumbAllRequest courseThumbAllRequest) { - if (StringUtils.isAnyBlank(courseThumbAllRequest.getCourseId())) { - throw new BusinessException(ErrorCode.PARAMS_ERROR, "请求参数不能为空"); - } - // todo 从数据库中校验是否存在courseid - - Long result = seCourseThumbService.courseCount(courseThumbAllRequest.getCourseId()); - return ResultUtils.success(result); - } - -} +package com.teaching.backend.controller.thumb; + +import com.teaching.backend.common.BaseResponse; +import com.teaching.backend.common.ErrorCode; +import com.teaching.backend.exception.BusinessException; +import com.teaching.backend.model.dto.thumb.coursethumb.CourseThumbAddRequest; +import com.teaching.backend.model.dto.thumb.coursethumb.CourseThumbAllRequest; +import com.teaching.backend.service.thumb.SeCourseThumbService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * @Author:youhang + * @Date:2024-05-30-20:22 + * @Description: + */ +@RestController +@RequestMapping("/course_thumb") +@Slf4j +public class SeCourseThumbController { + + @Resource + private SeCourseThumbService seCourseThumbService; + + + /** + * 点赞/取消点赞 + * + * @param courseThumbAddRequest + * @return result 执行情况 + */ + @PostMapping("/") + // HttpServletRequest request 在一个fitter里面进行鉴权操作 + public BaseResponse doThumb(@RequestBody CourseThumbAddRequest courseThumbAddRequest) { + if (StringUtils.isAnyBlank(courseThumbAddRequest.getCourseId(), courseThumbAddRequest.getUserId())) { + throw new BusinessException(ErrorCode.PARAMS_ERROR); + } + + return seCourseThumbService.doCourseThumb(courseThumbAddRequest.getCourseId(), courseThumbAddRequest.getUserId()); + + } + + + /** + * 课程点赞总数 + * + * @param courseThumbAddRequest + * @return result 课程点赞总数 + */ + @PostMapping("/count") + // HttpServletRequest request 在一个fitter里面进行鉴权操作 + public BaseResponse thumbCount(@RequestBody CourseThumbAddRequest courseThumbAddRequest) { + if (StringUtils.isAnyBlank(courseThumbAddRequest.getCourseId())) { + throw new BusinessException(ErrorCode.PARAMS_ERROR, "请求参数不能为空"); + } + + return seCourseThumbService.thumbCount(courseThumbAddRequest.getCourseId()); + + } + + /** + * 课程下资源和知识点点赞总数 + * + * @param courseThumbAllRequest + * @return result 课程下资源和知识点点赞总数 + */ + @PostMapping("/countAll") + // todo 后期加上 HttpServletRequest request 在一个fitter里面进行鉴权操作 + public BaseResponse courseCount(@RequestBody CourseThumbAllRequest courseThumbAllRequest) { + if (StringUtils.isAnyBlank(courseThumbAllRequest.getCourseId())) { + throw new BusinessException(ErrorCode.PARAMS_ERROR, "请求参数不能为空"); + } + + return seCourseThumbService.courseCount(courseThumbAllRequest.getCourseId()); + } + +} diff --git a/src/main/java/com/teaching/backend/controller/thumb/SeKnowThumbController.java b/src/main/java/com/teaching/backend/controller/thumb/SeKnowThumbController.java index 2814730..fc98d87 100644 --- a/src/main/java/com/teaching/backend/controller/thumb/SeKnowThumbController.java +++ b/src/main/java/com/teaching/backend/controller/thumb/SeKnowThumbController.java @@ -1,49 +1,47 @@ -package com.teaching.backend.controller.thumb; - -import com.teaching.backend.common.BaseResponse; -import com.teaching.backend.common.ErrorCode; -import com.teaching.backend.common.ResultUtils; -import com.teaching.backend.exception.BusinessException; -import com.teaching.backend.model.dto.thumb.knowthumb.KnowThumbAddRequest; -import com.teaching.backend.service.thumb.SeKnowThumbService; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import javax.annotation.Resource; - -/** - * @Author:youhang - * @Date:2024-05-30-20:22 - * @Description: - */ -@RestController -@RequestMapping("/know_thumb") -@Slf4j -public class SeKnowThumbController { - - @Resource - private SeKnowThumbService seKnowThumbService; - - - /** - * 点赞 - * - * @param knowThumbAddRequest - * @return result 执行情况 - */ - @PostMapping("/add") - // todo 后期加上 HttpServletRequest request 在一个fitter里面进行鉴权操作 - public BaseResponse doThumb(@RequestBody KnowThumbAddRequest knowThumbAddRequest) { - if (StringUtils.isAnyBlank(knowThumbAddRequest.getCourseId(), knowThumbAddRequest.getKnowId(), knowThumbAddRequest.getUserId())) { - throw new BusinessException(ErrorCode.PARAMS_ERROR); - } - // todo 从数据库中校验是否存在knowid , userid ,courseid - Boolean result = seKnowThumbService.doKnowThumb(knowThumbAddRequest.getCourseId(), knowThumbAddRequest.getKnowId(), knowThumbAddRequest.getUserId()); - return ResultUtils.success(result); - } - -} +package com.teaching.backend.controller.thumb; + +import com.teaching.backend.common.BaseResponse; +import com.teaching.backend.common.ErrorCode; +import com.teaching.backend.exception.BusinessException; +import com.teaching.backend.model.dto.thumb.knowthumb.KnowThumbAddRequest; +import com.teaching.backend.service.thumb.SeKnowThumbService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * @Author:youhang + * @Date:2024-05-30-20:22 + * @Description: + */ +@RestController +@RequestMapping("/know_thumb") +@Slf4j +public class SeKnowThumbController { + + @Resource + private SeKnowThumbService seKnowThumbService; + + + /** + * 点赞 + * + * @param knowThumbAddRequest + * @return result 执行情况 + */ + @PostMapping("/add") + // 加上 HttpServletRequest request 在一个fitter里面进行鉴权操作 + public BaseResponse doThumb(@RequestBody KnowThumbAddRequest knowThumbAddRequest) { + if (StringUtils.isAnyBlank(knowThumbAddRequest.getCourseId(), knowThumbAddRequest.getKnowId(), knowThumbAddRequest.getUserId())) { + throw new BusinessException(ErrorCode.PARAMS_ERROR); + } + return seKnowThumbService.doKnowThumb(knowThumbAddRequest.getCourseId(), knowThumbAddRequest.getKnowId(), knowThumbAddRequest.getUserId()); + + } + +} diff --git a/src/main/java/com/teaching/backend/controller/thumb/SeResourceThumbController.java b/src/main/java/com/teaching/backend/controller/thumb/SeResourceThumbController.java index 706bc22..50f535a 100644 --- a/src/main/java/com/teaching/backend/controller/thumb/SeResourceThumbController.java +++ b/src/main/java/com/teaching/backend/controller/thumb/SeResourceThumbController.java @@ -1,49 +1,47 @@ -package com.teaching.backend.controller.thumb; - -import com.teaching.backend.common.BaseResponse; -import com.teaching.backend.common.ErrorCode; -import com.teaching.backend.common.ResultUtils; -import com.teaching.backend.exception.BusinessException; -import com.teaching.backend.model.dto.thumb.resourcethumb.ResourceThumbAddRequest; -import com.teaching.backend.service.thumb.SeResourceThumbService; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import javax.annotation.Resource; - -/** - * @Author:youhang - * @Date:2024-05-30-20:22 - * @Description: - */ -@RestController -@RequestMapping("/resource_thumb") -@Slf4j -public class SeResourceThumbController { - - @Resource - private SeResourceThumbService seResourceThumbService; - - - /** - * 点赞 - * - * @param resourceThumbAddRequest - * @return result 执行情况 - */ - @PostMapping("/add") - // todo 后期加上 HttpServletRequest request 在一个fitter里面进行鉴权操作 - public BaseResponse doThumb(@RequestBody ResourceThumbAddRequest resourceThumbAddRequest) { - if (StringUtils.isAnyBlank(resourceThumbAddRequest.getCourseId(), resourceThumbAddRequest.getResourceId(), resourceThumbAddRequest.getUserId())) { - throw new BusinessException(ErrorCode.PARAMS_ERROR); - } - // todo 从数据库中校验是否存在resourceid , userid ,courseid - Boolean result = seResourceThumbService.doResourceThumb(resourceThumbAddRequest.getCourseId(), resourceThumbAddRequest.getResourceId(), resourceThumbAddRequest.getUserId()); - return ResultUtils.success(result); - } - -} +package com.teaching.backend.controller.thumb; + +import com.teaching.backend.common.BaseResponse; +import com.teaching.backend.common.ErrorCode; +import com.teaching.backend.exception.BusinessException; +import com.teaching.backend.model.dto.thumb.resourcethumb.ResourceThumbAddRequest; +import com.teaching.backend.service.thumb.SeResourceThumbService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * @Author:youhang + * @Date:2024-05-30-20:22 + * @Description: + */ +@RestController +@RequestMapping("/resource_thumb") +@Slf4j +public class SeResourceThumbController { + + @Resource + private SeResourceThumbService seResourceThumbService; + + + /** + * 点赞 + * + * @param resourceThumbAddRequest + * @return result 执行情况 + */ + @PostMapping("/add") + // 加上 HttpServletRequest request 在一个fitter里面进行鉴权操作 + public BaseResponse doThumb(@RequestBody ResourceThumbAddRequest resourceThumbAddRequest) { + if (StringUtils.isAnyBlank(resourceThumbAddRequest.getCourseId(), resourceThumbAddRequest.getResourceId(), resourceThumbAddRequest.getUserId())) { + throw new BusinessException(ErrorCode.PARAMS_ERROR); + } + return seResourceThumbService.doResourceThumb(resourceThumbAddRequest.getCourseId(), resourceThumbAddRequest.getResourceId(), resourceThumbAddRequest.getUserId()); + + } + +} diff --git a/src/main/java/com/teaching/backend/service/favour/SeCourseFavourService.java b/src/main/java/com/teaching/backend/service/favour/SeCourseFavourService.java index 6296c47..5c53de1 100644 --- a/src/main/java/com/teaching/backend/service/favour/SeCourseFavourService.java +++ b/src/main/java/com/teaching/backend/service/favour/SeCourseFavourService.java @@ -1,69 +1,65 @@ -package com.teaching.backend.service.favour; - -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.baomidou.mybatisplus.extension.service.IService; -import com.teaching.backend.common.BaseResponse; -import com.teaching.backend.model.dto.favour.courseFavour.CourseFavourQueryRequest; -import com.teaching.backend.model.entity.courses.Courses; -import com.teaching.backend.model.entity.favour.SeCourseFavour; -import com.teaching.backend.model.vo.favour.CourseFavourDetailVO; -import org.springframework.web.bind.annotation.RequestBody; - -import java.util.List; - -/** - * @Author:youhang - * @Date:2024-05-30-20:22 - * @Description: - */ -public interface SeCourseFavourService extends IService { - - /** - * 收藏/取消收藏 - * - * @param courseId - * @param userId - * @return - */ - boolean doCourseFavour(String courseId, String userId); - - - /** - * 收藏总数 - * - * @param courseId - * @return - */ - long favourCount(String courseId); - - - /** - * 课程下资源和知识点的收藏总数 - * - * @param courseId - * @return - */ - long courseCount(String courseId); - - - /** - * 某个用户课程列表 - * - * @param userId - * @return - */ - List courseList(String userId); - - /** - * 某个用户课程列表全部信息 - * - * @param page - * @param queryWrapper - * @return - */ - public Page listCourseFavourByPage(Page page, Wrapper queryWrapper); - -} +package com.teaching.backend.service.favour; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.teaching.backend.common.BaseResponse; +import com.teaching.backend.model.entity.courses.Courses; +import com.teaching.backend.model.entity.favour.SeCourseFavour; +import com.teaching.backend.model.vo.favour.CourseFavourDetailVO; + +import java.util.List; + +/** + * @Author:youhang + * @Date:2024-05-30-20:22 + * @Description: + */ +public interface SeCourseFavourService extends IService { + + /** + * 收藏/取消收藏 + * + * @param courseId + * @param userId + * @return + */ + BaseResponse doCourseFavour(String courseId, String userId); + + + /** + * 收藏总数 + * + * @param courseId + * @return + */ + BaseResponse favourCount(String courseId); + + + /** + * 课程下资源和知识点的收藏总数 + * + * @param courseId + * @return + */ + BaseResponse courseCount(String courseId); + + + /** + * 某个用户课程列表 + * + * @param userId + * @return + */ + List courseList(String userId); + + /** + * 某个用户课程列表全部信息 + * + * @param page + * @param queryWrapper + * @return + */ + public Page listCourseFavourByPage(Page page, Wrapper queryWrapper); + +} diff --git a/src/main/java/com/teaching/backend/service/favour/SeKnowFavourService.java b/src/main/java/com/teaching/backend/service/favour/SeKnowFavourService.java index 22d7d6e..a78e1d4 100644 --- a/src/main/java/com/teaching/backend/service/favour/SeKnowFavourService.java +++ b/src/main/java/com/teaching/backend/service/favour/SeKnowFavourService.java @@ -1,22 +1,23 @@ -package com.teaching.backend.service.favour; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.teaching.backend.model.entity.favour.SeKnowFavour; - -/** - * @Author:youhang - * @Date:2024-05-30-20:22 - * @Description: - */ -public interface SeKnowFavourService extends IService { - - /** - * 收藏 - * - * @param courseId - * @param userId - * @return - */ - boolean doKnowFavour(String courseId, String resourceId, String userId); - -} +package com.teaching.backend.service.favour; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.teaching.backend.common.BaseResponse; +import com.teaching.backend.model.entity.favour.SeKnowFavour; + +/** + * @Author:youhang + * @Date:2024-05-30-20:22 + * @Description: + */ +public interface SeKnowFavourService extends IService { + + /** + * 收藏 + * + * @param courseId + * @param userId + * @return + */ + BaseResponse doKnowFavour(String courseId, String resourceId, String userId); + +} diff --git a/src/main/java/com/teaching/backend/service/favour/SeResourceFavourService.java b/src/main/java/com/teaching/backend/service/favour/SeResourceFavourService.java index 2eab5a8..b6d7b1f 100644 --- a/src/main/java/com/teaching/backend/service/favour/SeResourceFavourService.java +++ b/src/main/java/com/teaching/backend/service/favour/SeResourceFavourService.java @@ -1,22 +1,23 @@ -package com.teaching.backend.service.favour; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.teaching.backend.model.entity.favour.SeResourceFavour; - -/** - * @Author:youhang - * @Date:2024-05-30-20:22 - * @Description: - */ -public interface SeResourceFavourService extends IService { - - /** - * 收藏 - * - * @param courseId - * @param userId - * @return - */ - boolean doResourceFavour(String courseId, String resourceId, String userId); - -} +package com.teaching.backend.service.favour; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.teaching.backend.common.BaseResponse; +import com.teaching.backend.model.entity.favour.SeResourceFavour; + +/** + * @Author:youhang + * @Date:2024-05-30-20:22 + * @Description: + */ +public interface SeResourceFavourService extends IService { + + /** + * 收藏 + * + * @param courseId + * @param userId + * @return + */ + BaseResponse doResourceFavour(String courseId, String resourceId, String userId); + +} diff --git a/src/main/java/com/teaching/backend/service/impl/favour/SeCourseFavourServiceImpl.java b/src/main/java/com/teaching/backend/service/impl/favour/SeCourseFavourServiceImpl.java index 117b713..52c63b9 100644 --- a/src/main/java/com/teaching/backend/service/impl/favour/SeCourseFavourServiceImpl.java +++ b/src/main/java/com/teaching/backend/service/impl/favour/SeCourseFavourServiceImpl.java @@ -1,162 +1,165 @@ -package com.teaching.backend.service.impl.favour; - -import cn.hutool.core.collection.CollUtil; -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.teaching.backend.common.BaseResponse; -import com.teaching.backend.common.ErrorCode; -import com.teaching.backend.common.ResultUtils; -import com.teaching.backend.exception.BusinessException; -import com.teaching.backend.mapper.favour.SeCourseFavourMapper; -import com.teaching.backend.model.dto.favour.courseFavour.CourseFavourQueryRequest; -import com.teaching.backend.model.entity.courses.Courses; -import com.teaching.backend.model.entity.favour.SeCourseFavour; -import com.teaching.backend.model.entity.favour.SeKnowFavour; -import com.teaching.backend.model.entity.favour.SeResourceFavour; - -import com.teaching.backend.model.vo.CoursesVO; -import com.teaching.backend.model.vo.favour.CourseFavourDetailVO; -import com.teaching.backend.service.courses.ICoursesService; -import com.teaching.backend.service.favour.SeCourseFavourService; -import com.teaching.backend.service.favour.SeKnowFavourService; -import com.teaching.backend.service.favour.SeResourceFavourService; - -import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; - -import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.locks.Lock; -import java.util.concurrent.locks.ReentrantLock; -import java.util.stream.Collectors; - - -/** - * @Author:youhang - * @Date:2024-05-30-20:23 - * @Description: - */ -@Service -public class SeCourseFavourServiceImpl extends ServiceImpl implements SeCourseFavourService { - - - @Resource - private SeResourceFavourService seResourceFavourService; - - @Resource - SeKnowFavourService seKnowFavourService; - - @Autowired - ICoursesService coursesService; - - - @Override - public boolean doCourseFavour(String courseId, String userId) { - System.out.println("进入点赞" + courseId + userId); - // todo 先查询数据库记录,该用户是否点赞 - SeCourseFavour seCourseFavour = new SeCourseFavour(); - seCourseFavour.setCourseId(courseId); - seCourseFavour.setUserId(userId); - QueryWrapper favourQueryWrapper = new QueryWrapper<>(seCourseFavour); - SeCourseFavour oldSeCourseFavour = this.getOne(favourQueryWrapper); - boolean result = false; - //已点赞 - if (oldSeCourseFavour != null) { - // 取消点赞 删除记录 - result = this.remove(favourQueryWrapper); - if (result) { - System.out.println("取消点赞成功"); - return result; - } else { - throw new BusinessException(ErrorCode.SYSTEM_ERROR); - } - } else { - // 每个用户串行点赞 - // 锁必须要包裹住事务方法 - Lock lock = new ReentrantLock(); - lock.lock(); - try { - result = this.save(seCourseFavour); - } catch (Exception e) { - throw new BusinessException(ErrorCode.OPERATION_ERROR); - } finally { - lock.unlock(); - System.out.println("点赞成功"); - return result; - } - } - } - - @Override - public long favourCount(String courseId) { - System.out.println("进入课程点赞统计" + courseId); - QueryWrapper favourQueryWrapper = new QueryWrapper<>(); - favourQueryWrapper.eq("course_id", courseId); - long result = this.count(favourQueryWrapper); - if (result == 0) { - throw new BusinessException(ErrorCode.SYSTEM_ERROR, "查询参数不存在"); - } else { - return result; - } - } - - @Override - public long courseCount(String courseId) { - System.out.println("进入课程下资源和知识点的点赞统计" + courseId); - QueryWrapper ResourceQueryWrapper = new QueryWrapper<>(); - ResourceQueryWrapper.eq("course_id", courseId); - long result1 = seResourceFavourService.count(ResourceQueryWrapper); - QueryWrapper KnowQueryWrapper = new QueryWrapper<>(); - KnowQueryWrapper.eq("course_id", courseId); - long result2 = seKnowFavourService.count(KnowQueryWrapper); - long result = result1 + result2; - if (result == 0) { - throw new BusinessException(ErrorCode.SYSTEM_ERROR, "查询参数不存在"); - } else { - return result; - } - } - - /** - * 某个用户课程列表 - * - * @param userId - * @return - */ - @Override - public List courseList(String userId) { - QueryWrapper courseQueryWrapper = new QueryWrapper<>(); - courseQueryWrapper.eq("user_id", userId); - List list = this.list(courseQueryWrapper).stream().map(SeCourseFavour::getCourseId).collect(Collectors.toList()); - return list; - } - - @Override - public Page listCourseFavourByPage(Page page, Wrapper queryWrapper) { - Page coursePage = coursesService.page(page, queryWrapper); - Page courseFavourVOPage = new Page<>(coursePage.getCurrent(), coursePage.getSize(), coursePage.getTotal()); - List courseFavourList = coursePage.getRecords(); - //若数据为空,直接返回 - if (CollUtil.isEmpty(courseFavourList)) { - return courseFavourVOPage; - } - //过滤字段 - List courseFavourDetailVOList = new ArrayList<>(); - for (int i = 0; i < courseFavourList.size(); i++) { - CourseFavourDetailVO courseFavourDetailVO = new CourseFavourDetailVO(); - BeanUtils.copyProperties(courseFavourList.get(i), courseFavourDetailVO); - courseFavourDetailVOList.add(courseFavourDetailVO); - } - courseFavourVOPage.setRecords(courseFavourDetailVOList); - return courseFavourVOPage; - } - - -} +package com.teaching.backend.service.impl.favour; + +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.teaching.backend.common.BaseResponse; +import com.teaching.backend.common.ErrorCode; +import com.teaching.backend.common.ResultUtils; +import com.teaching.backend.exception.BusinessException; +import com.teaching.backend.mapper.courses.CoursesMapper; +import com.teaching.backend.mapper.favour.SeCourseFavourMapper; +import com.teaching.backend.model.entity.courses.Courses; +import com.teaching.backend.model.entity.favour.SeCourseFavour; +import com.teaching.backend.model.entity.favour.SeKnowFavour; +import com.teaching.backend.model.entity.favour.SeResourceFavour; +import com.teaching.backend.model.vo.favour.CourseFavourDetailVO; +import com.teaching.backend.service.courses.ICoursesService; +import com.teaching.backend.service.favour.SeCourseFavourService; +import com.teaching.backend.service.favour.SeKnowFavourService; +import com.teaching.backend.service.favour.SeResourceFavourService; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; +import java.util.stream.Collectors; + + +/** + * @Author:youhang + * @Date:2024-05-30-20:23 + * @Description: + */ +@Service +public class SeCourseFavourServiceImpl extends ServiceImpl implements SeCourseFavourService { + + + @Resource + private SeResourceFavourService seResourceFavourService; + + @Resource + SeKnowFavourService seKnowFavourService; + + @Autowired + CoursesMapper coursesMapper; + + @Autowired + ICoursesService coursesService; + + + + @Override + public BaseResponse doCourseFavour(String courseId, String userId) { + System.out.println("进入点赞" + courseId + userId); + //从数据库中校验是否存在courseid + Courses courses = coursesMapper.selectById(courseId); + boolean result = false; + if(courses == null){ + return ResultUtils.error(ErrorCode.NOT_FOUND_ERROR,"课程不存在"); + } + //查询数据库记录,该用户是否点赞 + SeCourseFavour seCourseFavour = new SeCourseFavour(); + seCourseFavour.setCourseId(courseId); + seCourseFavour.setUserId(userId); + QueryWrapper favourQueryWrapper = new QueryWrapper<>(seCourseFavour); + SeCourseFavour oldSeCourseFavour = this.getOne(favourQueryWrapper); + //已点赞 + if (oldSeCourseFavour != null) { + // 取消点赞 删除记录 + result = this.remove(favourQueryWrapper); + if (result) { + System.out.println("取消点赞成功"); + return ResultUtils.success(result); + } else { + throw new BusinessException(ErrorCode.SYSTEM_ERROR); + } + } else { + // 每个用户串行点赞 + // 锁必须要包裹住事务方法 + Lock lock = new ReentrantLock(); + lock.lock(); + try { + result = this.save(seCourseFavour); + } catch (Exception e) { + throw new BusinessException(ErrorCode.OPERATION_ERROR); + } finally { + lock.unlock(); + System.out.println("点赞成功"); + return ResultUtils.success(result); + } + } + } + + @Override + public BaseResponsefavourCount(String courseId) { + //从数据库中校验是否存在courseid + QueryWrapper favourQueryWrapper = new QueryWrapper<>(); + favourQueryWrapper.eq("course_id", courseId); + long result = this.count(favourQueryWrapper); + if (result == 0) { + throw new BusinessException(ErrorCode.SYSTEM_ERROR, "查询参数不存在"); + } else { + return ResultUtils.success(result); + } + } + + @Override + public BaseResponse courseCount(String courseId) { + + QueryWrapper ResourceQueryWrapper = new QueryWrapper<>(); + ResourceQueryWrapper.eq("course_id", courseId); + long result1 = seResourceFavourService.count(ResourceQueryWrapper); + QueryWrapper KnowQueryWrapper = new QueryWrapper<>(); + KnowQueryWrapper.eq("course_id", courseId); + long result2 = seKnowFavourService.count(KnowQueryWrapper); + long result = result1 + result2; + if (result == 0) { + throw new BusinessException(ErrorCode.SYSTEM_ERROR, "查询参数不存在"); + } else { + return ResultUtils.success(result); + } + } + + /** + * 某个用户课程列表 + * + * @param userId + * @return + */ + @Override + public List courseList(String userId) { + QueryWrapper courseQueryWrapper = new QueryWrapper<>(); + courseQueryWrapper.eq("user_id", userId); + List list = this.list(courseQueryWrapper).stream().map(SeCourseFavour::getCourseId).collect(Collectors.toList()); + return list; + } + + @Override + public Page listCourseFavourByPage(Page page, Wrapper queryWrapper) { + Page coursePage = coursesService.page(page, queryWrapper); + Page courseFavourVOPage = new Page<>(coursePage.getCurrent(), coursePage.getSize(), coursePage.getTotal()); + List courseFavourList = coursePage.getRecords(); + //若数据为空,直接返回 + if (CollUtil.isEmpty(courseFavourList)) { + return courseFavourVOPage; + } + //过滤字段 + List courseFavourDetailVOList = new ArrayList<>(); + for (int i = 0; i < courseFavourList.size(); i++) { + CourseFavourDetailVO courseFavourDetailVO = new CourseFavourDetailVO(); + BeanUtils.copyProperties(courseFavourList.get(i), courseFavourDetailVO); + courseFavourDetailVOList.add(courseFavourDetailVO); + } + courseFavourVOPage.setRecords(courseFavourDetailVOList); + return courseFavourVOPage; + } + + +} diff --git a/src/main/java/com/teaching/backend/service/impl/favour/SeKnowFavourServiceImpl.java b/src/main/java/com/teaching/backend/service/impl/favour/SeKnowFavourServiceImpl.java index 6ccb14a..a80a2b6 100644 --- a/src/main/java/com/teaching/backend/service/impl/favour/SeKnowFavourServiceImpl.java +++ b/src/main/java/com/teaching/backend/service/impl/favour/SeKnowFavourServiceImpl.java @@ -1,64 +1,77 @@ -package com.teaching.backend.service.impl.favour; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.teaching.backend.common.ErrorCode; -import com.teaching.backend.exception.BusinessException; -import com.teaching.backend.mapper.favour.SeKnowFavourMapper; -import com.teaching.backend.model.entity.favour.SeKnowFavour; - -import com.teaching.backend.service.favour.SeKnowFavourService; -import org.springframework.stereotype.Service; - -import java.util.concurrent.locks.Lock; -import java.util.concurrent.locks.ReentrantLock; - - -/** - * @Author:youhang - * @Date:2024-05-30-20:23 - * @Description: - */ -@Service -public class SeKnowFavourServiceImpl extends ServiceImpl implements SeKnowFavourService { - - @Override - public boolean doKnowFavour(String courseId, String knowId, String userId) { - System.out.println("进入知识点点赞" + knowId + userId); - // 先查询数据库记录,该用户是否点赞 - SeKnowFavour seKnowFavour = new SeKnowFavour(); - seKnowFavour.setKnowId(knowId); - seKnowFavour.setUserId(userId); - seKnowFavour.setCourseId(courseId); - QueryWrapper favourQueryWrapper = new QueryWrapper<>(seKnowFavour); - SeKnowFavour oldSeKnowFavour = this.getOne(favourQueryWrapper); - boolean result = false; - //已点赞 - if (oldSeKnowFavour != null) { - // 取消点赞 删除记录 - result = this.remove(favourQueryWrapper); - if (result) { - System.out.println("取消点赞成功"); - return result; - } else { - throw new BusinessException(ErrorCode.SYSTEM_ERROR); - } - } else { - // 每个用户串行点赞 - // 锁必须要包裹住事务方法 - Lock lock = new ReentrantLock(); - lock.lock(); - try { - result = this.save(seKnowFavour); - } catch (Exception e) { - throw new BusinessException(ErrorCode.OPERATION_ERROR); - } finally { - lock.unlock(); - System.out.println("点赞成功"); - return result; - } - } - } - - -} +package com.teaching.backend.service.impl.favour; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.teaching.backend.common.BaseResponse; +import com.teaching.backend.common.ErrorCode; +import com.teaching.backend.common.ResultUtils; +import com.teaching.backend.exception.BusinessException; +import com.teaching.backend.mapper.courses.CoursesMapper; +import com.teaching.backend.mapper.favour.SeKnowFavourMapper; +import com.teaching.backend.model.entity.courses.Courses; +import com.teaching.backend.model.entity.favour.SeKnowFavour; +import com.teaching.backend.service.favour.SeKnowFavourService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + + +/** + * @Author:youhang + * @Date:2024-05-30-20:23 + * @Description: + */ +@Service +public class SeKnowFavourServiceImpl extends ServiceImpl implements SeKnowFavourService { + + @Autowired + CoursesMapper coursesMapper; + + @Override + public BaseResponse doKnowFavour(String courseId, String knowId, String userId) { + // todo 判断知识点id是否存在 + + //从数据库中校验是否存在courseid + Courses courses = coursesMapper.selectById(courseId); + boolean result = false; + if(courses == null){ + return ResultUtils.error(ErrorCode.NOT_FOUND_ERROR,"课程不存在"); + } + // 先查询数据库记录,该用户是否收藏 + SeKnowFavour seKnowFavour = new SeKnowFavour(); + seKnowFavour.setKnowId(knowId); + seKnowFavour.setUserId(userId); + seKnowFavour.setCourseId(courseId); + QueryWrapper favourQueryWrapper = new QueryWrapper<>(seKnowFavour); + SeKnowFavour oldSeKnowFavour = this.getOne(favourQueryWrapper); + //已收藏 + if (oldSeKnowFavour != null) { + // 取消收藏 删除记录 + result = this.remove(favourQueryWrapper); + if (result) { + System.out.println("取消收藏成功"); + return ResultUtils.success(result); + } else { + throw new BusinessException(ErrorCode.SYSTEM_ERROR); + } + } else { + // 每个用户串行收藏 + // 锁必须要包裹住事务方法 + Lock lock = new ReentrantLock(); + lock.lock(); + try { + result = this.save(seKnowFavour); + } catch (Exception e) { + throw new BusinessException(ErrorCode.OPERATION_ERROR); + } finally { + lock.unlock(); +// System.out.println("收藏成功"); + return ResultUtils.success(result); + } + } + } + + +} diff --git a/src/main/java/com/teaching/backend/service/impl/favour/SeResourceFavourServiceImpl.java b/src/main/java/com/teaching/backend/service/impl/favour/SeResourceFavourServiceImpl.java index 968d993..3d48f55 100644 --- a/src/main/java/com/teaching/backend/service/impl/favour/SeResourceFavourServiceImpl.java +++ b/src/main/java/com/teaching/backend/service/impl/favour/SeResourceFavourServiceImpl.java @@ -1,65 +1,80 @@ -package com.teaching.backend.service.impl.favour; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.teaching.backend.common.ErrorCode; -import com.teaching.backend.exception.BusinessException; - - -import com.teaching.backend.mapper.favour.SeResourceFavourMapper; -import com.teaching.backend.model.entity.favour.SeResourceFavour; -import com.teaching.backend.service.favour.SeResourceFavourService; -import org.springframework.stereotype.Service; - -import java.util.concurrent.locks.Lock; -import java.util.concurrent.locks.ReentrantLock; - - -/** - * @Author:youhang - * @Date:2024-05-30-20:23 - * @Description: - */ -@Service -public class SeResourceFavourServiceImpl extends ServiceImpl implements SeResourceFavourService { - - @Override - public boolean doResourceFavour(String courseId, String resourceId, String userId) { - System.out.println("进入知识点点赞" + resourceId + userId); - // 先查询数据库记录,该用户是否点赞 - SeResourceFavour seResourceFavour = new SeResourceFavour(); - seResourceFavour.setResourceId(resourceId); - seResourceFavour.setUserId(userId); - seResourceFavour.setCourseId(courseId); - QueryWrapper thumbQueryWrapper = new QueryWrapper<>(seResourceFavour); - SeResourceFavour oldSeResourceFavour = this.getOne(thumbQueryWrapper); - boolean result = false; - //已点赞 - if (oldSeResourceFavour != null) { - // 取消点赞 删除记录 - result = this.remove(thumbQueryWrapper); - if (result) { - System.out.println("取消点赞成功"); - return result; - } else { - throw new BusinessException(ErrorCode.SYSTEM_ERROR); - } - } else { - // 每个用户串行点赞 - // 锁必须要包裹住事务方法 - Lock lock = new ReentrantLock(); - lock.lock(); - try { - result = this.save(seResourceFavour); - } catch (Exception e) { - throw new BusinessException(ErrorCode.OPERATION_ERROR); - } finally { - lock.unlock(); - System.out.println("点赞成功"); - return result; - } - } - } - - -} +package com.teaching.backend.service.impl.favour; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.teaching.backend.common.BaseResponse; +import com.teaching.backend.common.ErrorCode; +import com.teaching.backend.common.ResultUtils; +import com.teaching.backend.exception.BusinessException; +import com.teaching.backend.mapper.courses.CoursesMapper; +import com.teaching.backend.mapper.favour.SeResourceFavourMapper; +import com.teaching.backend.model.entity.courses.Courses; +import com.teaching.backend.model.entity.favour.SeResourceFavour; +import com.teaching.backend.service.favour.SeResourceFavourService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + + +/** + * @Author:youhang + * @Date:2024-05-30-20:23 + * @Description: + */ +@Service +public class SeResourceFavourServiceImpl extends ServiceImpl implements SeResourceFavourService { + + + @Autowired + CoursesMapper coursesMapper; + + @Override + public BaseResponse doResourceFavour(String courseId, String resourceId, String userId) { + + //从数据库中校验是否存在courseid + Courses courses = coursesMapper.selectById(courseId); + boolean result = false; + if(courses == null){ + return ResultUtils.error(ErrorCode.NOT_FOUND_ERROR,"课程不存在"); + } + + // todo 从数据库中校验是否存在resourceid + + // 先查询数据库记录,该用户是否收藏 + SeResourceFavour seResourceFavour = new SeResourceFavour(); + seResourceFavour.setResourceId(resourceId); + seResourceFavour.setUserId(userId); + seResourceFavour.setCourseId(courseId); + QueryWrapper thumbQueryWrapper = new QueryWrapper<>(seResourceFavour); + SeResourceFavour oldSeResourceFavour = this.getOne(thumbQueryWrapper); + //已收藏 + if (oldSeResourceFavour != null) { + // 取消收藏 删除记录 + result = this.remove(thumbQueryWrapper); + if (result) { + System.out.println("取消收藏成功"); + return ResultUtils.success(result); + } else { + throw new BusinessException(ErrorCode.SYSTEM_ERROR); + } + } else { + // 每个用户串行收藏 + // 锁必须要包裹住事务方法 + Lock lock = new ReentrantLock(); + lock.lock(); + try { + result = this.save(seResourceFavour); + } catch (Exception e) { + throw new BusinessException(ErrorCode.OPERATION_ERROR); + } finally { + lock.unlock(); + System.out.println("收藏成功"); + return ResultUtils.success(result); + } + } + } + + +} diff --git a/src/main/java/com/teaching/backend/service/impl/thumb/SeCourseThumbServiceImpl.java b/src/main/java/com/teaching/backend/service/impl/thumb/SeCourseThumbServiceImpl.java index 3940f7d..51d75a3 100644 --- a/src/main/java/com/teaching/backend/service/impl/thumb/SeCourseThumbServiceImpl.java +++ b/src/main/java/com/teaching/backend/service/impl/thumb/SeCourseThumbServiceImpl.java @@ -1,105 +1,131 @@ -package com.teaching.backend.service.impl.thumb; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.teaching.backend.common.ErrorCode; -import com.teaching.backend.exception.BusinessException; -import com.teaching.backend.mapper.thumb.SeCourseThumbMapper; -import com.teaching.backend.model.entity.thumb.SeCourseThumb; -import com.teaching.backend.model.entity.thumb.SeKnowThumb; -import com.teaching.backend.model.entity.thumb.SeResourceThumb; -import com.teaching.backend.service.thumb.SeCourseThumbService; -import com.teaching.backend.service.thumb.SeKnowThumbService; -import com.teaching.backend.service.thumb.SeResourceThumbService; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.util.concurrent.locks.Lock; -import java.util.concurrent.locks.ReentrantLock; - - -/** - * @Author:youhang - * @Date:2024-05-30-20:23 - * @Description: - */ -@Service -public class SeCourseThumbServiceImpl extends ServiceImpl implements SeCourseThumbService { - - - @Resource - private SeResourceThumbService seResourceThumbService; - - @Resource - SeKnowThumbService seKnowThumbService; - - - @Override - public boolean doCourseThumb(String courseId, String userId) { - System.out.println("进入点赞" + courseId + userId); - // 先查询数据库记录,该用户是否点赞 - SeCourseThumb seCourseThumb = new SeCourseThumb(); - seCourseThumb.setCourseId(courseId); - seCourseThumb.setUserId(userId); - QueryWrapper thumbQueryWrapper = new QueryWrapper<>(seCourseThumb); - SeCourseThumb oldSeCourseThumb = this.getOne(thumbQueryWrapper); - boolean result = false; - //已点赞 - if (oldSeCourseThumb != null) { - // 取消点赞 删除记录 - result = this.remove(thumbQueryWrapper); - if (result) { - System.out.println("取消点赞成功"); - return result; - } else { - throw new BusinessException(ErrorCode.SYSTEM_ERROR); - } - } else { - // 每个用户串行点赞 - // 锁必须要包裹住事务方法 - Lock lock = new ReentrantLock(); - lock.lock(); - try { - result = this.save(seCourseThumb); - } catch (Exception e) { - throw new BusinessException(ErrorCode.OPERATION_ERROR); - } finally { - lock.unlock(); - System.out.println("点赞成功"); - return result; - } - } - } - - @Override - public long thumbCount(String courseId) { - System.out.println("进入课程点赞统计" + courseId); - QueryWrapper thumbQueryWrapper = new QueryWrapper<>(); - thumbQueryWrapper.eq("course_id", courseId); - long result = this.count(thumbQueryWrapper); - if (result == 0) { - throw new BusinessException(ErrorCode.SYSTEM_ERROR, "查询参数不存在"); - } else { - return result; - } - } - - @Override - public long courseCount(String courseId) { - System.out.println("进入课程下资源和知识点的点赞统计" + courseId); - QueryWrapper ResourceQueryWrapper = new QueryWrapper<>(); - ResourceQueryWrapper.eq("course_id", courseId); - long result1 = seResourceThumbService.count(ResourceQueryWrapper); - QueryWrapper KnowQueryWrapper = new QueryWrapper<>(); - KnowQueryWrapper.eq("course_id", courseId); - long result2 = seKnowThumbService.count(KnowQueryWrapper); - long result = result1 + result2; - if (result == 0) { - throw new BusinessException(ErrorCode.SYSTEM_ERROR, "查询参数不存在"); - } else { - return result; - } - } - - -} +package com.teaching.backend.service.impl.thumb; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.teaching.backend.common.BaseResponse; +import com.teaching.backend.common.ErrorCode; +import com.teaching.backend.common.ResultUtils; +import com.teaching.backend.exception.BusinessException; +import com.teaching.backend.mapper.courses.CoursesMapper; +import com.teaching.backend.mapper.thumb.SeCourseThumbMapper; +import com.teaching.backend.model.entity.courses.Courses; +import com.teaching.backend.model.entity.thumb.SeCourseThumb; +import com.teaching.backend.model.entity.thumb.SeKnowThumb; +import com.teaching.backend.model.entity.thumb.SeResourceThumb; +import com.teaching.backend.service.thumb.SeCourseThumbService; +import com.teaching.backend.service.thumb.SeKnowThumbService; +import com.teaching.backend.service.thumb.SeResourceThumbService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + + +/** + * @Author:youhang + * @Date:2024-05-30-20:23 + * @Description: + */ +@Service +public class SeCourseThumbServiceImpl extends ServiceImpl implements SeCourseThumbService { + + + @Resource + private SeResourceThumbService seResourceThumbService; + + @Resource + SeKnowThumbService seKnowThumbService; + + + @Autowired + CoursesMapper coursesMapper; + + @Override + public BaseResponse doCourseThumb(String courseId, String userId) { + + //从数据库中校验是否存在courseid + Courses courses = coursesMapper.selectById(courseId); + boolean result = false; + if(courses == null){ + return ResultUtils.error(ErrorCode.NOT_FOUND_ERROR,"课程不存在"); + } + + // 先查询数据库记录,该用户是否点赞 + SeCourseThumb seCourseThumb = new SeCourseThumb(); + seCourseThumb.setCourseId(courseId); + seCourseThumb.setUserId(userId); + QueryWrapper thumbQueryWrapper = new QueryWrapper<>(seCourseThumb); + SeCourseThumb oldSeCourseThumb = this.getOne(thumbQueryWrapper); + //已点赞 + if (oldSeCourseThumb != null) { + // 取消点赞 删除记录 + result = this.remove(thumbQueryWrapper); + if (result) { + System.out.println("取消点赞成功"); + return ResultUtils.success(result); + } else { + throw new BusinessException(ErrorCode.SYSTEM_ERROR); + } + } else { + // 每个用户串行点赞 + // 锁必须要包裹住事务方法 + Lock lock = new ReentrantLock(); + lock.lock(); + try { + result = this.save(seCourseThumb); + } catch (Exception e) { + throw new BusinessException(ErrorCode.OPERATION_ERROR); + } finally { + lock.unlock(); + System.out.println("点赞成功"); + return ResultUtils.success(result); + } + } + } + + @Override + public BaseResponse thumbCount(String courseId) { + + //从数据库中校验是否存在courseid + Courses courses = coursesMapper.selectById(courseId); + if(courses == null){ + return ResultUtils.error(ErrorCode.NOT_FOUND_ERROR,"课程不存在"); + } + + QueryWrapper thumbQueryWrapper = new QueryWrapper<>(); + thumbQueryWrapper.eq("course_id", courseId); + long count = this.count(thumbQueryWrapper); + if (count == 0) { + throw new BusinessException(ErrorCode.SYSTEM_ERROR, "查询参数不存在"); + } else { + return ResultUtils.success(count); + } + } + + @Override + public BaseResponse courseCount(String courseId) { + + //从数据库中校验是否存在courseid + Courses courses = coursesMapper.selectById(courseId); + if(courses == null){ + return ResultUtils.error(ErrorCode.NOT_FOUND_ERROR,"课程不存在"); + } + + QueryWrapper ResourceQueryWrapper = new QueryWrapper<>(); + ResourceQueryWrapper.eq("course_id", courseId); + long result1 = seResourceThumbService.count(ResourceQueryWrapper); + QueryWrapper KnowQueryWrapper = new QueryWrapper<>(); + KnowQueryWrapper.eq("course_id", courseId); + long result2 = seKnowThumbService.count(KnowQueryWrapper); + long result = result1 + result2; + if (result == 0) { + throw new BusinessException(ErrorCode.SYSTEM_ERROR, "查询参数不存在"); + } else { + return ResultUtils.success(result); + } + } + + +} diff --git a/src/main/java/com/teaching/backend/service/impl/thumb/SeKnowThumbServiceImpl.java b/src/main/java/com/teaching/backend/service/impl/thumb/SeKnowThumbServiceImpl.java index 9b2232d..520510e 100644 --- a/src/main/java/com/teaching/backend/service/impl/thumb/SeKnowThumbServiceImpl.java +++ b/src/main/java/com/teaching/backend/service/impl/thumb/SeKnowThumbServiceImpl.java @@ -1,63 +1,74 @@ -package com.teaching.backend.service.impl.thumb; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.teaching.backend.common.ErrorCode; -import com.teaching.backend.exception.BusinessException; -import com.teaching.backend.mapper.thumb.SeKnowThumbMapper; -import com.teaching.backend.model.entity.thumb.SeKnowThumb; -import com.teaching.backend.service.thumb.SeKnowThumbService; -import org.springframework.stereotype.Service; - -import java.util.concurrent.locks.Lock; -import java.util.concurrent.locks.ReentrantLock; - - -/** - * @Author:youhang - * @Date:2024-05-30-20:23 - * @Description: - */ -@Service -public class SeKnowThumbServiceImpl extends ServiceImpl implements SeKnowThumbService { - - @Override - public boolean doKnowThumb(String courseId, String knowId, String userId) { - System.out.println("进入知识点点赞" + knowId + userId); - // 先查询数据库记录,该用户是否点赞 - SeKnowThumb seKnowThumb = new SeKnowThumb(); - seKnowThumb.setKnowId(knowId); - seKnowThumb.setUserId(userId); - seKnowThumb.setCourseId(courseId); - QueryWrapper thumbQueryWrapper = new QueryWrapper<>(seKnowThumb); - SeKnowThumb oldSeKnowThumb = this.getOne(thumbQueryWrapper); - boolean result = false; - //已点赞 - if (oldSeKnowThumb != null) { - // 取消点赞 删除记录 - result = this.remove(thumbQueryWrapper); - if (result) { - System.out.println("取消点赞成功"); - return result; - } else { - throw new BusinessException(ErrorCode.SYSTEM_ERROR); - } - } else { - // 每个用户串行点赞 - // 锁必须要包裹住事务方法 - Lock lock = new ReentrantLock(); - lock.lock(); - try { - result = this.save(seKnowThumb); - } catch (Exception e) { - throw new BusinessException(ErrorCode.OPERATION_ERROR); - } finally { - lock.unlock(); - System.out.println("点赞成功"); - return result; - } - } - } - - -} +package com.teaching.backend.service.impl.thumb; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.teaching.backend.common.BaseResponse; +import com.teaching.backend.common.ErrorCode; +import com.teaching.backend.common.ResultUtils; +import com.teaching.backend.exception.BusinessException; +import com.teaching.backend.mapper.courses.CoursesMapper; +import com.teaching.backend.mapper.thumb.SeKnowThumbMapper; +import com.teaching.backend.model.entity.courses.Courses; +import com.teaching.backend.model.entity.thumb.SeKnowThumb; +import com.teaching.backend.service.thumb.SeKnowThumbService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + + +/** + * @Author:youhang + * @Date:2024-05-30-20:23 + * @Description: + */ +@Service +public class SeKnowThumbServiceImpl extends ServiceImpl implements SeKnowThumbService { + @Autowired + CoursesMapper coursesMapper; + @Override + public BaseResponse doKnowThumb(String courseId, String knowId, String userId) { + // todo 查询知识点 + //从数据库中校验是否存在courseid + Courses courses = coursesMapper.selectById(courseId); + boolean result = false; + if(courses == null){ + return ResultUtils.error(ErrorCode.NOT_FOUND_ERROR,"课程不存在"); + } + // 先查询数据库记录,该用户是否点赞 + SeKnowThumb seKnowThumb = new SeKnowThumb(); + seKnowThumb.setKnowId(knowId); + seKnowThumb.setUserId(userId); + seKnowThumb.setCourseId(courseId); + QueryWrapper thumbQueryWrapper = new QueryWrapper<>(seKnowThumb); + SeKnowThumb oldSeKnowThumb = this.getOne(thumbQueryWrapper); + //已点赞 + if (oldSeKnowThumb != null) { + // 取消点赞 删除记录 + result = this.remove(thumbQueryWrapper); + if (result) { + System.out.println("取消点赞成功"); + return ResultUtils.success(result); + } else { + throw new BusinessException(ErrorCode.SYSTEM_ERROR); + } + } else { + // 每个用户串行点赞 + // 锁必须要包裹住事务方法 + Lock lock = new ReentrantLock(); + lock.lock(); + try { + result = this.save(seKnowThumb); + } catch (Exception e) { + throw new BusinessException(ErrorCode.OPERATION_ERROR); + } finally { + lock.unlock(); + System.out.println("点赞成功"); + return ResultUtils.success(result); + } + } + } + + +} diff --git a/src/main/java/com/teaching/backend/service/impl/thumb/SeResourceThumbServiceImpl.java b/src/main/java/com/teaching/backend/service/impl/thumb/SeResourceThumbServiceImpl.java index a44da42..24cfd36 100644 --- a/src/main/java/com/teaching/backend/service/impl/thumb/SeResourceThumbServiceImpl.java +++ b/src/main/java/com/teaching/backend/service/impl/thumb/SeResourceThumbServiceImpl.java @@ -1,63 +1,78 @@ -package com.teaching.backend.service.impl.thumb; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.teaching.backend.common.ErrorCode; -import com.teaching.backend.exception.BusinessException; -import com.teaching.backend.mapper.thumb.SeResourceThumbMapper; -import com.teaching.backend.model.entity.thumb.SeResourceThumb; -import com.teaching.backend.service.thumb.SeResourceThumbService; -import org.springframework.stereotype.Service; - -import java.util.concurrent.locks.Lock; -import java.util.concurrent.locks.ReentrantLock; - - -/** - * @Author:youhang - * @Date:2024-05-30-20:23 - * @Description: - */ -@Service -public class SeResourceThumbServiceImpl extends ServiceImpl implements SeResourceThumbService { - - @Override - public boolean doResourceThumb(String courseId, String resourceId, String userId) { - System.out.println("进入知识点点赞" + resourceId + userId); - // 先查询数据库记录,该用户是否点赞 - SeResourceThumb seResourceThumb = new SeResourceThumb(); - seResourceThumb.setResourceId(resourceId); - seResourceThumb.setUserId(userId); - seResourceThumb.setCourseId(courseId); - QueryWrapper thumbQueryWrapper = new QueryWrapper<>(seResourceThumb); - SeResourceThumb oldSeResourceThumb = this.getOne(thumbQueryWrapper); - boolean result = false; - //已点赞 - if (oldSeResourceThumb != null) { - // 取消点赞 删除记录 - result = this.remove(thumbQueryWrapper); - if (result) { - System.out.println("取消点赞成功"); - return result; - } else { - throw new BusinessException(ErrorCode.SYSTEM_ERROR); - } - } else { - // 每个用户串行点赞 - // 锁必须要包裹住事务方法 - Lock lock = new ReentrantLock(); - lock.lock(); - try { - result = this.save(seResourceThumb); - } catch (Exception e) { - throw new BusinessException(ErrorCode.OPERATION_ERROR); - } finally { - lock.unlock(); - System.out.println("点赞成功"); - return result; - } - } - } - - -} +package com.teaching.backend.service.impl.thumb; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.teaching.backend.common.BaseResponse; +import com.teaching.backend.common.ErrorCode; +import com.teaching.backend.common.ResultUtils; +import com.teaching.backend.exception.BusinessException; +import com.teaching.backend.mapper.courses.CoursesMapper; +import com.teaching.backend.mapper.thumb.SeResourceThumbMapper; +import com.teaching.backend.model.entity.courses.Courses; +import com.teaching.backend.model.entity.thumb.SeResourceThumb; +import com.teaching.backend.service.thumb.SeResourceThumbService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + + +/** + * @Author:youhang + * @Date:2024-05-30-20:23 + * @Description: + */ +@Service +public class SeResourceThumbServiceImpl extends ServiceImpl implements SeResourceThumbService { + + @Autowired + CoursesMapper coursesMapper; + + @Override + public BaseResponse doResourceThumb(String courseId, String resourceId, String userId) { + + //从数据库中校验是否存在courseid + Courses courses = coursesMapper.selectById(courseId); + boolean result = false; + if(courses == null){ + return ResultUtils.error(ErrorCode.NOT_FOUND_ERROR,"课程不存在"); + } + + // 先查询数据库记录,该用户是否点赞 + SeResourceThumb seResourceThumb = new SeResourceThumb(); + seResourceThumb.setResourceId(resourceId); + seResourceThumb.setUserId(userId); + seResourceThumb.setCourseId(courseId); + QueryWrapper thumbQueryWrapper = new QueryWrapper<>(seResourceThumb); + SeResourceThumb oldSeResourceThumb = this.getOne(thumbQueryWrapper); + + //已点赞 + if (oldSeResourceThumb != null) { + // 取消点赞 删除记录 + result = this.remove(thumbQueryWrapper); + if (result) { + System.out.println("取消点赞成功"); + return ResultUtils.success(result); + } else { + throw new BusinessException(ErrorCode.SYSTEM_ERROR); + } + } else { + // 每个用户串行点赞 + // 锁必须要包裹住事务方法 + Lock lock = new ReentrantLock(); + lock.lock(); + try { + result = this.save(seResourceThumb); + } catch (Exception e) { + throw new BusinessException(ErrorCode.OPERATION_ERROR); + } finally { + lock.unlock(); + System.out.println("点赞成功"); + return ResultUtils.success(result); + } + } + } + + +} diff --git a/src/main/java/com/teaching/backend/service/thumb/SeCourseThumbService.java b/src/main/java/com/teaching/backend/service/thumb/SeCourseThumbService.java index ea02850..8accc97 100644 --- a/src/main/java/com/teaching/backend/service/thumb/SeCourseThumbService.java +++ b/src/main/java/com/teaching/backend/service/thumb/SeCourseThumbService.java @@ -1,40 +1,41 @@ -package com.teaching.backend.service.thumb; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.teaching.backend.model.entity.thumb.SeCourseThumb; - -/** - * @Author:youhang - * @Date:2024-05-30-20:22 - * @Description: - */ -public interface SeCourseThumbService extends IService { - - /** - * 点赞 - * - * @param courseId - * @param userId - * @return - */ - boolean doCourseThumb(String courseId, String userId); - - - /** - * 点赞总数 - * - * @param courseId - * @return - */ - long thumbCount(String courseId); - - - /** - * 课程下资源和知识点的点赞总数 - * - * @param courseId - * @return - */ - long courseCount(String courseId); - -} +package com.teaching.backend.service.thumb; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.teaching.backend.common.BaseResponse; +import com.teaching.backend.model.entity.thumb.SeCourseThumb; + +/** + * @Author:youhang + * @Date:2024-05-30-20:22 + * @Description: + */ +public interface SeCourseThumbService extends IService { + + /** + * 点赞 + * + * @param courseId + * @param userId + * @return + */ + BaseResponse doCourseThumb(String courseId, String userId); + + + /** + * 点赞总数 + * + * @param courseId + * @return + */ + BaseResponse thumbCount(String courseId); + + + /** + * 课程下资源和知识点的点赞总数 + * + * @param courseId + * @return + */ + BaseResponse courseCount(String courseId); + +} diff --git a/src/main/java/com/teaching/backend/service/thumb/SeKnowThumbService.java b/src/main/java/com/teaching/backend/service/thumb/SeKnowThumbService.java index c6536e3..ceecd01 100644 --- a/src/main/java/com/teaching/backend/service/thumb/SeKnowThumbService.java +++ b/src/main/java/com/teaching/backend/service/thumb/SeKnowThumbService.java @@ -1,22 +1,23 @@ -package com.teaching.backend.service.thumb; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.teaching.backend.model.entity.thumb.SeKnowThumb; - -/** - * @Author:youhang - * @Date:2024-05-30-20:22 - * @Description: - */ -public interface SeKnowThumbService extends IService { - - /** - * 点赞 - * - * @param courseId - * @param userId - * @return - */ - boolean doKnowThumb(String courseId, String resourceId, String userId); - -} +package com.teaching.backend.service.thumb; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.teaching.backend.common.BaseResponse; +import com.teaching.backend.model.entity.thumb.SeKnowThumb; + +/** + * @Author:youhang + * @Date:2024-05-30-20:22 + * @Description: + */ +public interface SeKnowThumbService extends IService { + + /** + * 点赞 + * + * @param courseId + * @param userId + * @return + */ + BaseResponse doKnowThumb(String courseId, String resourceId, String userId); + +} diff --git a/src/main/java/com/teaching/backend/service/thumb/SeResourceThumbService.java b/src/main/java/com/teaching/backend/service/thumb/SeResourceThumbService.java index 9382343..175c4d8 100644 --- a/src/main/java/com/teaching/backend/service/thumb/SeResourceThumbService.java +++ b/src/main/java/com/teaching/backend/service/thumb/SeResourceThumbService.java @@ -1,22 +1,23 @@ -package com.teaching.backend.service.thumb; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.teaching.backend.model.entity.thumb.SeResourceThumb; - -/** - * @Author:youhang - * @Date:2024-05-30-20:22 - * @Description: - */ -public interface SeResourceThumbService extends IService { - - /** - * 点赞 - * - * @param courseId - * @param userId - * @return - */ - boolean doResourceThumb(String courseId, String resourceId, String userId); - -} +package com.teaching.backend.service.thumb; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.teaching.backend.common.BaseResponse; +import com.teaching.backend.model.entity.thumb.SeResourceThumb; + +/** + * @Author:youhang + * @Date:2024-05-30-20:22 + * @Description: + */ +public interface SeResourceThumbService extends IService { + + /** + * 点赞 + * + * @param courseId + * @param userId + * @return + */ + BaseResponse doResourceThumb(String courseId, String resourceId, String userId); + +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index cf160ba..d54f3eb 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -8,7 +8,7 @@ spring: matching-strategy: ant_path_matcher datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://localhost:3306/teaching_db + url: jdbc:mysql://39.106.16.162:3306/teaching_db username: root password: root mybatis: @@ -40,8 +40,8 @@ knife4j: secure: ignored: urls: #安全路径白名单 - #- /swagger-ui/ - - /** + - /** +# - /swagger-ui/ # - /swagger-resources/** # - /**/v2/api-docs # - /**/*.html