提交 fc3461d2 编写于 作者: F fengyw

增加课程评论和课程收藏列出功能

上级 08fd98cd
......@@ -131,8 +131,8 @@ public class AdminCourseChapterBiz extends BaseBiz {
*/
@Transactional(rollbackFor = Exception.class)
public Result<String> delete(Long id) {
List<CourseChapterPeriod> periodList = courseChapterPeriodDao.listByChapterId(id);
if(CollUtil.isNotEmpty(periodList) && periodList.size() > 0){
List<CourseChapterPeriod> periodList = courseChapterPeriodDao.listByChapterId(id);
if (CollUtil.isNotEmpty(periodList) && periodList.size() > 0) {
return Result.error("请先删除节,才能删除章");
}
if (dao.deleteById(id) > 0) {
......
package com.roncoo.education.course.service.admin.biz;
import com.roncoo.education.common.service.BaseBiz;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.DesensitizedUtil;
import cn.hutool.core.util.ObjectUtil;
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.UserCourseCollectDao;
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.dao.impl.mapper.entity.UserCourseCollectExample.Criteria;
import com.roncoo.education.course.service.admin.req.AdminUserCourseCollectEditReq;
import com.roncoo.education.course.service.admin.req.AdminUserCourseCollectPageReq;
import com.roncoo.education.course.service.admin.req.AdminUserCourseCollectSaveReq;
import com.roncoo.education.course.service.admin.resp.AdminUserCourseCollectPageResp;
import com.roncoo.education.course.service.admin.resp.AdminUserCourseCollectViewResp;
import com.roncoo.education.course.dao.UserCourseCollectDao;
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.dao.impl.mapper.entity.UserCourseCollectExample.Criteria;
import com.roncoo.education.user.feign.interfaces.IFeignUsers;
import com.roncoo.education.user.feign.interfaces.vo.UsersVO;
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;
/**
* ADMIN-课程收藏
......@@ -27,6 +35,8 @@ import javax.validation.constraints.NotNull;
@Component
@RequiredArgsConstructor
public class AdminUserCourseCollectBiz extends BaseBiz {
@NotNull
private final IFeignUsers feignUsers;
@NotNull
private final UserCourseCollectDao dao;
......@@ -40,8 +50,22 @@ public class AdminUserCourseCollectBiz extends BaseBiz {
public Result<Page<AdminUserCourseCollectPageResp>> page(AdminUserCourseCollectPageReq req) {
UserCourseCollectExample example = new UserCourseCollectExample();
Criteria c = example.createCriteria();
if (ObjectUtil.isNotEmpty(req.getCourseId())) {
c.andCourseIdEqualTo(req.getCourseId());
}
Page<UserCourseCollect> page = dao.page(req.getPageCurrent(), req.getPageSize(), example);
Page<AdminUserCourseCollectPageResp> respPage = PageUtil.transform(page, AdminUserCourseCollectPageResp.class);
if (CollUtil.isNotEmpty(respPage.getList())) {
List<Long> userIdList = respPage.getList().stream().map(item -> item.getUserId()).collect(Collectors.toList());
Map<Long, UsersVO> usersVOMap = feignUsers.listByIds(userIdList);
for (AdminUserCourseCollectPageResp resp : respPage.getList()) {
UsersVO usersVO = usersVOMap.get(resp.getUserId());
if (ObjectUtil.isNotEmpty(usersVO)) {
resp.setMobile(DesensitizedUtil.mobilePhone(usersVO.getMobile()));
resp.setNickname(usersVO.getNickname());
}
}
}
return Result.success(respPage);
}
......
package com.roncoo.education.course.service.admin.biz;
import com.roncoo.education.common.service.BaseBiz;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.DesensitizedUtil;
import cn.hutool.core.util.ObjectUtil;
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.UserCourseCommentDao;
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.dao.impl.mapper.entity.UserCourseCommentExample.Criteria;
import com.roncoo.education.course.service.admin.req.AdminUserCourseCommentEditReq;
import com.roncoo.education.course.service.admin.req.AdminUserCourseCommentPageReq;
import com.roncoo.education.course.service.admin.req.AdminUserCourseCommentSaveReq;
import com.roncoo.education.course.service.admin.resp.AdminUserCourseCommentPageResp;
import com.roncoo.education.course.service.admin.resp.AdminUserCourseCommentViewResp;
import com.roncoo.education.course.dao.UserCourseCommentDao;
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.dao.impl.mapper.entity.UserCourseCommentExample.Criteria;
import com.roncoo.education.user.feign.interfaces.IFeignUsers;
import com.roncoo.education.user.feign.interfaces.vo.UsersVO;
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;
/**
* ADMIN-课程评论
......@@ -27,7 +35,8 @@ import javax.validation.constraints.NotNull;
@Component
@RequiredArgsConstructor
public class AdminUserCourseCommentBiz extends BaseBiz {
@NotNull
private final IFeignUsers feignUsers;
@NotNull
private final UserCourseCommentDao dao;
......@@ -40,8 +49,22 @@ public class AdminUserCourseCommentBiz extends BaseBiz {
public Result<Page<AdminUserCourseCommentPageResp>> page(AdminUserCourseCommentPageReq req) {
UserCourseCommentExample example = new UserCourseCommentExample();
Criteria c = example.createCriteria();
if (ObjectUtil.isNotEmpty(req.getCourseId())) {
c.andCourseIdEqualTo(req.getCourseId());
}
Page<UserCourseComment> page = dao.page(req.getPageCurrent(), req.getPageSize(), example);
Page<AdminUserCourseCommentPageResp> respPage = PageUtil.transform(page, AdminUserCourseCommentPageResp.class);
if (CollUtil.isNotEmpty(respPage.getList())) {
List<Long> userIdList = respPage.getList().stream().map(item -> item.getUserId()).collect(Collectors.toList());
Map<Long, UsersVO> usersVOMap = feignUsers.listByIds(userIdList);
for (AdminUserCourseCommentPageResp resp : respPage.getList()) {
UsersVO usersVO = usersVOMap.get(resp.getUserId());
if (ObjectUtil.isNotEmpty(usersVO)) {
resp.setMobile(DesensitizedUtil.mobilePhone(usersVO.getMobile()));
resp.setNickname(usersVO.getNickname());
}
}
}
return Result.success(respPage);
}
......
package com.roncoo.education.course.service.admin.req;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.time.LocalDateTime;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* <p>
* ADMIN-课程收藏
......@@ -24,23 +21,6 @@ public class AdminUserCourseCollectPageReq implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键")
private Long id;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建时间")
private LocalDateTime gmtCreate;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "修改时间")
private LocalDateTime gmtModified;
@ApiModelProperty(value = "状态(1:正常,0:禁用)")
private Integer statusId;
@ApiModelProperty(value = "排序")
private Integer sort;
@ApiModelProperty(value = "用户ID")
private Long userId;
......
package com.roncoo.education.course.service.admin.req;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.time.LocalDateTime;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* <p>
* ADMIN-课程评论
......@@ -24,35 +21,12 @@ public class AdminUserCourseCommentPageReq implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键")
private Long id;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建时间")
private LocalDateTime gmtCreate;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "修改时间")
private LocalDateTime gmtModified;
@ApiModelProperty(value = "状态(1:正常,0:禁用)")
private Integer statusId;
@ApiModelProperty(value = "排序")
private Integer sort;
@ApiModelProperty(value = "用户ID")
private Long userId;
@ApiModelProperty(value = "课程ID")
private Long courseId;
@ApiModelProperty(value = "评论ID")
private Long commentId;
@ApiModelProperty(value = "评论内容")
private String commentText;
@ApiModelProperty(value = "当前页")
private int pageCurrent = 1;
......
package com.roncoo.education.course.service.admin.resp;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.time.LocalDateTime;
import java.io.Serializable;
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>
* ADMIN-课程收藏
......@@ -44,6 +43,12 @@ public class AdminUserCourseCollectPageResp implements Serializable {
@ApiModelProperty(value = "用户ID")
private Long userId;
@ApiModelProperty(value = "手机号码")
private String mobile;
@ApiModelProperty(value = "昵称")
private String nickname;
@ApiModelProperty(value = "课程ID")
private Long courseId;
}
package com.roncoo.education.course.service.admin.resp;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.time.LocalDateTime;
import java.io.Serializable;
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>
* ADMIN-课程评论
......@@ -44,6 +43,12 @@ public class AdminUserCourseCommentPageResp implements Serializable {
@ApiModelProperty(value = "用户ID")
private Long userId;
@ApiModelProperty(value = "手机号码")
private String mobile;
@ApiModelProperty(value = "昵称")
private String nickname;
@ApiModelProperty(value = "课程ID")
private Long courseId;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册