From 9fd4171107c2fb87f9703470adf87450ce3eacdd Mon Sep 17 00:00:00 2001 From: xiaozhequ <792962424@qq.com> Date: Tue, 2 Jul 2024 08:56:28 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=96=B0=E5=9C=A8=E7=BA=BF=E8=AF=BE?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/CourseServiceImpl.java | 182 +++++++++++++++++- 1 file changed, 181 insertions(+), 1 deletion(-) 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..71aa20a6 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,22 @@ 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.addAll(grow); + list.addAll(list1); list.addAll(list2); + //有权限的查询,也同时查询出创建人的数据,在权限上 if(TempFilterConfig.Manager_CourseFile_ByOrgIds) { if(dto.getIsSystemAdmin()==null || !dto.getIsSystemAdmin()) { @@ -480,6 +494,172 @@ 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; + } public static List paginate(List list, int pageNumber, int pageSize) { if (list == null || list.isEmpty() || pageNumber <= 0 || pageSize <= 0) { return null; From 0b0bd748d9681cf99e141a94e567c50dc17542b9 Mon Sep 17 00:00:00 2001 From: xiaozhequ <792962424@qq.com> Date: Tue, 2 Jul 2024 09:42:47 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=96=B0=E5=9C=A8=E7=BA=BF=E8=AF=BE?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/CourseServiceImpl.java | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) 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 71aa20a6..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 @@ -276,7 +276,10 @@ public class CourseServiceImpl implements ICourseService { list.addAll(noAudiences); //成长路径的课 List grow = getGrow(dto); + //已报名的课 + List enroll = getEnroll(dto); list.addAll(grow); + list.addAll(enroll); list.addAll(list1); list.addAll(list2); @@ -660,6 +663,57 @@ public class CourseServiceImpl implements ICourseService { 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;