diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/service/impl/CourseServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/service/impl/CourseServiceImpl.java index ef48ef3f..c48bd588 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/course/service/impl/CourseServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/service/impl/CourseServiceImpl.java @@ -277,7 +277,7 @@ public class CourseServiceImpl implements ICourseService { list.addAll(noAudiences); //成长路径的课 List grow = getGrow(dto); - //已报名的课 +// //已报名的课 List enroll = getEnroll(dto); list.addAll(grow); list.addAll(enroll); @@ -343,13 +343,22 @@ public class CourseServiceImpl implements ICourseService { listByFilters = courseDao.findListByFilters(oc, filters); } //根据创建人筛选 - List listByFilters1=new ArrayList<>(); + List listByFilters1; if(!list.isEmpty()){ listByFilters1 = courseDao.findListByFilters(oc, filters1); - } - //根据list筛选 + } else { + listByFilters1 = new ArrayList<>(); + } + //根据list筛选 List listByFilters2 = courseDao.findListByFilters(oc, filters2); - List mergedList = Stream.concat(Stream.concat(listByFilters.stream(), listByFilters1.stream()),listByFilters2.stream()) + //去除根据组织和创建人筛选的课程id + List finalListByFilters = listByFilters; + List collect = listByFilters2.stream() + .filter(element -> !finalListByFilters.contains(element)) + .filter(element -> !listByFilters1.contains(element)).collect(Collectors.toList()); + List courseIds = collect.stream().map(Course::getId).collect(Collectors.toList()); + //合并 + List mergedList = Stream.concat(Stream.concat(listByFilters.stream(), listByFilters1.stream()),collect.stream()) // 使用distinct()配合自定义的去重条件 .filter(distinctByKey(c -> c.getId())) .collect(Collectors.toList()); @@ -359,14 +368,14 @@ public class CourseServiceImpl implements ICourseService { if(!mergedList.isEmpty()){ //去掉未发布的课程 mergedList.removeIf(e->{ - if(!e.getPublished()&&list.contains(e.getId())){ + if(!e.getPublished()&&courseIds.contains(e.getId())){ return true; } return false; }); //将需要隐藏的做标记 mergedList.forEach(e->{ - if(list.contains(e.getId())){ + if(courseIds.contains(e.getId())){ e.setIsPermission(false); }else { e.setIsPermission(true); @@ -381,11 +390,6 @@ public class CourseServiceImpl implements ICourseService { } private List getRouter(CourseQueryDto dto) { - List list=new ArrayList<>(); - if(StringUtil.isNotBlank(dto.getOrgIds())){ - if(dto.getOrgIds().contains(",")){ - String[] split = dto.getOrgIds().split(","); - List strings = Arrays.asList(split); String sql = "SELECT DISTINCT\n" + "rt.course_id\n" + "FROM\n" + @@ -398,46 +402,8 @@ public class CourseServiceImpl implements ICourseService { "and rt.type=1\n" + "and c.deleted=0\n" + "AND s.type =2 \n" + - "AND s.student_id = ?1\n" + - "and c.org_id not in(?2)\n" + - "and (c.sys_create_aid !=?3 or c.sys_create_aid is null)"; - list = courseTeacherDao.sqlFindList(sql, dto.getOrgAid(),strings,dto.getOrgAid()); - } - else { - String sql = "SELECT DISTINCT\n" + - "rt.course_id\n" + - "FROM\n" + - "boe.student s INNER JOIN boe.router_task rt on s.pid=rt.router_id inner join boe_base.boe_course c on c.id=rt.course_id\n" + - "\n" + - "WHERE\n" + - "\n" + - "s.deleted = 0 \n" + - "and rt.deleted=0\n" + - "and rt.type=1\n" + - "and c.deleted=0\n" + - "AND s.type =2 \n" + - "AND s.student_id = ?1\n" + - "and c.org_id !=?2\n" + - "and (c.sys_create_aid !=?3 or c.sys_create_aid is null)"; - list = courseTeacherDao.sqlFindList(sql, dto.getOrgAid(), dto.getOrgIds(),dto.getOrgAid()); - } - }else { - String sql = "SELECT DISTINCT\n" + - "rt.course_id\n" + - "FROM\n" + - "boe.student s INNER JOIN boe.router_task rt on s.pid=rt.router_id inner join boe_base.boe_course c on c.id=rt.course_id\n" + - "\n" + - "WHERE\n" + - "\n" + - "s.deleted = 0 \n" + - "and rt.deleted=0\n" + - "and rt.type=1\n" + - "and c.deleted=0\n" + - "AND s.type =2 \n" + - "AND s.student_id = ?1\n" + - "and (c.sys_create_aid !=?2 or c.sys_create_aid is null)"; - list = courseTeacherDao.sqlFindList(sql, dto.getOrgAid(),dto.getOrgAid()); - } + "AND s.student_id = ?1"; + Listlist = courseTeacherDao.sqlFindList(sql,dto.getOrgAid()); Listlist1=new ArrayList<>(); for (Object obj : list) { list1.add(obj.toString()); @@ -446,11 +412,6 @@ public class CourseServiceImpl implements ICourseService { return list1; } private List getProject(CourseQueryDto dto) { - List list=new ArrayList<>(); - if(StringUtil.isNotBlank(dto.getOrgIds())){ - if(dto.getOrgIds().contains(",")){ - String[] split = dto.getOrgIds().split(","); - List strings = Arrays.asList(split); String sql = "SELECT DISTINCT\n" + "pt.course_id\n" + "FROM\n" + @@ -463,60 +424,16 @@ public class CourseServiceImpl implements ICourseService { "and pt.type=1\n" + "and c.deleted=0\n" + "AND s.type =1 \n" + - "AND s.student_id = ?1\n" + - "and c.org_id not in(?2)\n" + - "and (c.sys_create_aid !=?3 or c.sys_create_aid is null)"; - list = courseTeacherDao.sqlFindList(sql, dto.getOrgAid(),strings,dto.getOrgAid()); - } - else { - String sql = "SELECT DISTINCT\n" + - "pt.course_id\n" + - "FROM\n" + - "boe.student s INNER JOIN boe.project_task pt on s.pid=pt.project_id inner join boe_base.boe_course c on c.id=pt.course_id\n" + - "\n" + - "WHERE\n" + - "\n" + - "s.deleted = 0 \n" + - "and pt.deleted=0\n" + - "and pt.type=1\n" + - "and c.deleted=0\n" + - "AND s.type =1 \n" + - "AND s.student_id = ?1\n" + - "and c.org_id !=?2\n" + - "and (c.sys_create_aid !=?3 or c.sys_create_aid is null)"; - list = courseTeacherDao.sqlFindList(sql, dto.getOrgAid(), dto.getOrgIds(),dto.getOrgAid()); - } - }else { - String sql = "SELECT DISTINCT\n" + - "pt.course_id\n" + - "FROM\n" + - "boe.student s INNER JOIN boe.project_task pt on s.pid=pt.project_id inner join boe_base.boe_course c on c.id=pt.course_id\n" + - "\n" + - "WHERE\n" + - "\n" + - "s.deleted = 0 \n" + - "and pt.deleted=0\n" + - "and pt.type=1\n" + - "and c.deleted=0\n" + - "AND s.type =1 \n" + - "AND s.student_id = ?1\n" + - "and (c.sys_create_aid !=?2 or c.sys_create_aid is null)"; - list = courseTeacherDao.sqlFindList(sql, dto.getOrgAid(),dto.getOrgAid()); - } + "AND s.student_id = ?1\n"; + Listlist = courseTeacherDao.sqlFindList(sql, dto.getOrgAid()); Listlist1=new ArrayList<>(); for (Object obj : list) { list1.add(obj.toString()); } - return list1; } private List getAudiences(CourseQueryDto dto) { - List list=new ArrayList<>(); List s=Arrays.asList(dto.getAudiences().split(",")); - if(StringUtil.isNotBlank(dto.getOrgIds())){ - if(dto.getOrgIds().contains(",")){ - String[] split = dto.getOrgIds().split(","); - List strings = Arrays.asList(split); String sql = "SELECT DISTINCT\n" + "\tcc.course_id \n" + "FROM\n" + @@ -524,37 +441,8 @@ public class CourseServiceImpl implements ICourseService { "\tINNER JOIN boe_course c ON cc.course_id = c.id \n" + "WHERE\n" + "\tcc.group_id IN (?1) \n" + - "\tAND c.deleted =0 \n"+ - "and c.org_id not in(?2)\n" + - "and (c.sys_create_aid !=?3 or c.sys_create_aid is null)"; - list = courseTeacherDao.sqlFindList(sql,s,strings,dto.getOrgAid()); - - } - else { - String sql = "SELECT DISTINCT\n" + - "\tc.id \n" + - "FROM\n" + - "\t`boe_course_crowd` cc\n" + - "\tINNER JOIN boe_course c ON cc.course_id = c.id \n" + - "WHERE\n" + - "\tcc.group_id IN (?1) \n" + - "\tAND c.deleted =0 \n"+ - "and c.org_id !=?2\n" + - "and (c.sys_create_aid !=?3 or c.sys_create_aid is null)"; - list = courseTeacherDao.sqlFindList(sql, s, dto.getOrgIds(),dto.getOrgAid()); - } - }else { - String sql = "SELECT DISTINCT\n" + - "\tc.id \n" + - "FROM\n" + - "\t`boe_course_crowd` cc\n" + - "\tINNER JOIN boe_course c ON cc.course_id = c.id \n" + - "WHERE\n" + - "\tcc.group_id IN (?1) \n" + - "\tAND c.deleted =0 \n"+ - "and (c.sys_create_aid !=?2 or c.sys_create_aid is null)"; - list = courseTeacherDao.sqlFindList(sql, s,dto.getOrgAid()); - } + "\tAND c.deleted =0 "; + List list = courseTeacherDao.sqlFindList(sql,s); Listlist1=new ArrayList<>(); for (Object obj : list) { list1.add(obj.toString()); @@ -563,61 +451,21 @@ public class CourseServiceImpl implements ICourseService { return list1; } private List getNoAudiences(CourseQueryDto dto) { - String sql1="SELECT cc.course_id FROM boe_base.boe_course_crowd cc"; - List list2 = courseTeacherDao.sqlFindList(sql1); - List list=new ArrayList<>(); - if(StringUtil.isNotBlank(dto.getOrgIds())){ - if(dto.getOrgIds().contains(",")){ - String[] split = dto.getOrgIds().split(","); - List strings = Arrays.asList(split); String sql = "SELECT DISTINCT\n" + "\tc.id \n" + "FROM\n" + "\tboe_base.boe_course c \n" + "WHERE\n" + - "\tc.id NOT IN ( ?1 ) \n" + - "\tAND c.deleted =0 \n"+ - "and c.org_id not in(?2)\n" + - "and (c.sys_create_aid !=?3 or c.sys_create_aid is null)"; - list = courseTeacherDao.sqlFindList(sql,list2,strings,dto.getOrgAid()); - - } - else { - String sql = "SELECT DISTINCT\n" + - "\tc.id \n" + - "FROM\n" + - "\tboe_base.boe_course c \n" + - "WHERE\n" + - "\tc.id NOT IN ( ?1 ) \n" + - "\tAND c.deleted =0 \n"+ - "and c.org_id !=?2\n" + - "and (c.sys_create_aid !=?3 or c.sys_create_aid is null)"; - list = courseTeacherDao.sqlFindList(sql,list2, dto.getOrgIds(),dto.getOrgAid()); - } - }else { - String sql = "SELECT DISTINCT\n" + - "\tc.id \n" + - "FROM\n" + - "\tboe_base.boe_course c \n" + - "WHERE\n" + - "\tc.id NOT IN ( ?1 ) \n" + - "\tAND c.deleted =0 \n"+ - "and (c.sys_create_aid !=?2 or c.sys_create_aid is null)"; - list = courseTeacherDao.sqlFindList(sql,list2,dto.getOrgAid()); - } + "\t NOT EXISTS ( SELECT 1 FROM boe_base.boe_course_crowd cc where cc.course_id = c.id ) \n" + + "\tAND c.deleted =0 \n"; + Listlist = courseTeacherDao.sqlFindList(sql); Listlist1=new ArrayList<>(); for (Object obj : list) { list1.add(obj.toString()); } - return list1; } private List getGrow(CourseQueryDto dto) { - List list=new ArrayList<>(); - if(StringUtil.isNotBlank(dto.getOrgIds())){ - if(dto.getOrgIds().contains(",")){ - String[] split = dto.getOrgIds().split(","); - List strings = Arrays.asList(split); String sql = "SELECT DISTINCT\n" + "\tc.id \n" + "FROM\n" + @@ -630,60 +478,15 @@ public class CourseServiceImpl implements ICourseService { "\tAND s.deleted = 0 \n" + "\tAND gt.deleted = 0 \n" + "\tAND c.deleted = 0\n"+ - "\tAND s.student_id = ?1\n"+ - "and c.org_id not in(?2)\n" + - "and (c.sys_create_aid !=?3 or c.sys_create_aid is null)"; - list = courseTeacherDao.sqlFindList(sql,dto.getOrgAid(),strings,dto.getOrgAid()); - - } - else { - String sql = "SELECT DISTINCT\n" + - "\tc.id \n" + - "FROM\n" + - "\tboe.student s\n" + - "\tINNER JOIN boe.grow_task gt ON s.pid = gt.grow_id\n" + - "\tINNER JOIN boe_base.boe_course c ON gt.course_id = c.id \n" + - "WHERE\n" + - "\ts.type = 14 \n" + - "\tAND gt.type = 1 \n" + - "\tAND s.deleted = 0 \n" + - "\tAND gt.deleted = 0 \n" + - "\tAND c.deleted = 0\n"+ - "\tAND s.student_id = ?1\n"+ - "and c.org_id !=?2\n" + - "and (c.sys_create_aid !=?3 or c.sys_create_aid is null)"; - list = courseTeacherDao.sqlFindList(sql,dto.getOrgAid(), dto.getOrgIds(),dto.getOrgAid()); - } - }else { - String sql = "SELECT DISTINCT\n" + - "\tc.id \n" + - "FROM\n" + - "\tboe.student s\n" + - "\tINNER JOIN boe.grow_task gt ON s.pid = gt.grow_id\n" + - "\tINNER JOIN boe_base.boe_course c ON gt.course_id = c.id \n" + - "WHERE\n" + - "\ts.type = 14 \n" + - "\tAND gt.type = 1 \n" + - "\tAND s.deleted = 0 \n" + - "\tAND gt.deleted = 0 \n" + - "\tAND c.deleted = 0\n"+ - "\tAND s.student_id = ?1\n"+ - "and (c.sys_create_aid !=?2 or c.sys_create_aid is null)"; - list = courseTeacherDao.sqlFindList(sql,dto.getOrgAid(),dto.getOrgAid()); - } + "\tAND s.student_id = ?1\n"; + Listlist = courseTeacherDao.sqlFindList(sql,dto.getOrgAid()); Listlist1=new ArrayList<>(); for (Object obj : list) { list1.add(obj.toString()); } - return list1; } private List getEnroll(CourseQueryDto dto) { - List list=new ArrayList<>(); - if(StringUtil.isNotBlank(dto.getOrgIds())){ - if(dto.getOrgIds().contains(",")){ - String[] split = dto.getOrgIds().split(","); - List strings = Arrays.asList(split); String sql = "SELECT DISTINCT\n" + "\tsc.course_id \n" + "FROM\n" + @@ -691,37 +494,8 @@ public class CourseServiceImpl implements ICourseService { "\tINNER JOIN boe_base.boe_course c ON sc.course_id = c.id \n" + "WHERE\n" + "\tsc.aid = ?1 \n" + - "\tAND c.deleted =0\n"+ - "and c.org_id not in(?2)\n" + - "and (c.sys_create_aid !=?3 or c.sys_create_aid is null)"; - list = courseTeacherDao.sqlFindList(sql,dto.getOrgAid(),strings,dto.getOrgAid()); - - } - else { - String sql = "SELECT DISTINCT\n" + - "\tsc.course_id \n" + - "FROM\n" + - "\tboe_base.boe_study_course sc\n" + - "\tINNER JOIN boe_base.boe_course c ON sc.course_id = c.id \n" + - "WHERE\n" + - "\tsc.aid = ?1 \n" + - "\tAND c.deleted =0\n"+ - "and c.org_id !=?2\n" + - "and (c.sys_create_aid !=?3 or c.sys_create_aid is null)"; - list = courseTeacherDao.sqlFindList(sql,dto.getOrgAid(), dto.getOrgIds(),dto.getOrgAid()); - } - }else { - String sql = "SELECT DISTINCT\n" + - "\tsc.course_id \n" + - "FROM\n" + - "\tboe_base.boe_study_course sc\n" + - "\tINNER JOIN boe_base.boe_course c ON sc.course_id = c.id \n" + - "WHERE\n" + - "\tsc.aid = ?1 \n" + - "\tAND c.deleted =0\n"+ - "and (c.sys_create_aid !=?2 or c.sys_create_aid is null)"; - list = courseTeacherDao.sqlFindList(sql,dto.getOrgAid(),dto.getOrgAid()); - } + "\tAND c.deleted =0"; + Listlist = courseTeacherDao.sqlFindList(sql,dto.getOrgAid()); Listlist1=new ArrayList<>(); for (Object obj : list) { list1.add(obj.toString());