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 58b1b041..41559d7a 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 @@ -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> ids(@RequestBody List ids){ - if(ids.isEmpty()){ + public JsonResponse> ids(@RequestBody StudyCourseQuery studyCourseQuery){ + if(studyCourseQuery!=null && studyCourseQuery.getIds().isEmpty()){ return badRequest("参数异常"); } - List studyCouseDtos = service.ids(ids); + if(studyCourseQuery!=null && StringUtil.isBlank(studyCourseQuery.getAid())){ + studyCourseQuery.setAid(this.getCurrent().getAccountId()); + } + List studyCouseDtos = service.ids(studyCourseQuery); + List ids=new ArrayList(); + for(StudyCourse scourse:studyCouseDtos) { + ids.add(scourse.getCourseId()); + } + Map 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> followIds(@RequestBody StudyCourseQuery studyCourseQuery){ + if(studyCourseQuery!=null && studyCourseQuery.getIds().isEmpty()){ + return badRequest("参数异常"); + } + if(studyCourseQuery!=null && studyCourseQuery.getAids().isEmpty()){ + return badRequest("无关注人"); + } + List studyCouseDtos = service.followids(studyCourseQuery); + List ids=new ArrayList(); + for(StudyCourse scourse:studyCouseDtos) { + ids.add(scourse.getCourseId()); + } + Map maps = courseService.findImages(ids); + for(StudyCourse scourse:studyCouseDtos) { + if(maps.containsKey(scourse.getCourseId())) { + scourse.setCourseImage((String)maps.get(scourse.getCourseId())); + } + } + return success(studyCouseDtos); } diff --git a/servers/boe-server-all/src/main/java/com/xboe/school/study/dto/StudyCourseQuery.java b/servers/boe-server-all/src/main/java/com/xboe/school/study/dto/StudyCourseQuery.java new file mode 100644 index 00000000..115c80b9 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/school/study/dto/StudyCourseQuery.java @@ -0,0 +1,15 @@ +package com.xboe.school.study.dto; + +import lombok.Data; + +import java.util.List; + +@Data +public class StudyCourseQuery { + + private List ids; + + private String aid; + + private List aids; +} 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 e88728c4..28c5bd66 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 @@ -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 ids(List ids); + List ids(StudyCourseQuery studyCourseQuery); /** * 查询课程内容学习记录 * */ List findStudyItem(String studyId, String aid); + /** + * 二次查询 我的关注 + * */ + List followids(StudyCourseQuery studyCourseQuery); + } 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 8a808551..1435e610 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 @@ -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 ids(List ids) { - List studyCouseDtos = new ArrayList<>(); - QueryBuilder builder = QueryBuilder.from(StudyCourse.class); - builder.addFilter(FieldFilters.in("courseId",ids)); - builder.addFields("courseId","progress","lastTime"); - try { - List 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 ids(StudyCourseQuery studyCourseQuery) { +// List 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 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 list = studyCourseDao.findList(builder.builder()); - return studyCouseDtos; + + return list; } @Override @@ -288,6 +293,20 @@ public class StudyCourseServiceImpl implements IStudyCourseService{ return list; } + @Override + public List 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 list = studyCourseDao.findList(builder.builder()); + return list; + } + @Override public StudyCourse has(String courseId, String aid) { List list=studyCourseDao.findList(1,OrderCondition.desc("id"),FieldFilters.eq("courseId", courseId),FieldFilters.eq("aid", aid));