提交 c72475c1 编写于 作者: F fengyw

课程收藏列出功能

上级 34b70c6e
package com.roncoo.education.course.service.auth.biz;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.roncoo.education.common.config.ThreadContext;
import com.roncoo.education.common.core.base.Page;
......@@ -7,16 +8,22 @@ import com.roncoo.education.common.core.base.PageUtil;
import com.roncoo.education.common.core.base.Result;
import com.roncoo.education.common.core.tools.BeanUtil;
import com.roncoo.education.common.service.BaseBiz;
import com.roncoo.education.course.dao.CourseDao;
import com.roncoo.education.course.dao.UserCourseCollectDao;
import com.roncoo.education.course.dao.impl.mapper.entity.Course;
import com.roncoo.education.course.dao.impl.mapper.entity.UserCourseCollect;
import com.roncoo.education.course.dao.impl.mapper.entity.UserCourseCollectExample;
import com.roncoo.education.course.service.auth.req.AuthUserCourseCollectPageReq;
import com.roncoo.education.course.service.auth.req.AuthUserCourseCollectReq;
import com.roncoo.education.course.service.auth.resp.AuthUserCourseCollectResp;
import com.roncoo.education.course.service.biz.resp.CourseResp;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import javax.validation.constraints.NotNull;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* AUTH-课程收藏
......@@ -29,23 +36,34 @@ public class AuthUserCourseCollectBiz extends BaseBiz {
@NotNull
private final UserCourseCollectDao dao;
@NotNull
private final CourseDao courseDao;
public Result<Page<AuthUserCourseCollectResp>> listForPage(AuthUserCourseCollectPageReq req) {
UserCourseCollectExample example = new UserCourseCollectExample();
example.createCriteria().andUserIdEqualTo(ThreadContext.userId());
example.setOrderByClause("id desc");
return Result.success(PageUtil.transform(dao.page(req.getPageCurrent(), req.getPageSize(), example), AuthUserCourseCollectResp.class));
Page<AuthUserCourseCollectResp> resp = PageUtil.transform(dao.page(req.getPageCurrent(), req.getPageSize(), example), AuthUserCourseCollectResp.class);
if (CollUtil.isNotEmpty(resp.getList())) {
List<Long> courseIds = resp.getList().stream().map(AuthUserCourseCollectResp::getCourseId).collect(Collectors.toList());
Map<Long, Course> courseMap = courseDao.listByIds(courseIds).stream().collect(Collectors.toMap(Course::getId, item -> item));
for (AuthUserCourseCollectResp res : resp.getList()) {
res.setCourseResp(BeanUtil.copyProperties(courseMap.get(res.getCourseId()), CourseResp.class));
}
}
return Result.success(resp);
}
public Result<String> add(AuthUserCourseCollectReq req) {
UserCourseCollect userCourseCollect = dao.getByCouserIdAndUserId(req.getCourseId(), ThreadContext.userId());
if (ObjectUtil.isNotEmpty(userCourseCollect)) {
dao.deleteById(userCourseCollect.getId());
return Result.success("取消收藏成功");
return Result.success("cancel");
}
userCourseCollect = BeanUtil.copyProperties(req, UserCourseCollect.class);
userCourseCollect.setUserId(ThreadContext.userId());
dao.save(userCourseCollect);
return Result.success("添加收藏成功");
return Result.success("add");
}
}
package com.roncoo.education.course.service.auth.biz;
import cn.hutool.core.collection.CollUtil;
import com.roncoo.education.common.config.ThreadContext;
import com.roncoo.education.common.core.base.Page;
import com.roncoo.education.common.core.base.PageUtil;
import com.roncoo.education.common.core.base.Result;
import com.roncoo.education.common.core.tools.BeanUtil;
import com.roncoo.education.common.service.BaseBiz;
import com.roncoo.education.course.dao.CourseDao;
import com.roncoo.education.course.dao.UserCourseCommentDao;
import com.roncoo.education.course.dao.impl.mapper.entity.Course;
import com.roncoo.education.course.dao.impl.mapper.entity.UserCourseComment;
import com.roncoo.education.course.dao.impl.mapper.entity.UserCourseCommentExample;
import com.roncoo.education.course.service.auth.req.AuthUserCourseCommentPageReq;
import com.roncoo.education.course.service.auth.req.AuthUserCourseCommentReq;
import com.roncoo.education.course.service.auth.resp.AuthUserCourseCommentResp;
import com.roncoo.education.course.service.biz.resp.CourseResp;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import javax.validation.constraints.NotNull;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* AUTH-课程评论
......@@ -26,9 +35,23 @@ public class AuthUserCourseCommentBiz extends BaseBiz {
@NotNull
private final UserCourseCommentDao dao;
@NotNull
private final CourseDao courseDao;
public Result<Page<AuthUserCourseCommentResp>> listForPage(AuthUserCourseCommentPageReq req) {
return null;
UserCourseCommentExample example = new UserCourseCommentExample();
example.createCriteria().andUserIdEqualTo(ThreadContext.userId());
example.setOrderByClause("id desc");
Page<AuthUserCourseCommentResp> resp = PageUtil.transform(dao.page(req.getPageCurrent(), req.getPageSize(), example), AuthUserCourseCommentResp.class);
if (CollUtil.isNotEmpty(resp.getList())) {
List<Long> courseIds = resp.getList().stream().map(AuthUserCourseCommentResp::getCourseId).collect(Collectors.toList());
Map<Long, Course> courseMap = courseDao.listByIds(courseIds).stream().collect(Collectors.toMap(Course::getId, item -> item));
for (AuthUserCourseCommentResp res : resp.getList()) {
res.setCourseResp(BeanUtil.copyProperties(courseMap.get(res.getCourseId()), CourseResp.class));
}
}
return Result.success(resp);
}
public Result<String> add(AuthUserCourseCommentReq req) {
......
package com.roncoo.education.course.service.auth.resp;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.time.LocalDateTime;
import java.io.Serializable;
import com.roncoo.education.course.service.biz.resp.CourseResp;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* API-AUTH-课程收藏
......@@ -47,4 +47,7 @@ public class AuthUserCourseCollectResp implements Serializable {
@ApiModelProperty(value = "课程ID")
private Long courseId;
@ApiModelProperty(value = "课程信息")
private CourseResp courseResp;
}
package com.roncoo.education.course.service.auth.resp;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.roncoo.education.course.service.biz.resp.CourseResp;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -52,4 +53,7 @@ public class AuthUserCourseCommentResp implements Serializable {
@ApiModelProperty(value = "评论内容")
private String commentText;
@ApiModelProperty(value = "课程信息")
private CourseResp courseResp;
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册