From ec00f55606d7829c310dc77f05dc4324bf7f4a6d Mon Sep 17 00:00:00 2001 From: Wangxxz <980548574@qq.com> Date: Mon, 18 Nov 2024 15:43:01 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=91=E7=B9=81=E8=B0=83=E7=94=A8finishCheck?= =?UTF-8?q?100=E8=BF=9B=E5=BA=A6=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xboe/school/study/dao/StudyCourseDao.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/school/study/dao/StudyCourseDao.java b/servers/boe-server-all/src/main/java/com/xboe/school/study/dao/StudyCourseDao.java index 462f9c26..1671003d 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/school/study/dao/StudyCourseDao.java +++ b/servers/boe-server-all/src/main/java/com/xboe/school/study/dao/StudyCourseDao.java @@ -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 { @Autowired StudyCourseItemDao scItemDao; + @Autowired + StringRedisTemplate redisTemplate; + @Resource private ThirdApi thirdApi; @@ -36,6 +43,11 @@ public class StudyCourseDao extends BaseDao { * @param total */ public void finishCheck(String studyId,String courseId,Integer total,String token){ + + if(StringUtils.isNotEmpty(redisTemplate.opsForValue().get(studyId))){ + return ; + } + log.info("------1.完成情况检查---------------studyId = " + studyId + " , courseId = " + courseId + " , total = " + total ); LocalDateTime now=LocalDateTime.now(); //已完成的内容 @@ -50,7 +62,9 @@ public class StudyCourseDao extends BaseDao { } 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 { UpdateBuilder.create("lastTime",now), UpdateBuilder.create("finishTime",now), UpdateBuilder.create("status",StudyCourse.STATUS_FINISH)); + redisTemplate.opsForValue().set(studyId, "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 allUserList = thirdApi.getStudyCourseList(studyId ,courseId, token);