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.Map;
import com.xboe.common.utils.StringUtil;
import com.xboe.school.study.dto.StudyCourseNameDto;
import com.xboe.school.study.dto.StudyCourseQuery;
import com.xboe.school.study.dto.StudyCouseDto;
import javax.annotation.Resource;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
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.PageList;
import com.xboe.common.Pagination;
import com.xboe.common.utils.StringUtil;
import com.xboe.core.CurrentUser;
import com.xboe.core.JsonResponse;
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.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.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.entity.StudyTime;
import com.xboe.school.study.service.IStudyCourseService;
import com.xboe.school.study.service.IStudyService;
@@ -53,6 +65,19 @@ public class StudyCourseApi extends ApiBaseController{
@Autowired
ICourseService courseService;
@Autowired
private ICourseContentService contentService;
@Autowired
private ICourseSectionService sectionService;
@Autowired
private ICourseTeacherService courseTeacherService;
@Autowired
private ITeacherService teacherService;
@Autowired
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
@@ -543,16 +621,16 @@ public class StudyCourseApi extends ApiBaseController{
studyCourseQuery.setAid(this.getCurrent().getAccountId());
}
List<StudyCourse> studyCouseDtos = service.ids(studyCourseQuery);
List<String> ids=new ArrayList<String>();
for(StudyCourse scourse:studyCouseDtos) {
ids.add(scourse.getCourseId());
}
Map<String,Object> maps = courseService.findImages(ids);
for(StudyCourse scourse:studyCouseDtos) {
if(maps.containsKey(scourse.getCourseId())) {
scourse.setCourseImage((String)maps.get(scourse.getCourseId()));
}
}
// List<String> ids=new ArrayList<String>();
// for(StudyCourse scourse:studyCouseDtos) {
// ids.add(scourse.getCourseId());
// }
// Map<String,Object> maps = courseService.findImages(ids);
// for(StudyCourse scourse:studyCouseDtos) {
// if(maps.containsKey(scourse.getCourseId())) {
// scourse.setCourseImage((String)maps.get(scourse.getCourseId()));
// }
// }
return success(studyCouseDtos);
}
@@ -569,16 +647,16 @@ public class StudyCourseApi extends ApiBaseController{
return badRequest("无关注人");
}
List<StudyCourse> studyCouseDtos = service.followids(studyCourseQuery);
List<String> ids=new ArrayList<String>();
for(StudyCourse scourse:studyCouseDtos) {
ids.add(scourse.getCourseId());
}
Map<String,Object> maps = courseService.findImages(ids);
for(StudyCourse scourse:studyCouseDtos) {
if(maps.containsKey(scourse.getCourseId())) {
scourse.setCourseImage((String)maps.get(scourse.getCourseId()));
}
}
// List<String> ids=new ArrayList<String>();
// for(StudyCourse scourse:studyCouseDtos) {
// ids.add(scourse.getCourseId());
// }
// Map<String,Object> maps = courseService.findImages(ids);
// for(StudyCourse scourse:studyCouseDtos) {
// if(maps.containsKey(scourse.getCourseId())) {
// scourse.setCourseImage((String)maps.get(scourse.getCourseId()));
// }
// }
return success(studyCouseDtos);
}

View File

@@ -1,6 +1,20 @@
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.PageList;
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.CourseDao;
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.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.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 java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@Service
@@ -272,19 +283,29 @@ public class StudyCourseServiceImpl implements IStudyCourseService{
builder.addFilter(FieldFilters.in("sc.courseId",studyCourseQuery.getIds()));
builder.addOrder(OrderCondition.desc("sc.lastTime"));
builder.addFields("sc");
// try {
//// List<Object[]> listFields = studyCourseDao.(builder.builder());
//// for (Object[] o:listFields) {
//// StudyCouseDto studyCouseDto = new StudyCouseDto();
//// studyCouseDto.setCourseId((String) o[0]);
//// studyCouseDto.setProgress((Float) o[1]);
//// studyCouseDto.setLastTime((LocalDateTime) o[2]);
//// studyCouseDtos.add(studyCouseDto);
//// }
List<StudyCourse> list = studyCourseDao.findList(builder.builder());
return list;
builder.addFields("c.score");
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
@@ -295,6 +316,7 @@ public class StudyCourseServiceImpl implements IStudyCourseService{
@Override
public List<StudyCourse> followids(StudyCourseQuery studyCourseQuery) {
//当前先这样查询,以后要修改,只查询需要的字段,另外 ,需要按课程分组,不然一门课程会查出很多记录出来
QueryBuilder builder = QueryBuilder.from(StudyCourse.class.getSimpleName()+" sc,"+ Course.class.getSimpleName()+" c");
builder.addFilter(FieldFilters.eqField("sc.courseId","c.id"));
// 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.addOrder(OrderCondition.desc("sc.lastTime"));
builder.addFields("sc");
List<StudyCourse> list = studyCourseDao.findList(builder.builder());
return list;
builder.addFields("c.score");
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