|
@@ -14,24 +14,30 @@ package vip.xiaonuo.disk.service.impl;
|
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.collection.CollStreamUtil;
|
|
import cn.hutool.core.collection.CollStreamUtil;
|
|
|
|
|
+import cn.hutool.core.util.IdUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
-import cn.hutool.core.util.StrUtil;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
-import vip.xiaonuo.common.enums.CommonSortOrderEnum;
|
|
|
|
|
|
|
+import vip.xiaonuo.auth.core.util.StpLoginUserUtil;
|
|
|
import vip.xiaonuo.common.exception.CommonException;
|
|
import vip.xiaonuo.common.exception.CommonException;
|
|
|
import vip.xiaonuo.common.page.CommonPageRequest;
|
|
import vip.xiaonuo.common.page.CommonPageRequest;
|
|
|
|
|
+import vip.xiaonuo.common.pojo.CommonResult;
|
|
|
import vip.xiaonuo.disk.domain.CollectCourse;
|
|
import vip.xiaonuo.disk.domain.CollectCourse;
|
|
|
|
|
+import vip.xiaonuo.disk.domain.CourseInfo;
|
|
|
|
|
+import vip.xiaonuo.disk.dto.courseInfo.CourseInfoIdParam;
|
|
|
import vip.xiaonuo.disk.mapper.CollectCourseMapper;
|
|
import vip.xiaonuo.disk.mapper.CollectCourseMapper;
|
|
|
import vip.xiaonuo.disk.param.CollectCourseAddParam;
|
|
import vip.xiaonuo.disk.param.CollectCourseAddParam;
|
|
|
import vip.xiaonuo.disk.param.CollectCourseEditParam;
|
|
import vip.xiaonuo.disk.param.CollectCourseEditParam;
|
|
|
import vip.xiaonuo.disk.param.CollectCourseIdParam;
|
|
import vip.xiaonuo.disk.param.CollectCourseIdParam;
|
|
|
import vip.xiaonuo.disk.param.CollectCoursePageParam;
|
|
import vip.xiaonuo.disk.param.CollectCoursePageParam;
|
|
|
import vip.xiaonuo.disk.service.CollectCourseService;
|
|
import vip.xiaonuo.disk.service.CollectCourseService;
|
|
|
|
|
+import vip.xiaonuo.disk.service.CourseInfoService;
|
|
|
|
|
|
|
|
|
|
+import javax.annotation.Resource;
|
|
|
|
|
+import java.util.Date;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -43,24 +49,47 @@ import java.util.List;
|
|
|
@Service
|
|
@Service
|
|
|
public class CollectCourseServiceImpl extends ServiceImpl<CollectCourseMapper, CollectCourse> implements CollectCourseService {
|
|
public class CollectCourseServiceImpl extends ServiceImpl<CollectCourseMapper, CollectCourse> implements CollectCourseService {
|
|
|
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private CourseInfoService courseInfoService;
|
|
|
|
|
+
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public Page<CollectCourse> page(CollectCoursePageParam collectCoursePageParam) {
|
|
public Page<CollectCourse> page(CollectCoursePageParam collectCoursePageParam) {
|
|
|
QueryWrapper<CollectCourse> queryWrapper = new QueryWrapper<>();
|
|
QueryWrapper<CollectCourse> queryWrapper = new QueryWrapper<>();
|
|
|
- if(ObjectUtil.isAllNotEmpty(collectCoursePageParam.getSortField(), collectCoursePageParam.getSortOrder())) {
|
|
|
|
|
- CommonSortOrderEnum.validate(collectCoursePageParam.getSortOrder());
|
|
|
|
|
- queryWrapper.orderBy(true, collectCoursePageParam.getSortOrder().equals(CommonSortOrderEnum.ASC.getValue()),
|
|
|
|
|
- StrUtil.toUnderlineCase(collectCoursePageParam.getSortField()));
|
|
|
|
|
- } else {
|
|
|
|
|
- queryWrapper.lambda().orderByAsc(CollectCourse::getCollectId);
|
|
|
|
|
|
|
+ queryWrapper.lambda().eq(CollectCourse::getCollectUserId, StpLoginUserUtil.getLoginUser().getId()); // 查看自己收藏
|
|
|
|
|
+ queryWrapper.lambda().eq(CollectCourse::getCollectState, 0); // 查看收藏状态的
|
|
|
|
|
+ queryWrapper.lambda().orderByDesc(CollectCourse::getCollectTime);
|
|
|
|
|
+ Page<CollectCourse> page = this.page(CommonPageRequest.defaultPage(), queryWrapper);
|
|
|
|
|
+ // 关联课程信息
|
|
|
|
|
+ if (page.getRecords().size() > 0) {
|
|
|
|
|
+ for (CollectCourse record : page.getRecords()) {
|
|
|
|
|
+ CourseInfoIdParam courseInfoIdParam = new CourseInfoIdParam();
|
|
|
|
|
+ courseInfoIdParam.setCourseId(record.getCourseId());
|
|
|
|
|
+ CourseInfo detail = courseInfoService.detail(courseInfoIdParam);
|
|
|
|
|
+ if (detail != null) {
|
|
|
|
|
+ record.setCourseInfo(detail);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- return this.page(CommonPageRequest.defaultPage(), queryWrapper);
|
|
|
|
|
|
|
+ return this.page(page);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@Override
|
|
@Override
|
|
|
public void add(CollectCourseAddParam collectCourseAddParam) {
|
|
public void add(CollectCourseAddParam collectCourseAddParam) {
|
|
|
|
|
+ // 校验是否已经收藏
|
|
|
|
|
+ QueryWrapper<CollectCourse> queryWrapper = new QueryWrapper<>();
|
|
|
|
|
+ queryWrapper.lambda().eq(CollectCourse::getCollectUserId, StpLoginUserUtil.getLoginUser().getId());
|
|
|
|
|
+ queryWrapper.lambda().eq(CollectCourse::getCourseId, collectCourseAddParam.getCourseId());
|
|
|
|
|
+ CollectCourse data = this.getOne(queryWrapper);
|
|
|
|
|
+ if(ObjectUtil.isNotEmpty(data)) {
|
|
|
|
|
+ throw new CommonException("该课程已经收藏");
|
|
|
|
|
+ }
|
|
|
|
|
+ // 执行添加
|
|
|
CollectCourse collectCourse = BeanUtil.toBean(collectCourseAddParam, CollectCourse.class);
|
|
CollectCourse collectCourse = BeanUtil.toBean(collectCourseAddParam, CollectCourse.class);
|
|
|
|
|
+ collectCourse.setCollectId(IdUtil.fastSimpleUUID()); // 主键id
|
|
|
|
|
+ collectCourse.setCollectUserId(StpLoginUserUtil.getLoginUser().getId()); // 当前登录用户id
|
|
|
|
|
+ collectCourse.setCollectTime(new Date()); // 收藏时间
|
|
|
this.save(collectCourse);
|
|
this.save(collectCourse);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -93,4 +122,31 @@ public class CollectCourseServiceImpl extends ServiceImpl<CollectCourseMapper, C
|
|
|
return collectCourse;
|
|
return collectCourse;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void cancel(CollectCourseAddParam collectCourseAddParam) {
|
|
|
|
|
+ // 校验数据是否存在
|
|
|
|
|
+ QueryWrapper<CollectCourse> queryWrapper = new QueryWrapper<>();
|
|
|
|
|
+ queryWrapper.lambda().eq(CollectCourse::getCollectUserId, StpLoginUserUtil.getLoginUser().getId());
|
|
|
|
|
+ queryWrapper.lambda().eq(CollectCourse::getCourseId, collectCourseAddParam.getCourseId());
|
|
|
|
|
+ CollectCourse data = this.getOne(queryWrapper);
|
|
|
|
|
+ if(ObjectUtil.isNotEmpty(data)) {
|
|
|
|
|
+ throw new CommonException("该课程未收藏");
|
|
|
|
|
+ }
|
|
|
|
|
+ // 执行取消
|
|
|
|
|
+ data.setCollectState(1);
|
|
|
|
|
+ this.updateById(data);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public CommonResult<Integer> checkCollect(CollectCourseAddParam collectCourseAddParam) {
|
|
|
|
|
+ QueryWrapper<CollectCourse> queryWrapper = new QueryWrapper<>();
|
|
|
|
|
+ queryWrapper.lambda().eq(CollectCourse::getCollectUserId, StpLoginUserUtil.getLoginUser().getId());
|
|
|
|
|
+ queryWrapper.lambda().eq(CollectCourse::getCourseId, collectCourseAddParam.getCourseId());
|
|
|
|
|
+ CollectCourse data = this.getOne(queryWrapper);
|
|
|
|
|
+ if(ObjectUtil.isNotEmpty(data)) {
|
|
|
|
|
+ return CommonResult.data(0);
|
|
|
|
|
+ }
|
|
|
|
|
+ return CommonResult.data(1);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
}
|
|
}
|