Compare commits

..

3 Commits

Author SHA1 Message Date
Wangxxz
acc62c85e0 优化 2024-11-18 20:07:36 +08:00
Wangxxz
ec00f55606 频繁调用finishCheck100进度更新 2024-11-18 15:43:01 +08:00
Wangxxz
fc94e4aedd 受众加判空 2024-11-08 10:42:05 +08:00
2 changed files with 18 additions and 2 deletions

View File

@@ -177,7 +177,7 @@ public class StudyCourseApi extends ApiBaseController{
if (!Objects.isNull(studyCourse)){
pass = true;
}
if (Objects.isNull(studyCourse) && !courseCrowdList.isEmpty()) {
if (Objects.isNull(studyCourse) && !courseCrowdList.isEmpty() && !StringUtils.isEmpty(audiences)) {
List<String> audienceList = Arrays.asList(audiences.split(",")); // 此用户所在受众组
log.error("---------------参数------------ audienceList = " + audienceList);
for (CourseCrowd c : courseCrowdList) {

View File

@@ -2,10 +2,14 @@ package com.xboe.school.study.dao;
import java.time.LocalDateTime;
import java.util.List;
import java.util.concurrent.TimeUnit;
import com.xboe.api.ThirdApi;
import com.xboe.constants.CacheName;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Repository;
import com.xboe.core.orm.BaseDao;
@@ -26,6 +30,9 @@ public class StudyCourseDao extends BaseDao<StudyCourse> {
@Autowired
StudyCourseItemDao scItemDao;
@Autowired
StringRedisTemplate redisTemplate;
@Resource
private ThirdApi thirdApi;
@@ -36,6 +43,11 @@ public class StudyCourseDao extends BaseDao<StudyCourse> {
* @param total
*/
public void finishCheck(String studyId,String courseId,Integer total,String token){
if(StringUtils.isNotEmpty(redisTemplate.opsForValue().get(studyId + "_" + courseId + "_" + total))){
return ;
}
log.info("------1.完成情况检查---------------studyId = " + studyId + " , courseId = " + courseId + " , total = " + total );
LocalDateTime now=LocalDateTime.now();
//已完成的内容
@@ -50,7 +62,9 @@ public class StudyCourseDao extends BaseDao<StudyCourse> {
}
log.info("------3.完成情况检查---------------studyId = " + studyId + " , courseId = " + courseId + " , total = " + total );
//以下注意float类型是否等于100对应
float percent=n*100/total;
float percent=n*100/total;
if(n>=total) {
//自主报名的课程,代表学习完成
super.updateMultiFieldById(studyId,
@@ -58,11 +72,13 @@ public class StudyCourseDao extends BaseDao<StudyCourse> {
UpdateBuilder.create("lastTime",now),
UpdateBuilder.create("finishTime",now),
UpdateBuilder.create("status",StudyCourse.STATUS_FINISH));
redisTemplate.opsForValue().set(studyId + "_" + courseId + "_" + total, "100", 24, TimeUnit.HOURS);
}else {
super.updateMultiFieldById(studyId,
UpdateBuilder.create("progress",percent),
UpdateBuilder.create("lastTime",LocalDateTime.now()),
UpdateBuilder.create("status",StudyCourse.STATUS_STUDYING));
// redisTemplate.opsForValue().set(studyId, String.valueOf(percent), 10, TimeUnit.SECONDS);
}
List<StudyCourse> allUserList = thirdApi.getStudyCourseList(studyId ,courseId, token);