From 5844a33f2e5b6189a7b467eb6ed708b0fcd419df Mon Sep 17 00:00:00 2001 From: daihh Date: Sun, 30 Oct 2022 17:30:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=87=AA=E5=8A=A8=E6=8A=A5?= =?UTF-8?q?=E5=90=8D=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xboe/school/study/api/StudyCourseApi.java | 47 ++++++++++++++----- .../study/service/IStudyCourseService.java | 9 ++++ .../service/impl/StudyCourseServiceImpl.java | 42 +++++++++++++++++ 3 files changed, 85 insertions(+), 13 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java b/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java index 0c5939bd..87d68211 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseApi.java @@ -132,26 +132,27 @@ public class StudyCourseApi extends ApiBaseController{ * @return */ @RequestMapping(value="/studyIndex",method = {RequestMethod.GET,RequestMethod.POST}) - public JsonResponse> loadDetail(String id,Boolean addView,Boolean crowd){ - if(StringUtils.isBlank(id)){ + public JsonResponse> loadDetail(String cid,Boolean addView,Boolean crowd){ + if(StringUtils.isBlank(cid)){ return error("无课程信息"); } - String aid=getCurrent().getAccountId(); + CurrentUser cuser=getCurrent(); + String aid=cuser.getAccountId(); //StudyCourse sc=service.findByCourseIdAndAid(id, aid); Map rs=new HashMap(); - Course course=courseService.getAddView(id); + Course course=courseService.getAddView(cid); if(course==null || course.getDeleted()){ return badRequest("课程不存在或已被删除"); } rs.put("course",course); - List courseCrowdList = courseService.findCrowdByCourseId(id); + List courseCrowdList = courseService.findCrowdByCourseId(cid); if(crowd!=null && crowd) { rs.put("crowds",courseCrowdList); } - List cclist=contentService.getByCourseId(id); - List sectionlist=sectionService.getByCourseId(id); - List teachers=courseService.findTeachersByCourseId(id); + List cclist=contentService.getByCourseId(cid); + List sectionlist=sectionService.getByCourseId(cid); + List teachers=courseService.findTeachersByCourseId(cid); //获取教师的介绍信息,因为一门课程 的教师不会太多,所以这里简单直接遍历查询,后续再优化 for(CourseTeacher ct : teachers) { @@ -168,13 +169,33 @@ public class StudyCourseApi extends ApiBaseController{ rs.put("teachers",teachers); //检查是否已报名 - StudySignup ss = signupService.getByCidAndAid(id, aid); - if(ss!=null && ss.getStatus()!=null && ss.getStatus()==9) { - rs.put("signup",true); - }else { - rs.put("signup",false); + StudyCourse sc=service.findByCourseIdAndAid(cid, aid); + if(sc==null) { + //未报名,这里直接报名 + StudySignup signup=new StudySignup(); + signup.setCourseId(cid); + signup.setCourseName(course.getName()); + signup.setCourseType(course.getType()); + signup.setSignInfo("自主报名"); + signup.setAuditInfo("系统自动审核"); + signup.setAuditUser(""); + signup.setAuditType(1); + signup.setSignTime(LocalDateTime.now()); + signup.setSignType(1); + signup.setStatus(9); + signup.setAid(cuser.getAccountId()); + signup.setName(cuser.getName()); + signup.setSignTime(LocalDateTime.now()); + sc=service.autoSignup(signup); } + rs.put("signup",true); + rs.put("studyId", sc.getId());//学习id + rs.put("progress", sc.getProgress()); + //查询上次学习的是什么资源。查询用户的学习情况 + List items=studyService.findByStudyId(sc.getId()); + rs.put("contentStudys",items);//学习的内容 + return success(rs); } diff --git a/servers/boe-server-all/src/main/java/com/xboe/school/study/service/IStudyCourseService.java b/servers/boe-server-all/src/main/java/com/xboe/school/study/service/IStudyCourseService.java index 74dd3192..bcaf5dfd 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/school/study/service/IStudyCourseService.java +++ b/servers/boe-server-all/src/main/java/com/xboe/school/study/service/IStudyCourseService.java @@ -7,11 +7,20 @@ import com.xboe.school.study.dto.StudyCourseQuery; import com.xboe.school.study.dto.StudyCouseDto; import com.xboe.school.study.entity.StudyCourse; import com.xboe.school.study.entity.StudyCourseItem; +import com.xboe.school.study.entity.StudySignup; + import org.springframework.web.bind.annotation.RequestBody; import java.util.List; public interface IStudyCourseService { + + /** + * 课程自动报名,返回学习的课程 + * @param signup + * @return + */ + StudyCourse autoSignup(StudySignup signup); /** * 检查是否有相应的课程学习记录 diff --git a/servers/boe-server-all/src/main/java/com/xboe/school/study/service/impl/StudyCourseServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/school/study/service/impl/StudyCourseServiceImpl.java index 6c22b8bb..e1a0f6a9 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/school/study/service/impl/StudyCourseServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/school/study/service/impl/StudyCourseServiceImpl.java @@ -38,6 +38,7 @@ import com.xboe.school.study.dto.StudyCourseNameDto; import com.xboe.school.study.dto.StudyCourseQuery; import com.xboe.school.study.entity.StudyCourse; import com.xboe.school.study.entity.StudyCourseItem; +import com.xboe.school.study.entity.StudySignup; import com.xboe.school.study.service.IStudyCourseService; import lombok.extern.slf4j.Slf4j; @@ -47,6 +48,9 @@ import lombok.extern.slf4j.Slf4j; @Transactional public class StudyCourseServiceImpl implements IStudyCourseService{ + @Autowired + StudySignupDao signupDao; + @Autowired StudyCourseDao studyCourseDao; @@ -512,4 +516,42 @@ public class StudyCourseServiceImpl implements IStudyCourseService{ } } + @Override + public StudyCourse autoSignup(StudySignup signup) { + + signup.setSignType(StudySignup.SIGNTYPE_SELF); + if(signup.getStatus()==null) { + //如果未指定状态,就设置审核通过 + signup.setStatus(StudySignup.STATUS_PASS); + signup.setAuditType(StudySignup.AUDITTYPE_AUTO); + signup.setAuditInfo("系统自动审核"); + signup.setAuditUser(""); + } + signupDao.save(signup); + //添加到课程学习 + LocalDateTime now=LocalDateTime.now(); + + StudyCourse sc=new StudyCourse(); + sc.setAddTime(LocalDateTime.now()); + sc.setAid(signup.getAid()); + sc.setAname(signup.getName()); + sc.setCourseId(signup.getCourseId()); + sc.setCourseName(signup.getCourseName()); + sc.setCourseType(signup.getCourseType());//课程类型没有带过来 + sc.setFinishTime(null); + sc.setLastScore(0f); + sc.setProgress(0f); + sc.setSource(signup.getAuditType());//来源方式,和报名类型一致 + sc.setStatus(StudyCourse.STATUS_NOSTUDY); + sc.setStatusTime(now); + sc.setTotalDuration(0); + sc.setLastTime(sc.getAddTime()); + studyCourseDao.save(sc); + signup.setStudyId(sc.getId()); + //更新课程学习人数 + courseDao.updateMultiFieldById(signup.getCourseId(),UpdateBuilder.create("studys", "studys+1",FieldUpdateType.EXPRESSION)); + + return sc; + } + }