Merge branch 'zcwy0525-llf' into 'master'

Zcwy0525 llf

See merge request !103
This commit is contained in:
joshen
2024-05-29 17:47:49 +08:00
16 changed files with 128 additions and 70 deletions

View File

@@ -48,7 +48,7 @@ public class UrlSecurityFilterImpl implements IUrlSecurityFilter{
return false; return false;
} }
return true; return false;
} }
} }

View File

@@ -2,6 +2,8 @@ package com.xboe.school.study.api;
import java.util.List; import java.util.List;
import com.xboe.api.ThirdApi;
import com.xboe.school.study.entity.StudyCourse;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@@ -18,6 +20,9 @@ import com.xboe.school.study.service.IStudyAssessService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
@Slf4j @Slf4j
@RestController @RestController
@RequestMapping(value="/xboe/school/study/assess") @RequestMapping(value="/xboe/school/study/assess")
@@ -25,20 +30,27 @@ public class StudyAssessApi extends ApiBaseController{
@Autowired @Autowired
IStudyAssessService sassessService; IStudyAssessService sassessService;
@Resource
private ThirdApi thirdApi;
@PostMapping("/save") @PostMapping("/save")
public JsonResponse<StudyAssess> save(@RequestBody StudyAssess assess){ public JsonResponse<StudyAssess> save(@RequestBody StudyAssess assess, HttpServletRequest request){
if(StringUtils.isBlank(assess.getCourseId())) { if(StringUtils.isBlank(assess.getCourseId())) {
return badRequest("无课程信息"); return badRequest("无课程信息");
} }
if(StringUtils.isBlank(assess.getStudyId())) { if(StringUtils.isBlank(assess.getStudyId())) {
return badRequest("无学习id"); return badRequest("无学习id");
} }
String token = request.getHeader("Xboe-Access-Token");
if (StringUtils.isEmpty(token)) {
token = request.getHeader("token");
}
try { try {
CurrentUser cu=getCurrent(); CurrentUser cu=getCurrent();
assess.setStudentId(cu.getAccountId()); assess.setStudentId(cu.getAccountId());
assess.setStudentName(cu.getName()); assess.setStudentName(cu.getName());
sassessService.save(assess); sassessService.save(assess,token);
List<StudyCourse> allUserList = thirdApi.getStudyCourseList(assess.getStudyId() ,assess.getCourseId(), token);
log.info("在线课学习记录"+allUserList);
return success(assess); return success(assess);
}catch(Exception e) { }catch(Exception e) {
log.error("保存课程评估信息错误",e); log.error("保存课程评估信息错误",e);

View File

@@ -326,14 +326,12 @@ public class StudyCourseApi extends ApiBaseController{
if(item!=null) { if(item!=null) {
//如果记录存在但是进度不100无成情况就更新进度一期不会有这种情况 //如果记录存在但是进度不100无成情况就更新进度一期不会有这种情况
if(item.getProgress()<100 && sci.getProgress()>item.getProgress()) { 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()); studyService.appendStudyDuration(sci.getStudyId(),item.getId(),sci.getContentId(),sci.getDuration());
List<StudyCourse> allUserList = thirdApi.getStudyCourseList(sci.getStudyId() ,sci.getCourseId(), token);
List<StudyCourse> allUserList = thirdApi.getStudyCourseList(sci.getStudyId(), sci.getCourseId(), token);
log.info("在线课学习记录"+allUserList); log.info("在线课学习记录"+allUserList);
System.out.println("在线课学习记录"+allUserList);
return success(item.getId()); return success(item.getId());
} }
@@ -348,13 +346,12 @@ public class StudyCourseApi extends ApiBaseController{
sci.setAid(cuser.getAccountId()); sci.setAid(cuser.getAccountId());
sci.setAname(cuser.getName()); sci.setAname(cuser.getName());
studyService.saveStudyInfo(sci); studyService.saveStudyInfo(sci,token);
//学习记录成功后处理 //学习记录成功后处理
studyService.appendStudyDuration(sci.getStudyId(),sci.getStudyItemId(),sci.getContentId(),sci.getDuration()); studyService.appendStudyDuration(sci.getStudyId(),sci.getStudyItemId(),sci.getContentId(),sci.getDuration());
List<StudyCourse> allUserList = thirdApi.getStudyCourseList(sci.getStudyId() ,sci.getCourseId(), token);
List<StudyCourse> allUserList = thirdApi.getStudyCourseList(sci.getStudyId(), sci.getCourseId(), token);
log.info("在线课学习记录"+allUserList); log.info("在线课学习记录"+allUserList);
System.out.println("在线课学习记录"+allUserList); //System.out.println("在线课学习记录"+allUserList);
return success(sci.getStudyItemId()); return success(sci.getStudyItemId());
}catch(Exception e) { }catch(Exception e) {
log.error("记录学习情况错误",e); log.error("记录学习情况错误",e);
@@ -392,7 +389,7 @@ public class StudyCourseApi extends ApiBaseController{
* @return * @return
*/ */
@PostMapping("/study-content-finish") @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())){ if(StringUtils.isBlank(sci.getStudyId())){
return error("参数错误"); return error("参数错误");
@@ -402,15 +399,21 @@ public class StudyCourseApi extends ApiBaseController{
} }
// LocalDateTime now=LocalDateTime.now(); // LocalDateTime now=LocalDateTime.now();
CurrentUser cuser=getCurrent(); 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()); StudyCourseItem item = studyService.checkHas(sci.getStudyId(),sci.getContentId());
if(item!=null) { if(item!=null) {
//如果记录存在但是进度不到100未完成情况就更新进度一期不会有这种情况 //如果记录存在但是进度不到100未完成情况就更新进度一期不会有这种情况
if(item.getProgress()<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); //studyService.appendStudyDuration(st);
List<StudyCourse> allUserList = thirdApi.getStudyCourseList(sci.getStudyId() ,sci.getCourseId(), token);
log.info("在线课学习记录"+allUserList);
return success(item.getId()); return success(item.getId());
} }
//如果不存在,就创建,这种情况应该不存在 //如果不存在,就创建,这种情况应该不存在
@@ -418,7 +421,9 @@ public class StudyCourseApi extends ApiBaseController{
sci.setAid(cuser.getAccountId()); sci.setAid(cuser.getAccountId());
sci.setAname(cuser.getName()); sci.setAname(cuser.getName());
sci.setProgress(100); sci.setProgress(100);
studyService.saveStudyInfo(sci); studyService.saveStudyInfo(sci,token);
List<StudyCourse> allUserList = thirdApi.getStudyCourseList(sci.getStudyId() ,sci.getCourseId(), token);
log.info("在线课学习记录"+allUserList);
return success(sci.getStudyItemId()); return success(sci.getStudyItemId());
}catch(Exception e) { }catch(Exception e) {
log.error("记录学习课程内容完成错误",e); log.error("记录学习课程内容完成错误",e);
@@ -507,8 +512,8 @@ public class StudyCourseApi extends ApiBaseController{
token = request.getHeader("token"); token = request.getHeader("token");
} }
try { try {
studyService.finishVideoStudyItem(itemId, studyId,courseId,cnum); studyService.finishVideoStudyItem(itemId, studyId,courseId,cnum,token);
List<StudyCourse> allUserList = thirdApi.getStudyCourseList(studyId, courseId, token); List<StudyCourse> allUserList = thirdApi.getStudyCourseList(studyId ,courseId, token);
log.info("在线课学习记录"+allUserList); log.info("在线课学习记录"+allUserList);
return success(true); return success(true);
}catch(Exception e) { }catch(Exception e) {
@@ -550,7 +555,7 @@ public class StudyCourseApi extends ApiBaseController{
*/ */
@Deprecated @Deprecated
@RequestMapping(value="/appendtime",method = {RequestMethod.GET,RequestMethod.POST}) @RequestMapping(value="/appendtime",method = {RequestMethod.GET,RequestMethod.POST})
public JsonResponse<String> appendTime(StudyTime studyTime){ public JsonResponse<String> appendTime(StudyTime studyTime, HttpServletRequest request){
if(StringUtils.isBlank(studyTime.getStudyId())){ if(StringUtils.isBlank(studyTime.getStudyId())){
return error("参数错误"); return error("参数错误");
@@ -564,11 +569,17 @@ public class StudyCourseApi extends ApiBaseController{
CurrentUser cuser=getCurrent(); CurrentUser cuser=getCurrent();
studyTime.setStudentId(cuser.getAccountId()); studyTime.setStudentId(cuser.getAccountId());
studyTime.setStudentName(cuser.getName()); studyTime.setStudentName(cuser.getName());
String token = request.getHeader("Xboe-Access-Token");
if (StringUtils.isEmpty(token)) {
token = request.getHeader("token");
}
try { try {
//此处需要优化处理, //此处需要优化处理,
//不能直接记录追加学习时间。以后增加到队列中,后台服务定时从队列中读取, 更新到系统中 //不能直接记录追加学习时间。以后增加到队列中,后台服务定时从队列中读取, 更新到系统中
//studyService.appendStudyDuration(studyTime); //studyService.appendStudyDuration(studyTime);
studyService.appendStudyDuration(studyTime.getStudyId(),null,studyTime.getContentId(),studyTime.getDuration()); studyService.appendStudyDuration(studyTime.getStudyId(),null,studyTime.getContentId(),studyTime.getDuration());
List<StudyCourse> allUserList = thirdApi.getStudyCourseList(studyTime.getStudyId() ,studyTime.getCourseId(), token);
log.info("在线课学习记录"+allUserList);
return success(studyTime.getId()); return success(studyTime.getId());
}catch(Exception e) { }catch(Exception e) {
log.error("记录学习时长错误",e); log.error("记录学习时长错误",e);

View File

@@ -6,6 +6,8 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import com.xboe.api.ThirdApi;
import com.xboe.school.study.entity.StudyCourse;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate;
@@ -23,6 +25,9 @@ import com.xboe.school.study.service.IStudyExamService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
@Slf4j @Slf4j
@RestController @RestController
@RequestMapping(value="/xboe/school/study/exam") @RequestMapping(value="/xboe/school/study/exam")
@@ -33,7 +38,8 @@ public class StudyExamApi extends ApiBaseController{
@Autowired @Autowired
StringRedisTemplate redisTemplate; StringRedisTemplate redisTemplate;
@Resource
private ThirdApi thirdApi;
/**2024.04.24 /**2024.04.24
* 矫正学员课程进度及完成状态 * 矫正学员课程进度及完成状态
@@ -48,7 +54,7 @@ public class StudyExamApi extends ApiBaseController{
} }
@PostMapping("/save") @PostMapping("/save")
public JsonResponse<StudyExam> save(@RequestBody StudyExam exam){ public JsonResponse<StudyExam> save(@RequestBody StudyExam exam, HttpServletRequest request){
if(StringUtils.isBlank(exam.getCourseId())) { if(StringUtils.isBlank(exam.getCourseId())) {
return badRequest("无课程信息"); return badRequest("无课程信息");
} }
@@ -58,6 +64,10 @@ public class StudyExamApi extends ApiBaseController{
if(exam.getScore()==null) { if(exam.getScore()==null) {
return badRequest("得分计算错误"); return badRequest("得分计算错误");
} }
String token = request.getHeader("Xboe-Access-Token");
if (StringUtils.isEmpty(token)) {
token = request.getHeader("token");
}
try { try {
String key = exam.getStudyId() + "_" + exam.getContentId(); String key = exam.getStudyId() + "_" + exam.getContentId();
//判断是否存在redis //判断是否存在redis
@@ -80,14 +90,15 @@ public class StudyExamApi extends ApiBaseController{
exam.setEndTime(exam.getLastTime()); exam.setEndTime(exam.getLastTime());
} }
log.info( exam.getStudyId() + "_" + exam.getContentId() + "------------试卷开始提交 " + LocalDateTime.now()); 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()); log.info( exam.getStudyId() + "_" + exam.getContentId() + "------------试卷保存完毕 msg = " + msg + " , " + LocalDateTime.now());
exam.setAnswerJson(""); exam.setAnswerJson("");
exam.setPaperJson(""); exam.setPaperJson("");
//执行完毕 清除redis记录 //执行完毕 清除redis记录
redisTemplate.delete(key); redisTemplate.delete(key);
List<StudyCourse> allUserList = thirdApi.getStudyCourseList(exam.getStudyId() ,exam.getCourseId(), token);
log.info("在线课学习记录"+allUserList);
return success(exam); return success(exam);
}catch(Exception e) { }catch(Exception e) {
log.error("保存答卷信息错误",e); log.error("保存答卷信息错误",e);

View File

@@ -3,6 +3,8 @@ package com.xboe.school.study.api;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import com.xboe.api.ThirdApi;
import com.xboe.school.study.entity.StudyCourse;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@@ -19,6 +21,9 @@ import com.xboe.school.study.service.IStudyHomeWorkService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
@Slf4j @Slf4j
@RestController @RestController
@RequestMapping(value="/xboe/school/study/homework") @RequestMapping(value="/xboe/school/study/homework")
@@ -26,9 +31,10 @@ public class StudyHomeWorkApi extends ApiBaseController{
@Autowired @Autowired
IStudyHomeWorkService shomeworkService; IStudyHomeWorkService shomeworkService;
@Resource
private ThirdApi thirdApi;
@PostMapping("/save") @PostMapping("/save")
public JsonResponse<StudyHomeWork> save(@RequestBody StudyHomeWork shw){ public JsonResponse<StudyHomeWork> save(@RequestBody StudyHomeWork shw, HttpServletRequest request){
if(StringUtils.isBlank(shw.getCourseId())) { if(StringUtils.isBlank(shw.getCourseId())) {
return badRequest("无课程信息"); return badRequest("无课程信息");
} }
@@ -36,15 +42,18 @@ public class StudyHomeWorkApi extends ApiBaseController{
if(StringUtils.isBlank(shw.getStudyId())) { if(StringUtils.isBlank(shw.getStudyId())) {
return badRequest("您还没有学习,不可提交作业"); return badRequest("您还没有学习,不可提交作业");
} }
String token = request.getHeader("Xboe-Access-Token");
if (StringUtils.isEmpty(token)) {
token = request.getHeader("token");
}
try { try {
CurrentUser cu=getCurrent(); CurrentUser cu=getCurrent();
shw.setStudentId(cu.getAccountId()); shw.setStudentId(cu.getAccountId());
shw.setStudentName(cu.getName()); shw.setStudentName(cu.getName());
shw.setEndTime(LocalDateTime.now()); shw.setEndTime(LocalDateTime.now());
shomeworkService.save(shw,token);
shomeworkService.save(shw); List<StudyCourse> allUserList = thirdApi.getStudyCourseList(shw.getStudyId() ,shw.getCourseId(), token);
log.info("在线课学习记录"+allUserList);
return success(shw); return success(shw);
}catch(Exception e) { }catch(Exception e) {
log.error("保存答卷信息错误",e); log.error("保存答卷信息错误",e);

View File

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

View File

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

View File

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

View File

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

View File

@@ -30,7 +30,7 @@ public interface IStudyService {
* @param studyContentId * @param studyContentId
* @param progress * @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 * @param sci
*/ */
void saveStudyInfo(StudyContentDto dto); void saveStudyInfo(StudyContentDto dto,String token);
/** /**
* 保存学习内容,用于开始学习时添加学习条目 * 保存学习内容,用于开始学习时添加学习条目
@@ -59,7 +59,7 @@ public interface IStudyService {
* @param courseId * @param courseId
* @param cnum * @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服务中这里不需要再记录了所以不建议使用此方法 * 追加学习持续时长,此处理是一期的有追加记录二期后追加记录在stat服务中这里不需要再记录了所以不建议使用此方法

View File

@@ -35,7 +35,7 @@ public class StudyAssessServiceImpl implements IStudyAssessService{
@Override @Override
@Transactional @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())); Object obj=scItemDao.findField("id", FieldFilters.eq("studyId", assess.getStudyId()), FieldFilters.eq("contentId", assess.getContentId()));
@@ -59,8 +59,9 @@ public class StudyAssessServiceImpl implements IStudyAssessService{
assess.setStudyItemId(sci.getId()); assess.setStudyItemId(sci.getId());
dao.save(assess); dao.save(assess);
//检查是否全部学习完成 //检查是否全部学习完成
int totalContent=courseContentDao.count(FieldFilters.eq("courseId", assess.getCourseId()),FieldFilters.eq("deleted",false)); // int totalContent=courseContentDao.count(FieldFilters.eq("courseId", assess.getCourseId()),FieldFilters.eq("deleted",false));
scDao.finishCheck(assess.getStudyId(),assess.getCourseId(),totalContent); int totalContent = courseContentDao.getCount(assess.getCourseId());
scDao.finishCheck(assess.getStudyId(),assess.getCourseId(),totalContent,token);
}else { }else {
//转为评估只有一条,所以这里显示一条,不能再增加 //转为评估只有一条,所以这里显示一条,不能再增加
assess.setStudyItemId(obj.toString()); assess.setStudyItemId(obj.toString());

View File

@@ -7,7 +7,9 @@ import java.util.concurrent.TimeUnit;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.transaction.Transactional; import javax.transaction.Transactional;
import com.xboe.api.ThirdApi;
import com.xboe.core.orm.QueryBuilder; import com.xboe.core.orm.QueryBuilder;
import com.xboe.school.study.entity.StudyCourse;
import com.xboe.system.user.entity.Message; import com.xboe.system.user.entity.Message;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@@ -52,7 +54,7 @@ public class StudyExamServiceImpl implements IStudyExamService{
@Override @Override
@Transactional @Transactional
public String save(StudyExam exam) { public String save(StudyExam exam,String token) {
String key = exam.getStudyId() + "_" + exam.getContentId(); String key = exam.getStudyId() + "_" + exam.getContentId();
// //判断是否存在redis // //判断是否存在redis
// if(StringUtils.isNotEmpty(redisTemplate.opsForValue().get(key))){ // if(StringUtils.isNotEmpty(redisTemplate.opsForValue().get(key))){
@@ -102,7 +104,7 @@ public class StudyExamServiceImpl implements IStudyExamService{
//检查是否全部学习完成 //检查是否全部学习完成
// int totalContent=courseContentDao.count(FieldFilters.eq("courseId", exam.getCourseId()),FieldFilters.eq("deleted",false)); // int totalContent=courseContentDao.count(FieldFilters.eq("courseId", exam.getCourseId()),FieldFilters.eq("deleted",false));
int totalContent = courseContentDao.getCount(exam.getCourseId()); int totalContent = courseContentDao.getCount(exam.getCourseId());
scDao.finishCheck(exam.getStudyId(),exam.getCourseId(),totalContent); scDao.finishCheck(exam.getStudyId(),exam.getCourseId(),totalContent,token);
}else { }else {
exam.setStudyItemId(obj.toString());//此项就是学习条目的id exam.setStudyItemId(obj.toString());//此项就是学习条目的id
@@ -112,10 +114,10 @@ public class StudyExamServiceImpl implements IStudyExamService{
scItemDao.updateFieldById(exam.getStudyItemId(), "progress",prog); scItemDao.updateFieldById(exam.getStudyItemId(), "progress",prog);
} }
if(prog==100){ if(prog==100){
scDao.updateFieldById(exam.getStudyId(), "progress",100.0f); scItemDao.updateFieldById(exam.getStudyId(), "progress",100);
scDao.updateFieldById(exam.getStudyId(), "finish_time",LocalDateTime.now()); scItemDao.updateFieldById(exam.getStudyId(), "finish_time",LocalDateTime.now());
scDao.updateFieldById(exam.getStudyId(), "status",StudyCourseItem.STATUS_FINISH); scItemDao.updateFieldById(exam.getStudyId(), "status",StudyCourseItem.STATUS_FINISH);
scDao.updateFieldById(exam.getStudyId(), "last_score",100.0f); scItemDao.updateFieldById(exam.getStudyId(), "score",100.0f);
} }
} }
@@ -126,12 +128,13 @@ public class StudyExamServiceImpl implements IStudyExamService{
scItemDao.updateFieldById(exam.getStudyItemId(), "status", f>=exam.getPassLine()?StudyCourseItem.STATUS_FINISH:StudyCourseItem.STATUS_STUDYING); scItemDao.updateFieldById(exam.getStudyItemId(), "status", f>=exam.getPassLine()?StudyCourseItem.STATUS_FINISH:StudyCourseItem.STATUS_STUDYING);
scItemDao.updateFieldById(exam.getStudyItemId(), "progress",f>=exam.getPassLine()?100:f.intValue()); scItemDao.updateFieldById(exam.getStudyItemId(), "progress",f>=exam.getPassLine()?100:f.intValue());
if(f>=exam.getPassLine()){ if(f>=exam.getPassLine()){
scDao.updateFieldById(exam.getStudyId(), "progress",100.0f); scItemDao.updateFieldById(exam.getStudyId(), "progress",100);
scDao.updateFieldById(exam.getStudyId(), "finish_time",LocalDateTime.now()); scItemDao.updateFieldById(exam.getStudyId(), "finish_time",LocalDateTime.now());
scDao.updateFieldById(exam.getStudyId(), "status",StudyCourseItem.STATUS_FINISH); scItemDao.updateFieldById(exam.getStudyId(), "status",StudyCourseItem.STATUS_FINISH);
scDao.updateFieldById(exam.getStudyId(), "last_score",100.0f); scItemDao.updateFieldById(exam.getStudyId(), "score",100.0f);
} }
} }
//执行完毕 清除redis记录 //执行完毕 清除redis记录
// redisTemplate.delete(key); // redisTemplate.delete(key);
return ""; return "";

View File

@@ -36,7 +36,7 @@ public class StudyHomeWorkServiceImpl implements IStudyHomeWorkService{
@Override @Override
@Transactional @Transactional
public void save(StudyHomeWork homework) { public void save(StudyHomeWork homework,String token) {
//完成处理,判断是否已存在 //完成处理,判断是否已存在
@@ -62,7 +62,7 @@ public class StudyHomeWorkServiceImpl implements IStudyHomeWorkService{
dao.save(homework); dao.save(homework);
//检查是否全部学习完成 //检查是否全部学习完成
int totalContent=courseContentDao.count(FieldFilters.eq("courseId", homework.getCourseId()),FieldFilters.eq("deleted",false)); 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 { }else {
//只是保留一条作业记录,不再保存多条记录了 //只是保留一条作业记录,不再保存多条记录了
//dao.save(homework); //dao.save(homework);

View File

@@ -5,8 +5,10 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import javax.annotation.Resource;
import javax.transaction.Transactional; import javax.transaction.Transactional;
import com.xboe.api.ThirdApi;
import com.xboe.school.study.entity.StudyCourse; import com.xboe.school.study.entity.StudyCourse;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -61,7 +63,7 @@ public class StudyServiceImpl implements IStudyService{
@Override @Override
@Transactional @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())); StudyCourseItem sci = scItemDao.findOne(FieldFilters.eq("studyId", dto.getStudyId()),FieldFilters.eq("contentId", dto.getContentId()),FieldFilters.eq("aid", dto.getAid()));
LocalDateTime ldt=LocalDateTime.now(); LocalDateTime ldt=LocalDateTime.now();
if(sci==null) { if(sci==null) {
@@ -95,7 +97,7 @@ public class StudyServiceImpl implements IStudyService{
dto.setStudyItemId(sci.getId()); dto.setStudyItemId(sci.getId());
//检查是否全部学习完成 //检查是否全部学习完成
scDao.finishCheck(dto.getStudyId(),dto.getCourseId(),dto.getContentTotal()); scDao.finishCheck(dto.getStudyId(),dto.getCourseId(),dto.getContentTotal(),token);
} }
@@ -193,7 +195,7 @@ public class StudyServiceImpl implements IStudyService{
@Override @Override
@Transactional @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; int status=StudyCourseItem.STATUS_STUDYING;
LocalDateTime now=LocalDateTime.now(); LocalDateTime now=LocalDateTime.now();
if(progress.intValue()==100) { if(progress.intValue()==100) {
@@ -204,7 +206,7 @@ public class StudyServiceImpl implements IStudyService{
UpdateBuilder.create("finishTime",now), UpdateBuilder.create("finishTime",now),
UpdateBuilder.create("status",status)); UpdateBuilder.create("status",status));
//检查是否全部学习完成 //检查是否全部学习完成
scDao.finishCheck(studyId,courseId,total); scDao.finishCheck(studyId,courseId,total,token);
}else { }else {
scItemDao.updateMultiFieldById(studyContentId, scItemDao.updateMultiFieldById(studyContentId,
UpdateBuilder.create("progress",progress), UpdateBuilder.create("progress",progress),
@@ -296,7 +298,7 @@ public class StudyServiceImpl implements IStudyService{
@Override @Override
@Transactional @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(); LocalDateTime now=LocalDateTime.now();
scItemDao.updateMultiFieldById(itemId, scItemDao.updateMultiFieldById(itemId,
UpdateBuilder.create("progress", 100), UpdateBuilder.create("progress", 100),
@@ -305,7 +307,7 @@ public class StudyServiceImpl implements IStudyService{
UpdateBuilder.create("status",StudyCourseItem.STATUS_FINISH) UpdateBuilder.create("status",StudyCourseItem.STATUS_FINISH)
); );
//检查是否全部学习完成 //检查是否全部学习完成
scDao.finishCheck(studyId,courseId,cnum); scDao.finishCheck(studyId,courseId,cnum,token);
} }
} }

View File

@@ -1,11 +1,11 @@
## redis ## redis
spring.redis.database=4 spring.redis.database=1
spring.redis.host=127.0.0.1 #spring.redis.host=127.0.0.1
spring.redis.password=ENC(zA5LNV8xw3yEx6LMwdGGBGgNsOaD3Cg+) #spring.redis.password=ENC(zA5LNV8xw3yEx6LMwdGGBGgNsOaD3Cg+)
spring.redis.port=6379
#spring.redis.host=124.70.92.162
#spring.redis.password=qwert!W577
#spring.redis.port=6379 #spring.redis.port=6379
spring.redis.host=124.70.92.162
spring.redis.password=qwert!W577
spring.redis.port=6379
# cloud nacos config # cloud nacos config
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848 spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
@@ -15,12 +15,12 @@ spring.jpa.show-sql = true
spring.jpa.hibernate.ddl-auto=update spring.jpa.hibernate.ddl-auto=update
spring.datasource.driverClassName=com.mysql.jdbc.Driver spring.datasource.driverClassName=com.mysql.jdbc.Driver
# spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver # spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/boeu_base?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull #spring.datasource.url=jdbc:mysql://127.0.0.1:3306/boe_base?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull
spring.datasource.username=root #spring.datasource.username=root
spring.datasource.password=ENC(lAoFOYuc8CAypPtigTNLYg==) #spring.datasource.password=ENC(lAoFOYuc8CAypPtigTNLYg==)
#spring.datasource.url=jdbc:mysql://124.70.92.162:3306/boe_base?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull spring.datasource.url=jdbc:mysql://10.251.160.40:3306/boe_base?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull
#spring.datasource.username=boe_base spring.datasource.username=admin
#spring.datasource.password=k3DbtrcCkKAcFYzd spring.datasource.password=boeRds01
logging.level.org.hibernate.SQL=DEBUG logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE

View File

@@ -1,4 +1,4 @@
spring.profiles.active=@profileActive@ spring.profiles.active=dev
spring.application.name=boe-server-all spring.application.name=boe-server-all
server.port=9090 server.port=9090
server.servlet.session.timeout=30m server.servlet.session.timeout=30m