Merge branch 'preview' of codeup.aliyun.com:6265f483e4166464dc2f9c14/boeu/baseservers into release

This commit is contained in:
dongruihua
2022-10-24 19:18:06 +08:00
2 changed files with 172 additions and 51 deletions

View File

@@ -6,10 +6,8 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import com.xboe.common.utils.StringUtil; import javax.annotation.Resource;
import com.xboe.school.study.dto.StudyCourseNameDto;
import com.xboe.school.study.dto.StudyCourseQuery;
import com.xboe.school.study.dto.StudyCouseDto;
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;
@@ -22,13 +20,27 @@ import org.springframework.web.bind.annotation.RestController;
import com.xboe.common.OrderCondition; import com.xboe.common.OrderCondition;
import com.xboe.common.PageList; import com.xboe.common.PageList;
import com.xboe.common.Pagination; import com.xboe.common.Pagination;
import com.xboe.common.utils.StringUtil;
import com.xboe.core.CurrentUser; import com.xboe.core.CurrentUser;
import com.xboe.core.JsonResponse; import com.xboe.core.JsonResponse;
import com.xboe.core.api.ApiBaseController; import com.xboe.core.api.ApiBaseController;
import com.xboe.module.course.entity.Course;
import com.xboe.module.course.entity.CourseContent;
import com.xboe.module.course.entity.CourseCrowd;
import com.xboe.module.course.entity.CourseSection;
import com.xboe.module.course.entity.CourseTeacher;
import com.xboe.module.course.service.ICourseContentService;
import com.xboe.module.course.service.ICourseSectionService;
import com.xboe.module.course.service.ICourseService; import com.xboe.module.course.service.ICourseService;
import com.xboe.module.course.service.ICourseTeacherService;
import com.xboe.module.teacher.entity.Teacher;
import com.xboe.module.teacher.service.ITeacherService;
import com.xboe.school.study.dto.StudyContentDto; import com.xboe.school.study.dto.StudyContentDto;
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.StudyCourse;
import com.xboe.school.study.entity.StudyCourseItem; import com.xboe.school.study.entity.StudyCourseItem;
import com.xboe.school.study.entity.StudySignup;
import com.xboe.school.study.entity.StudyTime; import com.xboe.school.study.entity.StudyTime;
import com.xboe.school.study.service.IStudyCourseService; import com.xboe.school.study.service.IStudyCourseService;
import com.xboe.school.study.service.IStudyService; import com.xboe.school.study.service.IStudyService;
@@ -53,6 +65,19 @@ public class StudyCourseApi extends ApiBaseController{
@Autowired @Autowired
ICourseService courseService; ICourseService courseService;
@Autowired
private ICourseContentService contentService;
@Autowired
private ICourseSectionService sectionService;
@Autowired
private ICourseTeacherService courseTeacherService;
@Autowired
private ITeacherService teacherService;
@Autowired @Autowired
IStudySignupService signupService; IStudySignupService signupService;
@@ -107,6 +132,59 @@ public class StudyCourseApi extends ApiBaseController{
} }
} }
/**
* 学习页面,加载课程的信息用于替换portal中的detail方法
* @param id
* @return
*/
@RequestMapping(value="/studyIndex",method = {RequestMethod.GET,RequestMethod.POST})
public JsonResponse<Map<String,Object>> loadDetail(String id,Boolean addView,Boolean crowd){
if(StringUtils.isBlank(id)){
return error("无课程信息");
}
String aid=getCurrent().getAccountId();
//StudyCourse sc=service.findByCourseIdAndAid(id, aid);
Map<String,Object> rs=new HashMap<String,Object>();
Course course=courseService.getAddView(id);
if(course==null || course.getDeleted()){
return badRequest("课程不存在或已被删除");
}
rs.put("course",course);
List<CourseCrowd> courseCrowdList = courseService.findCrowdByCourseId(id);
if(crowd!=null && crowd) {
rs.put("crowds",courseCrowdList);
}
List<CourseContent> cclist=contentService.getByCourseId(id);
List<CourseSection> sectionlist=sectionService.getByCourseId(id);
List<CourseTeacher> teachers=courseService.findTeachersByCourseId(id);
//获取教师的介绍信息,因为一门课程 的教师不会太多,所以这里简单直接遍历查询,后续再优化
for(CourseTeacher ct : teachers) {
Teacher t = teacherService.get(ct.getTeacherId());
if(t!=null) {
ct.setRemark(t.getDescription());
}
}
rs.put("contents",cclist);
rs.put("sections",sectionlist);
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);
}
return success(rs);
}
// /** // /**
// * 检查是否有相应的课程学习 // * 检查是否有相应的课程学习
// * @param cid // * @param cid
@@ -543,16 +621,16 @@ public class StudyCourseApi extends ApiBaseController{
studyCourseQuery.setAid(this.getCurrent().getAccountId()); studyCourseQuery.setAid(this.getCurrent().getAccountId());
} }
List<StudyCourse> studyCouseDtos = service.ids(studyCourseQuery); List<StudyCourse> studyCouseDtos = service.ids(studyCourseQuery);
List<String> ids=new ArrayList<String>(); // List<String> ids=new ArrayList<String>();
for(StudyCourse scourse:studyCouseDtos) { // for(StudyCourse scourse:studyCouseDtos) {
ids.add(scourse.getCourseId()); // ids.add(scourse.getCourseId());
} // }
Map<String,Object> maps = courseService.findImages(ids); // Map<String,Object> maps = courseService.findImages(ids);
for(StudyCourse scourse:studyCouseDtos) { // for(StudyCourse scourse:studyCouseDtos) {
if(maps.containsKey(scourse.getCourseId())) { // if(maps.containsKey(scourse.getCourseId())) {
scourse.setCourseImage((String)maps.get(scourse.getCourseId())); // scourse.setCourseImage((String)maps.get(scourse.getCourseId()));
} // }
} // }
return success(studyCouseDtos); return success(studyCouseDtos);
} }
@@ -569,16 +647,16 @@ public class StudyCourseApi extends ApiBaseController{
return badRequest("无关注人"); return badRequest("无关注人");
} }
List<StudyCourse> studyCouseDtos = service.followids(studyCourseQuery); List<StudyCourse> studyCouseDtos = service.followids(studyCourseQuery);
List<String> ids=new ArrayList<String>(); // List<String> ids=new ArrayList<String>();
for(StudyCourse scourse:studyCouseDtos) { // for(StudyCourse scourse:studyCouseDtos) {
ids.add(scourse.getCourseId()); // ids.add(scourse.getCourseId());
} // }
Map<String,Object> maps = courseService.findImages(ids); // Map<String,Object> maps = courseService.findImages(ids);
for(StudyCourse scourse:studyCouseDtos) { // for(StudyCourse scourse:studyCouseDtos) {
if(maps.containsKey(scourse.getCourseId())) { // if(maps.containsKey(scourse.getCourseId())) {
scourse.setCourseImage((String)maps.get(scourse.getCourseId())); // scourse.setCourseImage((String)maps.get(scourse.getCourseId()));
} // }
} // }
return success(studyCouseDtos); return success(studyCouseDtos);
} }

View File

@@ -1,6 +1,20 @@
package com.xboe.school.study.service.impl; package com.xboe.school.study.service.impl;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import javax.transaction.Transactional;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.xboe.common.OrderCondition; import com.xboe.common.OrderCondition;
import com.xboe.common.PageList; import com.xboe.common.PageList;
import com.xboe.core.orm.FieldFilters; import com.xboe.core.orm.FieldFilters;
@@ -10,24 +24,21 @@ import com.xboe.core.orm.UpdateBuilder;
import com.xboe.module.course.dao.CourseContentDao; import com.xboe.module.course.dao.CourseContentDao;
import com.xboe.module.course.dao.CourseDao; import com.xboe.module.course.dao.CourseDao;
import com.xboe.module.course.entity.Course; import com.xboe.module.course.entity.Course;
import com.xboe.school.study.dao.*; import com.xboe.school.study.dao.StudyAssessDao;
import com.xboe.school.study.dao.StudyCourseDao;
import com.xboe.school.study.dao.StudyCourseItemDao;
import com.xboe.school.study.dao.StudyExamDao;
import com.xboe.school.study.dao.StudyHomeWorkDao;
import com.xboe.school.study.dao.StudyScoreDao;
import com.xboe.school.study.dao.StudySignupDao;
import com.xboe.school.study.dao.StudyTimeDao;
import com.xboe.school.study.dto.StudyCourseNameDto; import com.xboe.school.study.dto.StudyCourseNameDto;
import com.xboe.school.study.dto.StudyCourseQuery; 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.StudyCourse;
import com.xboe.school.study.entity.StudyCourseItem; import com.xboe.school.study.entity.StudyCourseItem;
import com.xboe.school.study.service.IStudyCourseService; import com.xboe.school.study.service.IStudyCourseService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional; import lombok.extern.slf4j.Slf4j;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
@Slf4j @Slf4j
@Service @Service
@@ -272,19 +283,29 @@ public class StudyCourseServiceImpl implements IStudyCourseService{
builder.addFilter(FieldFilters.in("sc.courseId",studyCourseQuery.getIds())); builder.addFilter(FieldFilters.in("sc.courseId",studyCourseQuery.getIds()));
builder.addOrder(OrderCondition.desc("sc.lastTime")); builder.addOrder(OrderCondition.desc("sc.lastTime"));
builder.addFields("sc"); builder.addFields("sc");
// try { builder.addFields("c.score");
//// List<Object[]> listFields = studyCourseDao.(builder.builder()); builder.addFields("c.coverImg");
//// for (Object[] o:listFields) { //List<StudyCourse> list = studyCourseDao.findList(builder.builder());
//// StudyCouseDto studyCouseDto = new StudyCouseDto(); List<StudyCourse> rs=new ArrayList<StudyCourse>();
//// studyCouseDto.setCourseId((String) o[0]); Set<String> checkSet=new HashSet<String>();
//// studyCouseDto.setProgress((Float) o[1]); try {
//// studyCouseDto.setLastTime((LocalDateTime) o[2]); List<Object[]> list= studyCourseDao.findListFields(builder.builder());
//// studyCouseDtos.add(studyCouseDto); for(Object[] objs:list) {
//// } StudyCourse sc=(StudyCourse)objs[0];
List<StudyCourse> list = studyCourseDao.findList(builder.builder()); if(!checkSet.contains(sc.getCourseId())) {
Float score=(Float)objs[1];
String img=(String)objs[2];
return list; sc.setLastScore(score);
sc.setCourseImage(img);
rs.add(sc);
checkSet.add(sc.getCourseId());
}
}
return rs;
}catch(Exception e){
log.error("",e);
}
return rs;
} }
@Override @Override
@@ -295,6 +316,7 @@ public class StudyCourseServiceImpl implements IStudyCourseService{
@Override @Override
public List<StudyCourse> followids(StudyCourseQuery studyCourseQuery) { public List<StudyCourse> followids(StudyCourseQuery studyCourseQuery) {
//当前先这样查询,以后要修改,只查询需要的字段,另外 ,需要按课程分组,不然一门课程会查出很多记录出来
QueryBuilder builder = QueryBuilder.from(StudyCourse.class.getSimpleName()+" sc,"+ Course.class.getSimpleName()+" c"); QueryBuilder builder = QueryBuilder.from(StudyCourse.class.getSimpleName()+" sc,"+ Course.class.getSimpleName()+" c");
builder.addFilter(FieldFilters.eqField("sc.courseId","c.id")); builder.addFilter(FieldFilters.eqField("sc.courseId","c.id"));
// builder.addFilter(FieldFilters.eq("c.enabled",true)); // builder.addFilter(FieldFilters.eq("c.enabled",true));
@@ -303,8 +325,29 @@ public class StudyCourseServiceImpl implements IStudyCourseService{
builder.addFilter(FieldFilters.in("sc.courseId",studyCourseQuery.getIds())); builder.addFilter(FieldFilters.in("sc.courseId",studyCourseQuery.getIds()));
builder.addOrder(OrderCondition.desc("sc.lastTime")); builder.addOrder(OrderCondition.desc("sc.lastTime"));
builder.addFields("sc"); builder.addFields("sc");
List<StudyCourse> list = studyCourseDao.findList(builder.builder()); builder.addFields("c.score");
return list; builder.addFields("c.coverImg");
//List<StudyCourse> list = studyCourseDao.findList(builder.builder());
List<StudyCourse> rs=new ArrayList<StudyCourse>();
Set<String> checkSet=new HashSet<String>();
try {
List<Object[]> list= studyCourseDao.findListFields(builder.builder());
for(Object[] objs:list) {
StudyCourse sc=(StudyCourse)objs[0];
if(!checkSet.contains(sc.getCourseId())) {
Float score=(Float)objs[1];
String img=(String)objs[2];
sc.setLastScore(score);
sc.setCourseImage(img);
rs.add(sc);
checkSet.add(sc.getCourseId());
}
}
return rs;
}catch(Exception e){
log.error("",e);
}
return rs;
} }
@Override @Override