From 7756edf1227f95a83912133c01a5a298c01d3655 Mon Sep 17 00:00:00 2001 From: yangxinyu Date: Tue, 16 Dec 2025 13:29:31 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E3=80=90FCJDFDXTXS-151=E3=80=91=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=A4=9A=E4=B8=AAaid=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xboe/school/study/api/StudyCourseApi.java | 12 +++++------ .../school/study/service/IStudyService.java | 2 +- .../study/service/impl/StudyServiceImpl.java | 21 ++++++++++++++++--- 3 files changed, 25 insertions(+), 10 deletions(-) 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 79d08d47..807a2179 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 @@ -1221,12 +1221,12 @@ public class StudyCourseApi extends ApiBaseController{ * @return 资源学习情况分页集合 */ @RequestMapping(value="/contents",method = {RequestMethod.GET,RequestMethod.POST}) - public JsonResponse> findPage(Pagination pager,String courseId,String contentId,String name,Integer status){ + public JsonResponse> findPage(Pagination pager,String courseId,String contentId,String name,Integer status,String aid){ if(StringUtils.isBlank(courseId)){ return error("无课程信息"); } try { - PageList rs = studyService.findItemPage(pager.getPageIndex(), pager.getPageSize(), null, contentId, courseId, name, status); + PageList rs = studyService.findItemPage(pager.getPageIndex(), pager.getPageSize(), null, contentId, courseId, name, status,aid); return success(rs); }catch(Exception e) { log.error("【资源学习情况分页查询】错误:{}", e.getMessage()); @@ -1246,7 +1246,7 @@ public class StudyCourseApi extends ApiBaseController{ * @return 资源学习情况分页集合 */ @RequestMapping(value = "/contents-exam", method = {RequestMethod.GET, RequestMethod.POST}) - public JsonResponse> findPageExam(Pagination pager, String courseId, String contentId, String name, Integer status) { + public JsonResponse> findPageExam(Pagination pager, String courseId, String contentId, String name, Integer status,String aid) { if (StringUtils.isBlank(courseId)) { return error("无课程信息"); } @@ -1258,7 +1258,7 @@ public class StudyCourseApi extends ApiBaseController{ return success(new PageList<>()); } // 分页查询资源学习信息(只查询有考试信息的部分) - PageList rs = studyService.findItemPage(pager.getPageIndex(), pager.getPageSize(), null, contentId, courseId, name, status); + PageList rs = studyService.findItemPage(pager.getPageIndex(), pager.getPageSize(), null, contentId, courseId, name, status,aid); // 拼接考试信息 List studyCourseItems = rs.getList(); if (studyCourseItems != null && !studyCourseItems.isEmpty() && !studyExams.isEmpty()) { @@ -1286,7 +1286,7 @@ public class StudyCourseApi extends ApiBaseController{ * @return 资源学习情况分页集合 */ @RequestMapping(value = "/contents-assess", method = {RequestMethod.GET, RequestMethod.POST}) - public JsonResponse> findPageAssess(Pagination pager, String courseId, String contentId, String name, Integer status) { + public JsonResponse> findPageAssess(Pagination pager, String courseId, String contentId, String name, Integer status,String aid) { if (StringUtils.isBlank(courseId)) { return error("无课程信息"); } @@ -1301,7 +1301,7 @@ public class StudyCourseApi extends ApiBaseController{ return success(new PageList<>()); } // 分页查询资源学习信息(只查询有评估信息的部分) - PageList rs = studyService.findItemPage(pager.getPageIndex(), pager.getPageSize(), null, contentId, courseId, name, status); + PageList rs = studyService.findItemPage(pager.getPageIndex(), pager.getPageSize(), null, contentId, courseId, name, status,aid); // 拼接评估信息 List studyCourseItems = rs.getList(); if (studyCourseItems != null && !studyCourseItems.isEmpty() && !studyAssesses.isEmpty()) { diff --git a/servers/boe-server-all/src/main/java/com/xboe/school/study/service/IStudyService.java b/servers/boe-server-all/src/main/java/com/xboe/school/study/service/IStudyService.java index 779016f7..b4416e6e 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/school/study/service/IStudyService.java +++ b/servers/boe-server-all/src/main/java/com/xboe/school/study/service/IStudyService.java @@ -100,7 +100,7 @@ public interface IStudyService { * @param status 用户学习状态(1-未开始,2-已完成,3-进行中) * @return 资源学习情况分页集合 */ - PageList findItemPage(int pageIndex, int pageSize, List ids, String contentId, String courseId, String name, Integer status); + PageList findItemPage(int pageIndex, int pageSize, List ids, String contentId, String courseId, String name, Integer status,String aid); /** * 为courseContents列表设置展示名称(章名+节名 或 课程名+节名) diff --git a/servers/boe-server-all/src/main/java/com/xboe/school/study/service/impl/StudyServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/school/study/service/impl/StudyServiceImpl.java index 12fd676a..b07c9d29 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/school/study/service/impl/StudyServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/school/study/service/impl/StudyServiceImpl.java @@ -249,7 +249,7 @@ public class StudyServiceImpl implements IStudyService{ * @return 资源学习情况分页集合 */ @Override - public PageList findItemPage(int pageIndex, int pageSize, List ids, String contentId, String courseId,String name,Integer status) { + public PageList findItemPage(int pageIndex, int pageSize, List ids, String contentId, String courseId,String name,Integer status,String aid) { QueryBuilder query = QueryBuilder.from(StudyCourseItem.class); query.setPageIndex(pageIndex); query.setPageSize(pageSize); @@ -268,6 +268,11 @@ public class StudyServiceImpl implements IStudyService{ if(StringUtils.isNotBlank(name)) { query.addFilter(FieldFilters.like("aname", name)); } + // 25.12.16新增 aid筛选 + if(StringUtils.isNotBlank(aid)){ + String aidList=aid; + query.addFilter(FieldFilters.in("aid",aidList.split( ","))); + } int pageIndex2 = (pageIndex-1)*10; if(status!=null) { if(status==3) { @@ -290,15 +295,25 @@ public class StudyServiceImpl implements IStudyService{ return scItemDao.findPage(query.builder()); } } + // 25.12.16新增:提前处理aid数组,供后续SQL拼接使用 + String aidSqlFilter = ""; + // 存储aid的SQL筛选片段 + if(StringUtils.isNotBlank(aid)){ + String[] aidArray = aid.split(","); + // 拼接aid的in筛选 + aidSqlFilter = "and item.aid in ('" + String.join("','", aidArray) + "') "; + } // 未传输status的情况,查询所有资源学习情况数据 String sql = "select a.id, a.course_id, a.course_name, a.aname, " + "IFNULL(b.finish_time, '0') as finish_time, IFNULL(b.progress, 0) as progress, IFNULL(b.status, 1) as status " + ",b.score,b.item_id,b.aid,b.content_id " + "from (select id, course_id, course_name, aname, 0, 1 from boe_study_course where course_id = '" + courseId + "'" + (StringUtils.isBlank(name) ? "" : "and aname like '%" + name + "%'") + ") a " + "inner join " + "(select bsc.id, bsc.course_id, bsc.course_name, bsc.aname, item.id as item_id,item.finish_time, item.progress, item.status,MAX(item.score) score,item.aid,item.content_id " + "from boe_study_course bsc left join boe_study_course_item item on item.course_id = bsc.course_id and item.study_id = bsc.id " + "where bsc.course_id = '" + courseId + "'" + (StringUtils.isBlank(contentId) ? "" : "and item.content_id = '" + contentId + "'") + - (StringUtils.isBlank(name) ? "" : "and item.aname like '%" + name +"%'") + " group by bsc.id) b " + + //aidSqlFilter拼接aid筛选条件 + (StringUtils.isBlank(name) ? "" : "and item.aname like '%" + name +"%'") + aidSqlFilter+" group by bsc.id) b " + "on a.course_id = b.course_id and a.id = b.id " + "group by a.id limit "+ pageIndex2+","+ pageSize+";"; String sql2 = "select count(*) as total from (select a.id, a.course_id, a.course_name, a.aname, " + "IFNULL(b.finish_time, 0) as finish_time, IFNULL(b.progress, 0) as progress, IFNULL(b.status, 1) as status " + "from (select id, course_id, course_name, aname, 0, 1 from boe_study_course where course_id = '" + courseId + "'" + (StringUtils.isBlank(name) ? "" : "and aname like '%" + name + "%'") + ") a " + "inner join " + "(select bsc.id, bsc.course_id, bsc.course_name, bsc.aname, item.finish_time, item.progress, item.status " + "from boe_study_course bsc left join boe_study_course_item item on item.course_id = bsc.course_id and item.study_id = bsc.id " + "where bsc.course_id = '" + courseId + "'" + (StringUtils.isBlank(contentId) ? "" : "and item.content_id = '" + contentId + "'") + - (StringUtils.isBlank(name) ? "" : "and item.aname like '%" + name +"%'") + + //aidSqlFilter拼接aid筛选条件 + (StringUtils.isBlank(name) ? "" : "and item.aname like '%" + name +"%'") +aidSqlFilter+ " group by bsc.id) b " + "on a.course_id = b.course_id and a.id = b.id " + "group by a.id) as total";