From a12abe331efa83c4049773c9310f841616f210f0 Mon Sep 17 00:00:00 2001 From: 86182 Date: Sat, 22 Oct 2022 15:06:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B6=E8=97=8F=E8=BF=9B=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/interaction/api/FavoritesApi.java | 44 ++++++++++++++++--- .../module/interaction/dto/FavoriteDto.java | 5 +++ .../interaction/dto/FavoriteTotalDto.java | 5 +++ .../study/service/IStudyCourseService.java | 5 +++ .../service/impl/StudyCourseServiceImpl.java | 27 ++++++++++-- 5 files changed, 75 insertions(+), 11 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/interaction/api/FavoritesApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/interaction/api/FavoritesApi.java index 4ee88c79..0334757c 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/interaction/api/FavoritesApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/interaction/api/FavoritesApi.java @@ -6,6 +6,7 @@ import java.util.stream.Collectors; import com.xboe.core.CurrentUser; import com.xboe.module.interaction.dto.*; +import com.xboe.school.study.service.IStudyCourseService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -39,6 +40,9 @@ public class FavoritesApi extends ApiBaseController { @Autowired ICourseTeacherService ctService; + @Autowired + IStudyCourseService studyCourseService; + /** * 此处的查询需要再讨论一下,因为有不同的内容,前端呈现的也不一样 * @@ -112,12 +116,12 @@ public class FavoritesApi extends ApiBaseController { public JsonResponse> findCoursePage(Pagination pager, Favorites favorites, Integer type, String keyword) { String aid = this.getCurrent().getAccountId(); PageList coursePage = service.findCoursePage(pager.getPageIndex(), pager.getPageSize(), favorites, type, keyword,aid); - Set cids = new HashSet(); - for(FavoriteDto dto : coursePage.getList()) { - if(!cids.contains(dto.getObjId())) { - cids.add(dto.getObjId()); - } - } +// Set cids = new HashSet(); +// for(FavoriteDto dto : coursePage.getList()) { +// if(!cids.contains(dto.getObjId())) { +// cids.add(dto.getObjId()); +// } +// } // if(cids.size()>0) { //// List teachers = ctService.queryTeacher(cids); //// for(FavoriteDto fdto : coursePage.getList()){ @@ -128,7 +132,19 @@ public class FavoritesApi extends ApiBaseController { //// } //// } // } - + List courseIds = coursePage.getList().stream().map(FavoriteDto::getObjId).collect(Collectors.toList()); + List progress = studyCourseService.progress(aid, courseIds); + if(!coursePage.getList().isEmpty() && !progress.isEmpty()) { + for (FavoriteDto dto : coursePage.getList()) { + for (Object[] o : progress) { + if (dto.getObjId().equals(o[0])) { + dto.setProgress((Float) o[1]); + } + } + } + } + + return success(coursePage); } @@ -206,6 +222,20 @@ public class FavoritesApi extends ApiBaseController { public JsonResponse> queryAll(Pagination pager,String keyword){ String aid = this.getCurrent().getAccountId(); PageList favoriteTotalDtoPageList = service.queryAll(pager.getPageIndex(), pager.getPageSize(), aid, keyword); + List courseIds = favoriteTotalDtoPageList.getList().stream().filter(favoriteTotalDto -> favoriteTotalDto.getType() == 1). + map(FavoriteTotalDto::getId).collect(Collectors.toList()); + List progress = studyCourseService.progress(aid, courseIds); + if(!favoriteTotalDtoPageList.getList().isEmpty() && !progress.isEmpty()) { + for (FavoriteTotalDto dto : favoriteTotalDtoPageList.getList()) { + for (Object[] o : progress) { + if (dto.getId().equals(o[0])) { + dto.setProgress((Float) o[1]); + } + } + } + } + + return success(favoriteTotalDtoPageList); } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/interaction/dto/FavoriteDto.java b/servers/boe-server-all/src/main/java/com/xboe/module/interaction/dto/FavoriteDto.java index 168595dc..b2a5742f 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/interaction/dto/FavoriteDto.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/interaction/dto/FavoriteDto.java @@ -65,5 +65,10 @@ public class FavoriteDto { /**针对于问题是否已解决*/ private Boolean isResolve; + /** + * 学习进度 + * */ + private Float progress; + } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/interaction/dto/FavoriteTotalDto.java b/servers/boe-server-all/src/main/java/com/xboe/module/interaction/dto/FavoriteTotalDto.java index 0ac68eec..c22ee3c7 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/interaction/dto/FavoriteTotalDto.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/interaction/dto/FavoriteTotalDto.java @@ -81,6 +81,11 @@ public class FavoriteTotalDto { * */ private Integer breCommend; + /** + * 学习进度 + * */ + private Float progress; + public FavoriteTotalDto() { } 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 28c5bd66..74dd3192 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 @@ -74,4 +74,9 @@ public interface IStudyCourseService { * */ List followids(StudyCourseQuery studyCourseQuery); + /** + * 查询课程最新学习记录的进度 + * */ + List progress(String aid,List courseIds); + } 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 1435e610..b379dc14 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 @@ -266,8 +266,8 @@ public class StudyCourseServiceImpl implements IStudyCourseService{ // 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("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")); @@ -297,8 +297,8 @@ public class StudyCourseServiceImpl implements IStudyCourseService{ 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.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")); @@ -307,6 +307,25 @@ public class StudyCourseServiceImpl implements IStudyCourseService{ return list; } + @Override + public List progress(String aid, List courseIds) { + List floats = new ArrayList<>(); + QueryBuilder builder = QueryBuilder.from(StudyCourse.class); + builder.addFilter(FieldFilters.eq("aid",aid)); + builder.addFilter(FieldFilters.in("courseId",courseIds)); + builder.addOrder(OrderCondition.desc("lastTime")); +// builder.setPageSize(1); +// builder.addGroupBy("aid"); + builder.addFields("courseId","progress"); + try { + List listFields = studyCourseDao.findListFields(builder.builder()); + return listFields; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + @Override public StudyCourse has(String courseId, String aid) { List list=studyCourseDao.findList(1,OrderCondition.desc("id"),FieldFilters.eq("courseId", courseId),FieldFilters.eq("aid", aid));