diff --git a/servers/boe-server-all/src/main/java/com/xboe/school/study/service/impl/StudyCourseServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/school/study/service/impl/StudyCourseServiceImpl.java index b84f1d49..6c22b8bb 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/school/study/service/impl/StudyCourseServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/school/study/service/impl/StudyCourseServiceImpl.java @@ -1,6 +1,8 @@ package com.xboe.school.study.service.impl; +import java.math.BigInteger; +import java.sql.Timestamp; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; @@ -275,34 +277,94 @@ public class StudyCourseServiceImpl implements IStudyCourseService{ @Override public List ids(StudyCourseQuery studyCourseQuery) { // List studyCouseDtos = new ArrayList<>(); - QueryBuilder builder = QueryBuilder.from(StudyCourse.class.getSimpleName()+" sc,"+ Course.class.getSimpleName()+" c"); - builder.addFilter(FieldFilters.eqField("sc.courseId","c.id")); -// builder.addFilter(FieldFilters.eq("c.enabled",true)); -// builder.addFilter(FieldFilters.eq("c.deleted",false)); - builder.addFilter(FieldFilters.eq("sc.aid",studyCourseQuery.getAid())); - builder.addFilter(FieldFilters.in("sc.courseId",studyCourseQuery.getIds())); - builder.addOrder(OrderCondition.desc("sc.lastTime")); - builder.addFields("sc"); - builder.addFields("c.score"); - builder.addFields("c.coverImg"); +// QueryBuilder builder = QueryBuilder.from(StudyCourse.class.getSimpleName()+" sc,"+ Course.class.getSimpleName()+" c"); +// builder.addFilter(FieldFilters.eqField("sc.courseId","c.id")); +//// builder.addFilter(FieldFilters.eq("c.enabled",true)); +//// builder.addFilter(FieldFilters.eq("c.deleted",false)); +// builder.addFilter(FieldFilters.eq("sc.aid",studyCourseQuery.getAid())); +// builder.addFilter(FieldFilters.in("sc.courseId",studyCourseQuery.getIds())); +// builder.addOrder(OrderCondition.desc("sc.lastTime")); +// builder.addFields("sc"); +// builder.addFields("c.score"); +// builder.addFields("c.coverImg"); + + StringBuilder str=new StringBuilder(); + if(!studyCourseQuery.getIds().isEmpty()){ + for (String id:studyCourseQuery.getIds()){ + str.append("'"); + str.append(id); + str.append("'"); + str.append(","); + + } + } + if(StringUtils.isNotBlank(str)){ + str.deleteCharAt(str.length()-1); + } + + String sql="select sc.id,sc.course_id,sc.course_type,sc.course_name,sc.aid,sc.aname,sc.source,sc.add_time,sc.start_time,sc.finish_time,sc.progress," + + "sc.total_duration,sc.last_score,sc.status,sc.status_time,sc.last_time," + + "c.score,c.cover_img from boe_course as c left join boe_study_course as sc on sc.course_id=c.id where " + + "sc.aid='"+studyCourseQuery.getAid()+"' and sc.course_id in ("+str+") order by sc.last_time"; + + //List list = studyCourseDao.findList(builder.builder()); List rs=new ArrayList(); Set checkSet=new HashSet(); try { - List list= studyCourseDao.findListFields(builder.builder()); +// List list= studyCourseDao.findListFields(builder.builder()); + List list = studyCourseDao.sqlFindList(sql); for(Object[] objs:list) { - StudyCourse sc=(StudyCourse)objs[0]; - if(!checkSet.contains(sc.getCourseId())) { - Float score=(Float)objs[1]; - String img=(String)objs[2]; - sc.setLastScore(score); - sc.setCourseImage(img); - rs.add(sc); - checkSet.add(sc.getCourseId()); +// System.out.println(objs[0].getClass()); +// StudyCourse sc=(StudyCourse)objs[0]; + StudyCourse studyCourse = new StudyCourse(); + + studyCourse.setId(String.valueOf((BigInteger) objs[0])); + studyCourse.setCourseId((String) objs[1]); + studyCourse.setCourseType((Integer) objs[2]); + studyCourse.setCourseName((String) objs[3]); + studyCourse.setAid((String) objs[4]); + studyCourse.setAname((String) objs[5]); + studyCourse.setSource((Integer) objs[6]); + if(objs[7]!=null) { + Timestamp timestamp = (Timestamp) objs[7]; + + studyCourse.setAddTime(timestamp.toLocalDateTime()); + } + if(objs[8]!=null){ + Timestamp timestamp1 = (Timestamp) objs[8]; + studyCourse.setStartTime(timestamp1.toLocalDateTime()); + } + if(objs[9]!=null){ + Timestamp timestamp2 = (Timestamp) objs[9]; + studyCourse.setFinishTime(timestamp2.toLocalDateTime()); + } + + studyCourse.setProgress((Float) objs[10]); + studyCourse.setTotalDuration((Integer) objs[11]); + studyCourse.setLastScore((Float) objs[12]); + studyCourse.setStatus((Integer) objs[13]); + if(objs[14]!=null){ + Timestamp timestamp3 = (Timestamp) objs[14]; + studyCourse.setStatusTime(timestamp3.toLocalDateTime()); + } + if(objs[15]!=null){ + Timestamp timestamp4 = (Timestamp) objs[15]; + studyCourse.setLastTime(timestamp4.toLocalDateTime()); + } + + if(!checkSet.contains(studyCourse.getCourseId())) { + Float score=(Float)objs[16]; + String img=(String)objs[17]; + studyCourse.setLastScore(score); + studyCourse.setCourseImage(img); + rs.add(studyCourse); + checkSet.add(studyCourse.getCourseId()); } } return rs; }catch(Exception e){ + e.printStackTrace(); log.error("",e); } return rs; @@ -317,30 +379,101 @@ public class StudyCourseServiceImpl implements IStudyCourseService{ @Override public List followids(StudyCourseQuery studyCourseQuery) { //当前先这样查询,以后要修改,只查询需要的字段,另外 ,需要按课程分组,不然一门课程会查出很多记录出来 - QueryBuilder builder = QueryBuilder.from(StudyCourse.class.getSimpleName()+" sc,"+ Course.class.getSimpleName()+" c"); - builder.addFilter(FieldFilters.eqField("sc.courseId","c.id")); -// builder.addFilter(FieldFilters.eq("c.enabled",true)); -// builder.addFilter(FieldFilters.eq("c.deleted",false)); - builder.addFilter(FieldFilters.in("sc.aid",studyCourseQuery.getAids())); - builder.addFilter(FieldFilters.in("sc.courseId",studyCourseQuery.getIds())); - builder.addOrder(OrderCondition.desc("sc.lastTime")); - builder.addFields("sc"); - builder.addFields("c.score"); - builder.addFields("c.coverImg"); +// QueryBuilder builder = QueryBuilder.from(StudyCourse.class.getSimpleName()+" sc,"+ Course.class.getSimpleName()+" c"); +// builder.addFilter(FieldFilters.eqField("sc.courseId","c.id")); +//// builder.addFilter(FieldFilters.eq("c.enabled",true)); +//// builder.addFilter(FieldFilters.eq("c.deleted",false)); +// builder.addFilter(FieldFilters.in("sc.aid",studyCourseQuery.getAids())); +// builder.addFilter(FieldFilters.in("sc.courseId",studyCourseQuery.getIds())); +// builder.addOrder(OrderCondition.desc("sc.lastTime")); +// builder.addFields("sc"); +// builder.addFields("c.score"); +// builder.addFields("c.coverImg"); //List list = studyCourseDao.findList(builder.builder()); + StringBuilder str=new StringBuilder(); + if(!studyCourseQuery.getIds().isEmpty()){ + for (String id:studyCourseQuery.getIds()){ + str.append("'"); + str.append(id); + str.append("'"); + str.append(","); + + } + } + if(StringUtils.isNotBlank(str)){ + str.deleteCharAt(str.length()-1); + } + + StringBuilder str1=new StringBuilder(); + if(!studyCourseQuery.getAids().isEmpty()){ + for (String id:studyCourseQuery.getIds()){ + str1.append("'"); + str1.append(id); + str1.append("'"); + str1.append(","); + + } + } + if(StringUtils.isNotBlank(str)){ + str1.deleteCharAt(str1.length()-1); + } + + + + String sql="select sc.id,sc.course_id,sc.course_type,sc.course_name,sc.aid,sc.aname,sc.source,sc.add_time,sc.start_time,sc.finish_time,sc.progress," + + "sc.total_duration,sc.last_score,sc.status,sc.status_time,sc.last_time," + + "c.score,c.cover_img from boe_course as c left join boe_study_course as sc on sc.course_id=c.id where " + + "sc.aid in("+str1+") and sc.course_id in ("+str+") order by sc.last_time"; + List rs=new ArrayList(); Set checkSet=new HashSet(); try { - List list= studyCourseDao.findListFields(builder.builder()); +// List list= studyCourseDao.findListFields(builder.builder()); + List list = studyCourseDao.sqlFindList(sql); for(Object[] objs:list) { - StudyCourse sc=(StudyCourse)objs[0]; - if(!checkSet.contains(sc.getCourseId())) { - Float score=(Float)objs[1]; - String img=(String)objs[2]; - sc.setLastScore(score); - sc.setCourseImage(img); - rs.add(sc); - checkSet.add(sc.getCourseId()); +// StudyCourse sc=(StudyCourse)objs[0]; + StudyCourse studyCourse = new StudyCourse(); + + studyCourse.setId(String.valueOf((BigInteger) objs[0])); + studyCourse.setCourseId((String) objs[1]); + studyCourse.setCourseType((Integer) objs[2]); + studyCourse.setCourseName((String) objs[3]); + studyCourse.setAid((String) objs[4]); + studyCourse.setAname((String) objs[5]); + studyCourse.setSource((Integer) objs[6]); + if(objs[7]!=null) { + Timestamp timestamp = (Timestamp) objs[7]; + + studyCourse.setAddTime(timestamp.toLocalDateTime()); + } + if(objs[8]!=null){ + Timestamp timestamp1 = (Timestamp) objs[8]; + studyCourse.setStartTime(timestamp1.toLocalDateTime()); + } + if(objs[9]!=null){ + Timestamp timestamp2 = (Timestamp) objs[9]; + studyCourse.setFinishTime(timestamp2.toLocalDateTime()); + } + + studyCourse.setProgress((Float) objs[10]); + studyCourse.setTotalDuration((Integer) objs[11]); + studyCourse.setLastScore((Float) objs[12]); + studyCourse.setStatus((Integer) objs[13]); + if(objs[14]!=null){ + Timestamp timestamp3 = (Timestamp) objs[14]; + studyCourse.setStatusTime(timestamp3.toLocalDateTime()); + } + if(objs[15]!=null){ + Timestamp timestamp4 = (Timestamp) objs[15]; + studyCourse.setLastTime(timestamp4.toLocalDateTime()); + } + if(!checkSet.contains(studyCourse.getCourseId())) { + Float score=(Float)objs[16]; + String img=(String)objs[17]; + studyCourse.setLastScore(score); + studyCourse.setCourseImage(img); + rs.add(studyCourse); + checkSet.add(studyCourse.getCourseId()); } } return rs;