This commit is contained in:
zhaolongfei
2024-05-28 15:10:33 +08:00
parent 189a47d4d0
commit 1c3a70bc12
13 changed files with 67 additions and 39 deletions

View File

@@ -18,6 +18,8 @@ import com.xboe.school.study.service.IStudyAssessService;
import lombok.extern.slf4j.Slf4j;
import javax.servlet.http.HttpServletRequest;
@Slf4j
@RestController
@RequestMapping(value="/xboe/school/study/assess")
@@ -27,18 +29,22 @@ public class StudyAssessApi extends ApiBaseController{
IStudyAssessService sassessService;
@PostMapping("/save")
public JsonResponse<StudyAssess> save(@RequestBody StudyAssess assess){
public JsonResponse<StudyAssess> save(@RequestBody StudyAssess assess, HttpServletRequest request){
if(StringUtils.isBlank(assess.getCourseId())) {
return badRequest("无课程信息");
}
if(StringUtils.isBlank(assess.getStudyId())) {
return badRequest("无学习id");
}
String token = request.getHeader("Xboe-Access-Token");
if (StringUtils.isEmpty(token)) {
token = request.getHeader("token");
}
try {
CurrentUser cu=getCurrent();
assess.setStudentId(cu.getAccountId());
assess.setStudentName(cu.getName());
sassessService.save(assess);
sassessService.save(assess,token);
return success(assess);
}catch(Exception e) {
log.error("保存课程评估信息错误",e);

View File

@@ -326,14 +326,11 @@ public class StudyCourseApi extends ApiBaseController{
if(item!=null) {
//如果记录存在但是进度不100无成情况就更新进度一期不会有这种情况
if(item.getProgress()<100 && sci.getProgress()>item.getProgress()) {
studyService.updateProcess(item.getId(), sci.getStudyId(), sci.getCourseId(), sci.getContentTotal(), sci.getProgress());
studyService.updateProcess(item.getId(), sci.getStudyId(), sci.getCourseId(), sci.getContentTotal(), sci.getProgress(),token);
}
//追加学习时长
studyService.appendStudyDuration(sci.getStudyId(),item.getId(),sci.getContentId(),sci.getDuration());
List<StudyCourse> allUserList = thirdApi.getStudyCourseList(sci.getStudyId(), sci.getCourseId(), token);
log.info("在线课学习记录"+allUserList);
System.out.println("在线课学习记录"+allUserList);
//System.out.println("在线课学习记录"+allUserList);
return success(item.getId());
}
@@ -348,7 +345,7 @@ public class StudyCourseApi extends ApiBaseController{
sci.setAid(cuser.getAccountId());
sci.setAname(cuser.getName());
studyService.saveStudyInfo(sci);
studyService.saveStudyInfo(sci,token);
//学习记录成功后处理
studyService.appendStudyDuration(sci.getStudyId(),sci.getStudyItemId(),sci.getContentId(),sci.getDuration());
@@ -392,7 +389,7 @@ public class StudyCourseApi extends ApiBaseController{
* @return
*/
@PostMapping("/study-content-finish")
public JsonResponse<String> studyContentFinish(@RequestBody StudyContentDto sci){
public JsonResponse<String> studyContentFinish(@RequestBody StudyContentDto sci, HttpServletRequest request){
if(StringUtils.isBlank(sci.getStudyId())){
return error("参数错误");
@@ -403,11 +400,15 @@ public class StudyCourseApi extends ApiBaseController{
// LocalDateTime now=LocalDateTime.now();
CurrentUser cuser=getCurrent();
//检查是否已存在
String token = request.getHeader("Xboe-Access-Token");
if (StringUtils.isEmpty(token)) {
token = request.getHeader("token");
}
StudyCourseItem item = studyService.checkHas(sci.getStudyId(),sci.getContentId());
if(item!=null) {
//如果记录存在但是进度不到100未完成情况就更新进度一期不会有这种情况
if(item.getProgress()<100) {
studyService.updateProcess(item.getId(),sci.getStudyId(),sci.getCourseId(), sci.getContentTotal(),100);
studyService.updateProcess(item.getId(),sci.getStudyId(),sci.getCourseId(), sci.getContentTotal(),100,token);
}
//追加学习时长,学习时长是单独的记录,这里不再进行记录
//studyService.appendStudyDuration(st);
@@ -418,7 +419,7 @@ public class StudyCourseApi extends ApiBaseController{
sci.setAid(cuser.getAccountId());
sci.setAname(cuser.getName());
sci.setProgress(100);
studyService.saveStudyInfo(sci);
studyService.saveStudyInfo(sci,token);
return success(sci.getStudyItemId());
}catch(Exception e) {
log.error("记录学习课程内容完成错误",e);
@@ -507,7 +508,7 @@ public class StudyCourseApi extends ApiBaseController{
token = request.getHeader("token");
}
try {
studyService.finishVideoStudyItem(itemId, studyId,courseId,cnum);
studyService.finishVideoStudyItem(itemId, studyId,courseId,cnum,token);
List<StudyCourse> allUserList = thirdApi.getStudyCourseList(studyId, courseId, token);
log.info("在线课学习记录"+allUserList);
return success(true);

View File

@@ -23,6 +23,8 @@ import com.xboe.school.study.service.IStudyExamService;
import lombok.extern.slf4j.Slf4j;
import javax.servlet.http.HttpServletRequest;
@Slf4j
@RestController
@RequestMapping(value="/xboe/school/study/exam")
@@ -48,7 +50,7 @@ public class StudyExamApi extends ApiBaseController{
}
@PostMapping("/save")
public JsonResponse<StudyExam> save(@RequestBody StudyExam exam){
public JsonResponse<StudyExam> save(@RequestBody StudyExam exam, HttpServletRequest request){
if(StringUtils.isBlank(exam.getCourseId())) {
return badRequest("无课程信息");
}
@@ -58,6 +60,10 @@ public class StudyExamApi extends ApiBaseController{
if(exam.getScore()==null) {
return badRequest("得分计算错误");
}
String token = request.getHeader("Xboe-Access-Token");
if (StringUtils.isEmpty(token)) {
token = request.getHeader("token");
}
try {
String key = exam.getStudyId() + "_" + exam.getContentId();
//判断是否存在redis
@@ -80,7 +86,7 @@ public class StudyExamApi extends ApiBaseController{
exam.setEndTime(exam.getLastTime());
}
log.info( exam.getStudyId() + "_" + exam.getContentId() + "------------试卷开始提交 " + LocalDateTime.now());
String msg = sexamService.save(exam);
String msg = sexamService.save(exam,token);
log.info( exam.getStudyId() + "_" + exam.getContentId() + "------------试卷保存完毕 msg = " + msg + " , " + LocalDateTime.now());
exam.setAnswerJson("");
exam.setPaperJson("");

View File

@@ -19,6 +19,8 @@ import com.xboe.school.study.service.IStudyHomeWorkService;
import lombok.extern.slf4j.Slf4j;
import javax.servlet.http.HttpServletRequest;
@Slf4j
@RestController
@RequestMapping(value="/xboe/school/study/homework")
@@ -28,7 +30,7 @@ public class StudyHomeWorkApi extends ApiBaseController{
IStudyHomeWorkService shomeworkService;
@PostMapping("/save")
public JsonResponse<StudyHomeWork> save(@RequestBody StudyHomeWork shw){
public JsonResponse<StudyHomeWork> save(@RequestBody StudyHomeWork shw, HttpServletRequest request){
if(StringUtils.isBlank(shw.getCourseId())) {
return badRequest("无课程信息");
}
@@ -36,14 +38,17 @@ public class StudyHomeWorkApi extends ApiBaseController{
if(StringUtils.isBlank(shw.getStudyId())) {
return badRequest("您还没有学习,不可提交作业");
}
String token = request.getHeader("Xboe-Access-Token");
if (StringUtils.isEmpty(token)) {
token = request.getHeader("token");
}
try {
CurrentUser cu=getCurrent();
shw.setStudentId(cu.getAccountId());
shw.setStudentName(cu.getName());
shw.setEndTime(LocalDateTime.now());
shomeworkService.save(shw);
shomeworkService.save(shw,token);
return success(shw);
}catch(Exception e) {

View File

@@ -1,7 +1,9 @@
package com.xboe.school.study.dao;
import java.time.LocalDateTime;
import java.util.List;
import com.xboe.api.ThirdApi;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@@ -13,6 +15,8 @@ import com.xboe.module.course.dao.CourseContentDao;
import com.xboe.school.study.entity.StudyCourse;
import com.xboe.school.study.entity.StudyCourseItem;
import javax.annotation.Resource;
@Slf4j
@Repository
public class StudyCourseDao extends BaseDao<StudyCourse> {
@@ -22,14 +26,16 @@ public class StudyCourseDao extends BaseDao<StudyCourse> {
@Autowired
StudyCourseItemDao scItemDao;
@Resource
private ThirdApi thirdApi;
/**
* 完成情况检查
* @param studyId
* @param courseId
* @param total
*/
public void finishCheck(String studyId,String courseId,Integer total){
public void finishCheck(String studyId,String courseId,Integer total,String token){
log.info("------1.完成情况检查---------------studyId = " + studyId + " , courseId = " + courseId + " , total = " + total );
LocalDateTime now=LocalDateTime.now();
//已完成的内容
@@ -58,6 +64,9 @@ public class StudyCourseDao extends BaseDao<StudyCourse> {
UpdateBuilder.create("lastTime",LocalDateTime.now()),
UpdateBuilder.create("status",StudyCourse.STATUS_STUDYING));
}
List<StudyCourse> allUserList = thirdApi.getStudyCourseList(studyId,courseId, token);
log.info("在线课学习记录"+allUserList);
}
public void finishCheck1(String studyId,String courseId,Integer total){

View File

@@ -10,7 +10,7 @@ public interface IStudyAssessService {
* 保存考试信息
* @param exam
*/
void save(StudyAssess homework);
void save(StudyAssess homework,String token);
StudyAssess get(String id);

View File

@@ -10,7 +10,7 @@ public interface IStudyExamService {
* 保存考试信息
* @param exam
*/
String save(StudyExam exam);
String save(StudyExam exam,String token);
StudyExam get(String id);

View File

@@ -10,7 +10,7 @@ public interface IStudyHomeWorkService {
* 保存考试信息
* @param exam
*/
void save(StudyHomeWork homework);
void save(StudyHomeWork homework,String token);
StudyHomeWork get(String id);

View File

@@ -30,7 +30,7 @@ public interface IStudyService {
* @param studyContentId
* @param progress
*/
void updateProcess(String studyContentId,String studyId, String courseId,Integer total,Integer progress);
void updateProcess(String studyContentId,String studyId, String courseId,Integer total,Integer progress,String token);
/**
* 更新最后的学习时间,及学习时间点
@@ -44,7 +44,7 @@ public interface IStudyService {
* 资源学习记录
* @param sci
*/
void saveStudyInfo(StudyContentDto dto);
void saveStudyInfo(StudyContentDto dto,String token);
/**
* 保存学习内容,用于开始学习时添加学习条目
@@ -59,7 +59,7 @@ public interface IStudyService {
* @param courseId
* @param cnum
*/
void finishVideoStudyItem(String itemId,String studyId,String courseId,Integer cnum);
void finishVideoStudyItem(String itemId,String studyId,String courseId,Integer cnum,String token);
/**
* 追加学习持续时长,此处理是一期的有追加记录二期后追加记录在stat服务中这里不需要再记录了所以不建议使用此方法

View File

@@ -4,8 +4,10 @@ import java.time.LocalDateTime;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.transaction.Transactional;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -35,8 +37,7 @@ public class StudyAssessServiceImpl implements IStudyAssessService{
@Override
@Transactional
public void save(StudyAssess assess) {
public void save(StudyAssess assess,String token) {
//完成处理,判断是否已存在
Object obj=scItemDao.findField("id", FieldFilters.eq("studyId", assess.getStudyId()), FieldFilters.eq("contentId", assess.getContentId()));
if(obj==null) {
@@ -60,7 +61,7 @@ public class StudyAssessServiceImpl implements IStudyAssessService{
dao.save(assess);
//检查是否全部学习完成
int totalContent=courseContentDao.count(FieldFilters.eq("courseId", assess.getCourseId()),FieldFilters.eq("deleted",false));
scDao.finishCheck(assess.getStudyId(),assess.getCourseId(),totalContent);
scDao.finishCheck(assess.getStudyId(),assess.getCourseId(),totalContent,token);
}else {
//转为评估只有一条,所以这里显示一条,不能再增加
assess.setStudyItemId(obj.toString());

View File

@@ -52,7 +52,7 @@ public class StudyExamServiceImpl implements IStudyExamService{
@Override
@Transactional
public String save(StudyExam exam) {
public String save(StudyExam exam,String token) {
String key = exam.getStudyId() + "_" + exam.getContentId();
// //判断是否存在redis
// if(StringUtils.isNotEmpty(redisTemplate.opsForValue().get(key))){
@@ -98,7 +98,7 @@ public class StudyExamServiceImpl implements IStudyExamService{
//检查是否全部学习完成
// int totalContent=courseContentDao.count(FieldFilters.eq("courseId", exam.getCourseId()),FieldFilters.eq("deleted",false));
int totalContent = courseContentDao.getCount(exam.getCourseId());
scDao.finishCheck(exam.getStudyId(),exam.getCourseId(),totalContent);
scDao.finishCheck(exam.getStudyId(),exam.getCourseId(),totalContent,token);
}else {
exam.setStudyItemId(obj.toString());//此项就是学习条目的id

View File

@@ -36,8 +36,8 @@ public class StudyHomeWorkServiceImpl implements IStudyHomeWorkService{
@Override
@Transactional
public void save(StudyHomeWork homework) {
public void save(StudyHomeWork homework,String token) {
//完成处理,判断是否已存在
Object obj=scItemDao.findField("id", FieldFilters.eq("studyId", homework.getStudyId()), FieldFilters.eq("contentId", homework.getContentId()));
@@ -62,7 +62,7 @@ public class StudyHomeWorkServiceImpl implements IStudyHomeWorkService{
dao.save(homework);
//检查是否全部学习完成
int totalContent=courseContentDao.count(FieldFilters.eq("courseId", homework.getCourseId()),FieldFilters.eq("deleted",false));
scDao.finishCheck(homework.getStudyId(),homework.getCourseId(),totalContent);
scDao.finishCheck(homework.getStudyId(),homework.getCourseId(),totalContent,token);
}else {
//只是保留一条作业记录,不再保存多条记录了
//dao.save(homework);

View File

@@ -61,7 +61,7 @@ public class StudyServiceImpl implements IStudyService{
@Override
@Transactional
public void saveStudyInfo(StudyContentDto dto) {
public void saveStudyInfo(StudyContentDto dto,String token) {
StudyCourseItem sci = scItemDao.findOne(FieldFilters.eq("studyId", dto.getStudyId()),FieldFilters.eq("contentId", dto.getContentId()),FieldFilters.eq("aid", dto.getAid()));
LocalDateTime ldt=LocalDateTime.now();
if(sci==null) {
@@ -95,7 +95,7 @@ public class StudyServiceImpl implements IStudyService{
dto.setStudyItemId(sci.getId());
//检查是否全部学习完成
scDao.finishCheck(dto.getStudyId(),dto.getCourseId(),dto.getContentTotal());
scDao.finishCheck(dto.getStudyId(),dto.getCourseId(),dto.getContentTotal(),token);
}
@@ -193,7 +193,7 @@ public class StudyServiceImpl implements IStudyService{
@Override
@Transactional
public void updateProcess(String studyContentId,String studyId, String courseId,Integer total, Integer progress) {
public void updateProcess(String studyContentId,String studyId, String courseId,Integer total, Integer progress,String token) {
int status=StudyCourseItem.STATUS_STUDYING;
LocalDateTime now=LocalDateTime.now();
if(progress.intValue()==100) {
@@ -204,7 +204,7 @@ public class StudyServiceImpl implements IStudyService{
UpdateBuilder.create("finishTime",now),
UpdateBuilder.create("status",status));
//检查是否全部学习完成
scDao.finishCheck(studyId,courseId,total);
scDao.finishCheck(studyId,courseId,total,token);
}else {
scItemDao.updateMultiFieldById(studyContentId,
UpdateBuilder.create("progress",progress),
@@ -296,7 +296,7 @@ public class StudyServiceImpl implements IStudyService{
@Override
@Transactional
public void finishVideoStudyItem(String itemId,String studyId,String courseId,Integer cnum) {
public void finishVideoStudyItem(String itemId,String studyId,String courseId,Integer cnum,String token) {
LocalDateTime now=LocalDateTime.now();
scItemDao.updateMultiFieldById(itemId,
UpdateBuilder.create("progress", 100),
@@ -305,7 +305,7 @@ public class StudyServiceImpl implements IStudyService{
UpdateBuilder.create("status",StudyCourseItem.STATUS_FINISH)
);
//检查是否全部学习完成
scDao.finishCheck(studyId,courseId,cnum);
scDao.finishCheck(studyId,courseId,cnum,token);
}
}