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 4188a942..8b0778e2 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 @@ -262,7 +262,10 @@ public class CourseServiceImpl implements ICourseService { public PageList findPage(int pageIndex, int pageSize, CourseQueryDto dto) { List filters = createFilters(dto); List filters2 = createFilters(dto); - List list = getStrings(dto); + List list1 = getProject(dto); + List list2 = getRouter(dto); + Set list = new HashSet<>(list1); + list.addAll(list2); //有权限的查询,也同时查询出创建人的数据,在权限上 if(TempFilterConfig.Manager_CourseFile_ByOrgIds) { if(dto.getIsSystemAdmin()==null || !dto.getIsSystemAdmin()) { @@ -347,7 +350,72 @@ public class CourseServiceImpl implements ICourseService { return rs; } - private List getStrings(CourseQueryDto dto) { + 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" + + "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 not in(?2)\n" + + "and c.sys_create_aid !=?3"; + 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"; + 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"; + list = courseTeacherDao.sqlFindList(sql, dto.getOrgAid(),dto.getOrgAid()); + } + Listlist1=new ArrayList<>(); + for (Object obj : list) { + list1.add(obj.toString()); + } + + return list1; + } + private List getProject(CourseQueryDto dto) { List list=new ArrayList<>(); if(StringUtil.isNotBlank(dto.getOrgIds())){ if(dto.getOrgIds().contains(",")){ @@ -362,8 +430,9 @@ public class CourseServiceImpl implements ICourseService { "\n" + "s.deleted = 0 \n" + "and pt.deleted=0\n" + + "and pt.type=1\n" + "and c.deleted=0\n" + - "AND s.type in (1,2) \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"; @@ -379,8 +448,9 @@ public class CourseServiceImpl implements ICourseService { "\n" + "s.deleted = 0 \n" + "and pt.deleted=0\n" + + "and pt.type=1\n" + "and c.deleted=0\n" + - "AND s.type in (1,2) \n" + + "AND s.type =1 \n" + "AND s.student_id = ?1\n" + "and c.org_id !=?2\n" + "and c.sys_create_aid !=?3"; @@ -396,20 +466,20 @@ public class CourseServiceImpl implements ICourseService { "\n" + "s.deleted = 0 \n" + "and pt.deleted=0\n" + + "and pt.type=1\n" + "and c.deleted=0\n" + - "AND s.type in (1,2) \n" + + "AND s.type =1 \n" + "AND s.student_id = ?1\n" + "and c.sys_create_aid !=?2"; list = courseTeacherDao.sqlFindList(sql, dto.getOrgAid(),dto.getOrgAid()); } - Listlist1=new ArrayList<>(); + 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;