This commit is contained in:
daihh
2022-10-27 17:09:29 +08:00

View File

@@ -1,6 +1,8 @@
package com.xboe.school.study.service.impl; package com.xboe.school.study.service.impl;
import java.math.BigInteger;
import java.sql.Timestamp;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
@@ -275,34 +277,94 @@ public class StudyCourseServiceImpl implements IStudyCourseService{
@Override @Override
public List<StudyCourse> ids(StudyCourseQuery studyCourseQuery) { public List<StudyCourse> ids(StudyCourseQuery studyCourseQuery) {
// List<StudyCouseDto> studyCouseDtos = new ArrayList<>(); // List<StudyCouseDto> studyCouseDtos = new ArrayList<>();
QueryBuilder builder = QueryBuilder.from(StudyCourse.class.getSimpleName()+" sc,"+ Course.class.getSimpleName()+" c"); // QueryBuilder builder = QueryBuilder.from(StudyCourse.class.getSimpleName()+" sc,"+ Course.class.getSimpleName()+" c");
builder.addFilter(FieldFilters.eqField("sc.courseId","c.id")); // builder.addFilter(FieldFilters.eqField("sc.courseId","c.id"));
// builder.addFilter(FieldFilters.eq("c.enabled",true)); //// builder.addFilter(FieldFilters.eq("c.enabled",true));
// builder.addFilter(FieldFilters.eq("c.deleted",false)); //// builder.addFilter(FieldFilters.eq("c.deleted",false));
builder.addFilter(FieldFilters.eq("sc.aid",studyCourseQuery.getAid())); // builder.addFilter(FieldFilters.eq("sc.aid",studyCourseQuery.getAid()));
builder.addFilter(FieldFilters.in("sc.courseId",studyCourseQuery.getIds())); // builder.addFilter(FieldFilters.in("sc.courseId",studyCourseQuery.getIds()));
builder.addOrder(OrderCondition.desc("sc.lastTime")); // builder.addOrder(OrderCondition.desc("sc.lastTime"));
builder.addFields("sc"); // builder.addFields("sc");
builder.addFields("c.score"); // builder.addFields("c.score");
builder.addFields("c.coverImg"); // 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<StudyCourse> list = studyCourseDao.findList(builder.builder()); //List<StudyCourse> list = studyCourseDao.findList(builder.builder());
List<StudyCourse> rs=new ArrayList<StudyCourse>(); List<StudyCourse> rs=new ArrayList<StudyCourse>();
Set<String> checkSet=new HashSet<String>(); Set<String> checkSet=new HashSet<String>();
try { try {
List<Object[]> list= studyCourseDao.findListFields(builder.builder()); // List<Object[]> list= studyCourseDao.findListFields(builder.builder());
List<Object[]> list = studyCourseDao.sqlFindList(sql);
for(Object[] objs:list) { for(Object[] objs:list) {
StudyCourse sc=(StudyCourse)objs[0]; // System.out.println(objs[0].getClass());
if(!checkSet.contains(sc.getCourseId())) { // StudyCourse sc=(StudyCourse)objs[0];
Float score=(Float)objs[1]; StudyCourse studyCourse = new StudyCourse();
String img=(String)objs[2];
sc.setLastScore(score); studyCourse.setId(String.valueOf((BigInteger) objs[0]));
sc.setCourseImage(img); studyCourse.setCourseId((String) objs[1]);
rs.add(sc); studyCourse.setCourseType((Integer) objs[2]);
checkSet.add(sc.getCourseId()); 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; return rs;
}catch(Exception e){ }catch(Exception e){
e.printStackTrace();
log.error("",e); log.error("",e);
} }
return rs; return rs;
@@ -317,30 +379,101 @@ public class StudyCourseServiceImpl implements IStudyCourseService{
@Override @Override
public List<StudyCourse> followids(StudyCourseQuery studyCourseQuery) { public List<StudyCourse> followids(StudyCourseQuery studyCourseQuery) {
//当前先这样查询,以后要修改,只查询需要的字段,另外 ,需要按课程分组,不然一门课程会查出很多记录出来 //当前先这样查询,以后要修改,只查询需要的字段,另外 ,需要按课程分组,不然一门课程会查出很多记录出来
QueryBuilder builder = QueryBuilder.from(StudyCourse.class.getSimpleName()+" sc,"+ Course.class.getSimpleName()+" c"); // QueryBuilder builder = QueryBuilder.from(StudyCourse.class.getSimpleName()+" sc,"+ Course.class.getSimpleName()+" c");
builder.addFilter(FieldFilters.eqField("sc.courseId","c.id")); // builder.addFilter(FieldFilters.eqField("sc.courseId","c.id"));
// builder.addFilter(FieldFilters.eq("c.enabled",true)); //// builder.addFilter(FieldFilters.eq("c.enabled",true));
// builder.addFilter(FieldFilters.eq("c.deleted",false)); //// builder.addFilter(FieldFilters.eq("c.deleted",false));
builder.addFilter(FieldFilters.in("sc.aid",studyCourseQuery.getAids())); // builder.addFilter(FieldFilters.in("sc.aid",studyCourseQuery.getAids()));
builder.addFilter(FieldFilters.in("sc.courseId",studyCourseQuery.getIds())); // builder.addFilter(FieldFilters.in("sc.courseId",studyCourseQuery.getIds()));
builder.addOrder(OrderCondition.desc("sc.lastTime")); // builder.addOrder(OrderCondition.desc("sc.lastTime"));
builder.addFields("sc"); // builder.addFields("sc");
builder.addFields("c.score"); // builder.addFields("c.score");
builder.addFields("c.coverImg"); // builder.addFields("c.coverImg");
//List<StudyCourse> list = studyCourseDao.findList(builder.builder()); //List<StudyCourse> 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<StudyCourse> rs=new ArrayList<StudyCourse>(); List<StudyCourse> rs=new ArrayList<StudyCourse>();
Set<String> checkSet=new HashSet<String>(); Set<String> checkSet=new HashSet<String>();
try { try {
List<Object[]> list= studyCourseDao.findListFields(builder.builder()); // List<Object[]> list= studyCourseDao.findListFields(builder.builder());
List<Object[]> list = studyCourseDao.sqlFindList(sql);
for(Object[] objs:list) { for(Object[] objs:list) {
StudyCourse sc=(StudyCourse)objs[0]; // StudyCourse sc=(StudyCourse)objs[0];
if(!checkSet.contains(sc.getCourseId())) { StudyCourse studyCourse = new StudyCourse();
Float score=(Float)objs[1];
String img=(String)objs[2]; studyCourse.setId(String.valueOf((BigInteger) objs[0]));
sc.setLastScore(score); studyCourse.setCourseId((String) objs[1]);
sc.setCourseImage(img); studyCourse.setCourseType((Integer) objs[2]);
rs.add(sc); studyCourse.setCourseName((String) objs[3]);
checkSet.add(sc.getCourseId()); 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; return rs;