新在线课逻辑

This commit is contained in:
xiaozhequ
2024-07-02 08:56:28 +08:00
parent 625c41f466
commit 9fd4171107

View File

@@ -264,8 +264,22 @@ public class CourseServiceImpl implements ICourseService {
List<IFieldFilter> filters2 = createFilters(dto);
List<String> list1 = getProject(dto);
List<String> list2 = getRouter(dto);
Set<String> list = new HashSet<>(list1);
//需要设置为隐藏的课程id
Set<String> list = new HashSet<>();
//有受众权限的课程
if(dto.getAudiences()!=null&&!dto.getAudiences().isEmpty()){
List<String> audiences = getAudiences(dto);
list.addAll(audiences);
}
//没有受众的课程
List<String> noAudiences = getNoAudiences(dto);
list.addAll(noAudiences);
//成长路径的课
List<String> 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<String> getAudiences(CourseQueryDto dto) {
List<Long> list=new ArrayList<>();
List<String> s=Arrays.asList(dto.getAudiences().split(","));
if(StringUtil.isNotBlank(dto.getOrgIds())){
if(dto.getOrgIds().contains(",")){
String[] split = dto.getOrgIds().split(",");
List<String> 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());
}
List<String>list1=new ArrayList<>();
for (Object obj : list) {
list1.add(obj.toString());
}
return list1;
}
private List<String> getNoAudiences(CourseQueryDto dto) {
List<Long> list=new ArrayList<>();
if(StringUtil.isNotBlank(dto.getOrgIds())){
if(dto.getOrgIds().contains(",")){
String[] split = dto.getOrgIds().split(",");
List<String> 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());
}
List<String>list1=new ArrayList<>();
for (Object obj : list) {
list1.add(obj.toString());
}
return list1;
}
private List<String> getGrow(CourseQueryDto dto) {
List<Long> list=new ArrayList<>();
if(StringUtil.isNotBlank(dto.getOrgIds())){
if(dto.getOrgIds().contains(",")){
String[] split = dto.getOrgIds().split(",");
List<String> 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());
}
List<String>list1=new ArrayList<>();
for (Object obj : list) {
list1.add(obj.toString());
}
return list1;
}
public static <T> List<T> paginate(List<T> list, int pageNumber, int pageSize) {
if (list == null || list.isEmpty() || pageNumber <= 0 || pageSize <= 0) {
return null;