parent
1cd1d906bf
commit
a0a8fa1ca7
19 changed files with 1191 additions and 1146 deletions
@ -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<Boolean> 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<Long> 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<Long> 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<List<String>> courseList(@RequestBody CourseFavourListRequest courseFavourListRequest) { |
||||
if (StringUtils.isAnyBlank(courseFavourListRequest.getUserId())) { |
||||
throw new BusinessException(ErrorCode.PARAMS_ERROR, "请求参数-用户id不能为空"); |
||||
} |
||||
// todo 从数据库中校验是否存在userid
|
||||
List<String> result = seCourseFavourService.courseList(courseFavourListRequest.getUserId()); |
||||
return ResultUtils.success(result); |
||||
} |
||||
|
||||
/** |
||||
* 分页获取列表(仅管理员) |
||||
* |
||||
* @return |
||||
*/ |
||||
@PostMapping("/list/page") |
||||
public BaseResponse<Page<CourseFavourDetailVO>> listPostByPage(@RequestBody CourseFavourQueryRequest courseFavourQueryRequest) { |
||||
long current = courseFavourQueryRequest.getCurrent(); |
||||
long size = courseFavourQueryRequest.getPageSize(); |
||||
String userId = courseFavourQueryRequest.getUserId(); |
||||
List<String> ids = seCourseFavourService.courseList(userId); |
||||
QueryWrapper<Courses> courseQueryWrapper = new QueryWrapper<>(); |
||||
courseQueryWrapper.in("id", ids); |
||||
Page<CourseFavourDetailVO> 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<Boolean> 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<Long> 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<Long> 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<Page<CourseFavourDetailVO>> listPostByPage(@RequestBody CourseFavourQueryRequest courseFavourQueryRequest) { |
||||
long current = courseFavourQueryRequest.getCurrent(); |
||||
long size = courseFavourQueryRequest.getPageSize(); |
||||
String userId = courseFavourQueryRequest.getUserId(); |
||||
List<String> ids = seCourseFavourService.courseList(userId); |
||||
QueryWrapper<Courses> courseQueryWrapper = new QueryWrapper<>(); |
||||
courseQueryWrapper.in("id", ids); |
||||
Page<CourseFavourDetailVO> courseFavourDetailVOPage = seCourseFavourService.listCourseFavourByPage(new Page<>(current, size), courseQueryWrapper); |
||||
|
||||
return ResultUtils.success(courseFavourDetailVOPage); |
||||
} |
||||
|
||||
|
||||
} |
||||
|
@ -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<Boolean> 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<Boolean> 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()); |
||||
|
||||
} |
||||
|
||||
} |
||||
|
@ -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<Boolean> 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<Boolean> 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()); |
||||
} |
||||
|
||||
|
||||
} |
||||
|
@ -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<Boolean> 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<Long> 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<Long> 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<Boolean> 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<Long> 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<Long> courseCount(@RequestBody CourseThumbAllRequest courseThumbAllRequest) { |
||||
if (StringUtils.isAnyBlank(courseThumbAllRequest.getCourseId())) { |
||||
throw new BusinessException(ErrorCode.PARAMS_ERROR, "请求参数不能为空"); |
||||
} |
||||
|
||||
return seCourseThumbService.courseCount(courseThumbAllRequest.getCourseId()); |
||||
} |
||||
|
||||
} |
||||
|
@ -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<Boolean> 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<Boolean> 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()); |
||||
|
||||
} |
||||
|
||||
} |
||||
|
@ -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<Boolean> 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<Boolean> 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()); |
||||
|
||||
} |
||||
|
||||
} |
||||
|
@ -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<SeCourseFavour> { |
||||
|
||||
/** |
||||
* 收藏/取消收藏 |
||||
* |
||||
* @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<String> courseList(String userId); |
||||
|
||||
/** |
||||
* 某个用户课程列表全部信息 |
||||
* |
||||
* @param page |
||||
* @param queryWrapper |
||||
* @return |
||||
*/ |
||||
public Page<CourseFavourDetailVO> listCourseFavourByPage(Page<Courses> page, Wrapper<Courses> 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<SeCourseFavour> { |
||||
|
||||
/** |
||||
* 收藏/取消收藏 |
||||
* |
||||
* @param courseId |
||||
* @param userId |
||||
* @return |
||||
*/ |
||||
BaseResponse<Boolean> doCourseFavour(String courseId, String userId); |
||||
|
||||
|
||||
/** |
||||
* 收藏总数 |
||||
* |
||||
* @param courseId |
||||
* @return |
||||
*/ |
||||
BaseResponse<Long> favourCount(String courseId); |
||||
|
||||
|
||||
/** |
||||
* 课程下资源和知识点的收藏总数 |
||||
* |
||||
* @param courseId |
||||
* @return |
||||
*/ |
||||
BaseResponse<Long> courseCount(String courseId); |
||||
|
||||
|
||||
/** |
||||
* 某个用户课程列表 |
||||
* |
||||
* @param userId |
||||
* @return |
||||
*/ |
||||
List<String> courseList(String userId); |
||||
|
||||
/** |
||||
* 某个用户课程列表全部信息 |
||||
* |
||||
* @param page |
||||
* @param queryWrapper |
||||
* @return |
||||
*/ |
||||
public Page<CourseFavourDetailVO> listCourseFavourByPage(Page<Courses> page, Wrapper<Courses> queryWrapper); |
||||
|
||||
} |
||||
|
@ -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<SeKnowFavour> { |
||||
|
||||
/** |
||||
* 收藏 |
||||
* |
||||
* @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<SeKnowFavour> { |
||||
|
||||
/** |
||||
* 收藏 |
||||
* |
||||
* @param courseId |
||||
* @param userId |
||||
* @return |
||||
*/ |
||||
BaseResponse<Boolean> doKnowFavour(String courseId, String resourceId, String userId); |
||||
|
||||
} |
||||
|
@ -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<SeResourceFavour> { |
||||
|
||||
/** |
||||
* 收藏 |
||||
* |
||||
* @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<SeResourceFavour> { |
||||
|
||||
/** |
||||
* 收藏 |
||||
* |
||||
* @param courseId |
||||
* @param userId |
||||
* @return |
||||
*/ |
||||
BaseResponse<Boolean> doResourceFavour(String courseId, String resourceId, String userId); |
||||
|
||||
} |
||||
|
@ -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<SeCourseFavourMapper, SeCourseFavour> 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<SeCourseFavour> 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<SeCourseFavour> 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<SeResourceFavour> ResourceQueryWrapper = new QueryWrapper<>(); |
||||
ResourceQueryWrapper.eq("course_id", courseId); |
||||
long result1 = seResourceFavourService.count(ResourceQueryWrapper); |
||||
QueryWrapper<SeKnowFavour> 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<String> courseList(String userId) { |
||||
QueryWrapper<SeCourseFavour> courseQueryWrapper = new QueryWrapper<>(); |
||||
courseQueryWrapper.eq("user_id", userId); |
||||
List<String> list = this.list(courseQueryWrapper).stream().map(SeCourseFavour::getCourseId).collect(Collectors.toList()); |
||||
return list; |
||||
} |
||||
|
||||
@Override |
||||
public Page<CourseFavourDetailVO> listCourseFavourByPage(Page<Courses> page, Wrapper<Courses> queryWrapper) { |
||||
Page<Courses> coursePage = coursesService.page(page, queryWrapper); |
||||
Page<CourseFavourDetailVO> courseFavourVOPage = new Page<>(coursePage.getCurrent(), coursePage.getSize(), coursePage.getTotal()); |
||||
List<Courses> courseFavourList = coursePage.getRecords(); |
||||
//若数据为空,直接返回
|
||||
if (CollUtil.isEmpty(courseFavourList)) { |
||||
return courseFavourVOPage; |
||||
} |
||||
//过滤字段
|
||||
List<CourseFavourDetailVO> 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<SeCourseFavourMapper, SeCourseFavour> implements SeCourseFavourService { |
||||
|
||||
|
||||
@Resource |
||||
private SeResourceFavourService seResourceFavourService; |
||||
|
||||
@Resource |
||||
SeKnowFavourService seKnowFavourService; |
||||
|
||||
@Autowired |
||||
CoursesMapper coursesMapper; |
||||
|
||||
@Autowired |
||||
ICoursesService coursesService; |
||||
|
||||
|
||||
|
||||
@Override |
||||
public BaseResponse<Boolean> 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<SeCourseFavour> 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 BaseResponse<Long>favourCount(String courseId) { |
||||
//从数据库中校验是否存在courseid
|
||||
QueryWrapper<SeCourseFavour> 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<Long> courseCount(String courseId) { |
||||
|
||||
QueryWrapper<SeResourceFavour> ResourceQueryWrapper = new QueryWrapper<>(); |
||||
ResourceQueryWrapper.eq("course_id", courseId); |
||||
long result1 = seResourceFavourService.count(ResourceQueryWrapper); |
||||
QueryWrapper<SeKnowFavour> 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<String> courseList(String userId) { |
||||
QueryWrapper<SeCourseFavour> courseQueryWrapper = new QueryWrapper<>(); |
||||
courseQueryWrapper.eq("user_id", userId); |
||||
List<String> list = this.list(courseQueryWrapper).stream().map(SeCourseFavour::getCourseId).collect(Collectors.toList()); |
||||
return list; |
||||
} |
||||
|
||||
@Override |
||||
public Page<CourseFavourDetailVO> listCourseFavourByPage(Page<Courses> page, Wrapper<Courses> queryWrapper) { |
||||
Page<Courses> coursePage = coursesService.page(page, queryWrapper); |
||||
Page<CourseFavourDetailVO> courseFavourVOPage = new Page<>(coursePage.getCurrent(), coursePage.getSize(), coursePage.getTotal()); |
||||
List<Courses> courseFavourList = coursePage.getRecords(); |
||||
//若数据为空,直接返回
|
||||
if (CollUtil.isEmpty(courseFavourList)) { |
||||
return courseFavourVOPage; |
||||
} |
||||
//过滤字段
|
||||
List<CourseFavourDetailVO> 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; |
||||
} |
||||
|
||||
|
||||
} |
||||
|
@ -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<SeKnowFavourMapper, SeKnowFavour> 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<SeKnowFavour> 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<SeKnowFavourMapper, SeKnowFavour> implements SeKnowFavourService { |
||||
|
||||
@Autowired |
||||
CoursesMapper coursesMapper; |
||||
|
||||
@Override |
||||
public BaseResponse<Boolean> 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<SeKnowFavour> 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); |
||||
} |
||||
} |
||||
} |
||||
|
||||
|
||||
} |
||||
|
@ -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<SeResourceFavourMapper, SeResourceFavour> 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<SeResourceFavour> 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<SeResourceFavourMapper, SeResourceFavour> implements SeResourceFavourService { |
||||
|
||||
|
||||
@Autowired |
||||
CoursesMapper coursesMapper; |
||||
|
||||
@Override |
||||
public BaseResponse<Boolean> 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<SeResourceFavour> 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); |
||||
} |
||||
} |
||||
} |
||||
|
||||
|
||||
} |
||||
|
@ -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<SeCourseThumbMapper, SeCourseThumb> 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<SeCourseThumb> 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<SeCourseThumb> 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<SeResourceThumb> ResourceQueryWrapper = new QueryWrapper<>(); |
||||
ResourceQueryWrapper.eq("course_id", courseId); |
||||
long result1 = seResourceThumbService.count(ResourceQueryWrapper); |
||||
QueryWrapper<SeKnowThumb> 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<SeCourseThumbMapper, SeCourseThumb> implements SeCourseThumbService { |
||||
|
||||
|
||||
@Resource |
||||
private SeResourceThumbService seResourceThumbService; |
||||
|
||||
@Resource |
||||
SeKnowThumbService seKnowThumbService; |
||||
|
||||
|
||||
@Autowired |
||||
CoursesMapper coursesMapper; |
||||
|
||||
@Override |
||||
public BaseResponse<Boolean> 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<SeCourseThumb> 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<Long> thumbCount(String courseId) { |
||||
|
||||
//从数据库中校验是否存在courseid
|
||||
Courses courses = coursesMapper.selectById(courseId); |
||||
if(courses == null){ |
||||
return ResultUtils.error(ErrorCode.NOT_FOUND_ERROR,"课程不存在"); |
||||
} |
||||
|
||||
QueryWrapper<SeCourseThumb> 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<Long> courseCount(String courseId) { |
||||
|
||||
//从数据库中校验是否存在courseid
|
||||
Courses courses = coursesMapper.selectById(courseId); |
||||
if(courses == null){ |
||||
return ResultUtils.error(ErrorCode.NOT_FOUND_ERROR,"课程不存在"); |
||||
} |
||||
|
||||
QueryWrapper<SeResourceThumb> ResourceQueryWrapper = new QueryWrapper<>(); |
||||
ResourceQueryWrapper.eq("course_id", courseId); |
||||
long result1 = seResourceThumbService.count(ResourceQueryWrapper); |
||||
QueryWrapper<SeKnowThumb> 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); |
||||
} |
||||
} |
||||
|
||||
|
||||
} |
||||
|
@ -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<SeKnowThumbMapper, SeKnowThumb> 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<SeKnowThumb> 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<SeKnowThumbMapper, SeKnowThumb> implements SeKnowThumbService { |
||||
@Autowired |
||||
CoursesMapper coursesMapper; |
||||
@Override |
||||
public BaseResponse<Boolean> 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<SeKnowThumb> 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); |
||||
} |
||||
} |
||||
} |
||||
|
||||
|
||||
} |
||||
|
@ -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<SeResourceThumbMapper, SeResourceThumb> 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<SeResourceThumb> 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<SeResourceThumbMapper, SeResourceThumb> implements SeResourceThumbService { |
||||
|
||||
@Autowired |
||||
CoursesMapper coursesMapper; |
||||
|
||||
@Override |
||||
public BaseResponse<Boolean> 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<SeResourceThumb> 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); |
||||
} |
||||
} |
||||
} |
||||
|
||||
|
||||
} |
||||
|
@ -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<SeCourseThumb> { |
||||
|
||||
/** |
||||
* 点赞 |
||||
* |
||||
* @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<SeCourseThumb> { |
||||
|
||||
/** |
||||
* 点赞 |
||||
* |
||||
* @param courseId |
||||
* @param userId |
||||
* @return |
||||
*/ |
||||
BaseResponse<Boolean> doCourseThumb(String courseId, String userId); |
||||
|
||||
|
||||
/** |
||||
* 点赞总数 |
||||
* |
||||
* @param courseId |
||||
* @return |
||||
*/ |
||||
BaseResponse<Long> thumbCount(String courseId); |
||||
|
||||
|
||||
/** |
||||
* 课程下资源和知识点的点赞总数 |
||||
* |
||||
* @param courseId |
||||
* @return |
||||
*/ |
||||
BaseResponse<Long> courseCount(String courseId); |
||||
|
||||
} |
||||
|
@ -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<SeKnowThumb> { |
||||
|
||||
/** |
||||
* 点赞 |
||||
* |
||||
* @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<SeKnowThumb> { |
||||
|
||||
/** |
||||
* 点赞 |
||||
* |
||||
* @param courseId |
||||
* @param userId |
||||
* @return |
||||
*/ |
||||
BaseResponse<Boolean> doKnowThumb(String courseId, String resourceId, String userId); |
||||
|
||||
} |
||||
|
@ -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<SeResourceThumb> { |
||||
|
||||
/** |
||||
* 点赞 |
||||
* |
||||
* @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<SeResourceThumb> { |
||||
|
||||
/** |
||||
* 点赞 |
||||
* |
||||
* @param courseId |
||||
* @param userId |
||||
* @return |
||||
*/ |
||||
BaseResponse<Boolean> doResourceThumb(String courseId, String resourceId, String userId); |
||||
|
||||
} |
||||
|
Loading…
Reference in new issue