|
@@ -2,8 +2,10 @@ package com.ynfy.buss.course.usercoursecatalog.service.impl;
|
|
|
|
|
|
import cn.hutool.core.date.DateUnit;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
+import cn.hutool.core.util.NumberUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.ynfy.buss.course.coursecatalog.entity.CourseCatalog;
|
|
|
import com.ynfy.buss.course.usercoursecatalog.entity.UserCourseCatalog;
|
|
|
import com.ynfy.buss.course.usercoursecatalog.entity.vo.CatalogTimeVO;
|
|
|
import com.ynfy.buss.course.usercoursecatalog.mapper.UserCourseCatalogMapper;
|
|
@@ -33,23 +35,30 @@ public class UserCourseCatalogServiceImpl extends ServiceImpl<UserCourseCatalogM
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public synchronized void calcStudyTime(CatalogTimeVO catalogTimeVO) {
|
|
|
- if (StringUtils.isBlank(catalogTimeVO.getCourseCatalogId()) || Objects.isNull(catalogTimeVO.getStartLearnTime())
|
|
|
- || Objects.isNull(catalogTimeVO.getEndLearnTime())) {
|
|
|
+ if (Objects.isNull(catalogTimeVO.getCourseCatalog()) || StringUtils.isBlank(catalogTimeVO.getCourseCatalog().getId())
|
|
|
+ || Objects.isNull(catalogTimeVO.getStartLearnTime()) || Objects.isNull(catalogTimeVO.getEndLearnTime())) {
|
|
|
return;
|
|
|
}
|
|
|
if (DateUtil.compare(catalogTimeVO.getEndLearnTime(), catalogTimeVO.getStartLearnTime()) > 0) {
|
|
|
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
|
-
|
|
|
- UserCourseCatalog courseCatalog = findUserCatalog(sysUser.getId(), catalogTimeVO.getCourseCatalogId());
|
|
|
- if (Objects.isNull(courseCatalog)) {
|
|
|
- courseCatalog = new UserCourseCatalog();
|
|
|
+ CourseCatalog courseCatalog = catalogTimeVO.getCourseCatalog();
|
|
|
+ UserCourseCatalog userCourseCatalog = findUserCatalog(sysUser.getId(), courseCatalog.getId());
|
|
|
+ if (Objects.isNull(userCourseCatalog)) {
|
|
|
+ userCourseCatalog = new UserCourseCatalog();
|
|
|
}
|
|
|
- courseCatalog.setUserId(sysUser.getId());
|
|
|
- courseCatalog.setCourseCatalogId(catalogTimeVO.getCourseCatalogId());
|
|
|
+ userCourseCatalog.setUserId(sysUser.getId());
|
|
|
+ userCourseCatalog.setCourseCatalogId(courseCatalog.getId());
|
|
|
long between = DateUtil.between(catalogTimeVO.getStartLearnTime(), catalogTimeVO.getEndLearnTime(), DateUnit.SECOND);
|
|
|
- courseCatalog.setTotalLearnTime(Integer.parseInt(String.valueOf(((!Objects.isNull(courseCatalog.getTotalLearnTime())
|
|
|
- ? courseCatalog.getTotalLearnTime() : 0) + between))));
|
|
|
- saveOrUpdate(courseCatalog);
|
|
|
+ userCourseCatalog.setTotalLearnTime(Integer.parseInt(String.valueOf(((!Objects.isNull(userCourseCatalog.getTotalLearnTime())
|
|
|
+ ? userCourseCatalog.getTotalLearnTime() : 0) + between))));
|
|
|
+ //如果有必须时长的话则以其分母,如果没有的话取总时长
|
|
|
+ Long number = !Objects.isNull(courseCatalog.getMustLearnTime()) ? courseCatalog.getMustLearnTime() : courseCatalog.getVideoHour();
|
|
|
+ if (!Objects.isNull(number) && number.intValue() > 0) {
|
|
|
+ //计算学习进度
|
|
|
+ userCourseCatalog.setLearnProcess(NumberUtil.div(userCourseCatalog.getTotalLearnTime(), number).doubleValue());
|
|
|
+ }
|
|
|
+
|
|
|
+ saveOrUpdate(userCourseCatalog);
|
|
|
}
|
|
|
}
|
|
|
|