个人主页,我的关注主页,课程学习的二次查询

This commit is contained in:
86182
2022-10-22 11:19:30 +08:00
parent a1e0e72f63
commit 6dcc5b6544
4 changed files with 106 additions and 24 deletions

View File

@@ -6,7 +6,9 @@ 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 org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -530,14 +532,54 @@ public class StudyCourseApi extends ApiBaseController{
}
/**
* 二次查询
* 个人/他人主页二次查询
* */
@PostMapping("/ids")
public JsonResponse<List<StudyCouseDto>> ids(@RequestBody List<String> ids){
if(ids.isEmpty()){
public JsonResponse<List<StudyCourse>> ids(@RequestBody StudyCourseQuery studyCourseQuery){
if(studyCourseQuery!=null && studyCourseQuery.getIds().isEmpty()){
return badRequest("参数异常");
}
List<StudyCouseDto> studyCouseDtos = service.ids(ids);
if(studyCourseQuery!=null && StringUtil.isBlank(studyCourseQuery.getAid())){
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()));
}
}
return success(studyCouseDtos);
}
/**
* 我的关注 二次查询
* */
@PostMapping("/follow-ids")
public JsonResponse<List<StudyCourse>> followIds(@RequestBody StudyCourseQuery studyCourseQuery){
if(studyCourseQuery!=null && studyCourseQuery.getIds().isEmpty()){
return badRequest("参数异常");
}
if(studyCourseQuery!=null && studyCourseQuery.getAids().isEmpty()){
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()));
}
}
return success(studyCouseDtos);
}

View File

@@ -0,0 +1,15 @@
package com.xboe.school.study.dto;
import lombok.Data;
import java.util.List;
@Data
public class StudyCourseQuery {
private List<String> ids;
private String aid;
private List<String> aids;
}

View File

@@ -3,6 +3,7 @@ package com.xboe.school.study.service;
import com.xboe.common.OrderCondition;
import com.xboe.common.PageList;
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;
@@ -59,13 +60,18 @@ public interface IStudyCourseService {
void deleteSignUp(String id,String courseId,String aid);
/**
* 二次查询
* 二次查询 个人/他人
* */
List<StudyCouseDto> ids(List<String> ids);
List<StudyCourse> ids(StudyCourseQuery studyCourseQuery);
/**
* 查询课程内容学习记录
* */
List<StudyCourseItem> findStudyItem(String studyId, String aid);
/**
* 二次查询 我的关注
* */
List<StudyCourse> followids(StudyCourseQuery studyCourseQuery);
}

View File

@@ -12,6 +12,7 @@ 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.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;
@@ -261,25 +262,29 @@ public class StudyCourseServiceImpl implements IStudyCourseService{
}
@Override
public List<StudyCouseDto> ids(List<String> ids) {
List<StudyCouseDto> studyCouseDtos = new ArrayList<>();
QueryBuilder builder = QueryBuilder.from(StudyCourse.class);
builder.addFilter(FieldFilters.in("courseId",ids));
builder.addFields("courseId","progress","lastTime");
try {
List<Object[]> listFields = studyCourseDao.findListFields(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);
}
} catch (Exception e) {
e.printStackTrace();
}
public List<StudyCourse> ids(StudyCourseQuery studyCourseQuery) {
// List<StudyCouseDto> studyCouseDtos = new ArrayList<>();
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));
builder.addFilter(FieldFilters.eq("c.deleted",false));
builder.addFilter(FieldFilters.eq("sc.aid",studyCourseQuery.getAid()));
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 studyCouseDtos;
return list;
}
@Override
@@ -288,6 +293,20 @@ public class StudyCourseServiceImpl implements IStudyCourseService{
return list;
}
@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));
builder.addFilter(FieldFilters.eq("c.deleted",false));
builder.addFilter(FieldFilters.in("sc.aid",studyCourseQuery.getAids()));
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;
}
@Override
public StudyCourse has(String courseId, String aid) {
List<StudyCourse> list=studyCourseDao.findList(1,OrderCondition.desc("id"),FieldFilters.eq("courseId", courseId),FieldFilters.eq("aid", aid));