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 1d987bec..8f714d0f 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 @@ -264,8 +264,25 @@ public class CourseServiceImpl implements ICourseService { List filters2 = createFilters(dto); List list1 = getProject(dto); List list2 = getRouter(dto); - Set list = new HashSet<>(list1); + //需要设置为隐藏的课程id + Set list = new HashSet<>(); + //有受众权限的课程 + if(dto.getAudiences()!=null&&!dto.getAudiences().isEmpty()){ + List audiences = getAudiences(dto); + list.addAll(audiences); + } + //没有受众的课程 + List noAudiences = getNoAudiences(dto); + list.addAll(noAudiences); + //成长路径的课 + List grow = getGrow(dto); + //已报名的课 + List enroll = getEnroll(dto); + list.addAll(grow); + list.addAll(enroll); + list.addAll(list1); list.addAll(list2); + //有权限的查询,也同时查询出创建人的数据,在权限上 if(TempFilterConfig.Manager_CourseFile_ByOrgIds) { if(dto.getIsSystemAdmin()==null || !dto.getIsSystemAdmin()) { @@ -480,6 +497,223 @@ public class CourseServiceImpl implements ICourseService { 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" + + "\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 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()); + } + Listlist1=new ArrayList<>(); + for (Object obj : list) { + list1.add(obj.toString()); + } + + return list1; + } + private List getNoAudiences(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" + + "\tboe_base.boe_course c \n" + + "WHERE\n" + + "\tc.id NOT IN ( SELECT cc.course_id FROM boe_base.boe_course_crowd cc ) \n" + + "\tAND c.deleted =0 \n"+ + "and c.org_id not in(?1)\n" + + "and (c.sys_create_aid !=?2 or c.sys_create_aid is null)"; + list = courseTeacherDao.sqlFindList(sql,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 ( SELECT cc.course_id FROM boe_base.boe_course_crowd cc ) \n" + + "\tAND c.deleted =0 \n"+ + "and c.org_id !=?1\n" + + "and (c.sys_create_aid !=?2 or c.sys_create_aid is null)"; + list = courseTeacherDao.sqlFindList(sql, 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 ( SELECT cc.course_id FROM boe_base.boe_course_crowd cc ) \n" + + "\tAND c.deleted =0 \n"+ + "and (c.sys_create_aid !=?1 or c.sys_create_aid is null)"; + list = courseTeacherDao.sqlFindList(sql,dto.getOrgAid()); + } + 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" + + "\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 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()); + } + 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" + + "\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 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()); + } + Listlist1=new ArrayList<>(); + for (Object obj : list) { + list1.add(obj.toString()); + } + + return list1; + } public static List paginate(List list, int pageNumber, int pageSize) { if (list == null || list.isEmpty() || pageNumber <= 0 || pageSize <= 0) { return null;