Merge branch 'preview' of codeup.aliyun.com:6265f483e4166464dc2f9c14/boeu/baseservers into release

This commit is contained in:
dongruihua
2022-11-01 09:59:52 +08:00

View File

@@ -23,6 +23,7 @@ import com.xboe.core.orm.FieldFilters;
import com.xboe.core.orm.FieldUpdateType; import com.xboe.core.orm.FieldUpdateType;
import com.xboe.core.orm.QueryBuilder; import com.xboe.core.orm.QueryBuilder;
import com.xboe.core.orm.UpdateBuilder; import com.xboe.core.orm.UpdateBuilder;
import com.xboe.core.utils.ConvertUtil;
import com.xboe.module.course.dao.CourseContentDao; import com.xboe.module.course.dao.CourseContentDao;
import com.xboe.module.course.dao.CourseDao; import com.xboe.module.course.dao.CourseDao;
import com.xboe.module.course.entity.Course; import com.xboe.module.course.entity.Course;
@@ -382,6 +383,41 @@ public class StudyCourseServiceImpl implements IStudyCourseService{
@Override @Override
public List<StudyCourse> followids(StudyCourseQuery studyCourseQuery) { public List<StudyCourse> followids(StudyCourseQuery studyCourseQuery) {
//分两次查询,查询课程,查询学习记录
String courseHql="Select id,coverImg,score from "+Course.class.getSimpleName()+" where id in(?1)";
String studyHql="Select courseId,addTime,progress,aid from "+StudyCourse.class.getSimpleName()+" where aid in(?1) and courseId in(?2)";
List<StudyCourse> rs=new ArrayList<>();
try {
List<Object[]> clist= studyCourseDao.findListFields(courseHql,studyCourseQuery.getIds());
List<Object[]> slist= studyCourseDao.findListFields(studyHql,studyCourseQuery.getAids(),studyCourseQuery.getIds());
//数据数量一般不会太多不超过20条所以直接使用嵌套循环
for(Object[] cobjs : clist) {
StudyCourse sc=new StudyCourse();
sc.setCourseId(ConvertUtil.toStr(cobjs[0]));
sc.setCourseImage(ConvertUtil.toStr(cobjs[1]));
sc.setLastScore(ConvertUtil.toFloat(cobjs[2]));//课程分数,使用此值来承载
for(Object[] sobjs : slist) {
String cid=ConvertUtil.toStr(sobjs[0]);
if(cid!=null && cid.equals(sc.getCourseId())) {
sc.setAddTime((LocalDateTime)sobjs[1]);
sc.setProgress(ConvertUtil.toFloat(sobjs[2]));
sc.setAid(ConvertUtil.toStr(sobjs[3]));
}
}
if(sc.getProgress()==null) {
sc.setProgress(0f);
}
rs.add(sc);
}
}catch(Exception e) {
log.error("查询错误",e);
e.printStackTrace();
}
return rs;
//当前先这样查询,以后要修改,只查询需要的字段,另外 ,需要按课程分组,不然一门课程会查出很多记录出来 //当前先这样查询,以后要修改,只查询需要的字段,另外 ,需要按课程分组,不然一门课程会查出很多记录出来
// 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"));
@@ -394,95 +430,100 @@ public class StudyCourseServiceImpl implements IStudyCourseService{
// 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(); // StringBuilder str=new StringBuilder();
if(!studyCourseQuery.getIds().isEmpty()){ // if(!studyCourseQuery.getIds().isEmpty()){
for (String id:studyCourseQuery.getAids()){ // for (String id:studyCourseQuery.getAids()){
//str.append("'"); // //str.append("'");
str.append(id); // str.append(id);
//str.append("'"); // //str.append("'");
str.append(","); // str.append(",");
//
} // }
} // }
if(StringUtils.isNotBlank(str)){ // if(StringUtils.isNotBlank(str)){
str.deleteCharAt(str.length()-1); // str.deleteCharAt(str.length()-1);
} // }
//
StringBuilder str1=new StringBuilder(); // StringBuilder str1=new StringBuilder();
if(!studyCourseQuery.getAids().isEmpty()){ // if(!studyCourseQuery.getAids().isEmpty()){
for (String id:studyCourseQuery.getIds()){ // for (String id:studyCourseQuery.getIds()){
//str1.append("'"); // //str1.append("'");
str1.append(id); // str1.append(id);
//str1.append("'"); // //str1.append("'");
str1.append(","); // str1.append(",");
//
} // }
} // }
if(StringUtils.isNotBlank(str)){ // if(StringUtils.isNotBlank(str)){
str1.deleteCharAt(str1.length()-1); // 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," + // String hql="select sc.id,sc.courseId,sc.courseType,sc.courseName,sc.aid,sc.aname,sc.source,sc.addTime,sc.startTime,sc.finishTime,sc.progress," +
"sc.total_duration,sc.last_score,sc.status,sc.status_time,sc.last_time," + // "sc.totalDuration,sc.lastScore,sc.status,sc.statusTime,sc.lastTime," +
"c.score,c.cover_img from boe_course as c left join boe_study_course as sc on sc.course_id=c.id where " + // "c.score,c.coverImg from Course as c left join studyCourse sc where sc.courseId=c.id and " +
"sc.aid in("+str+") and sc.course_id in ("+str1+") order by sc.last_time"; // "sc.aid in(?1) and sc.courseId in(?2) order by sc.lastTime";
//
List<StudyCourse> rs=new ArrayList<StudyCourse>(); //// 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," +
Set<String> checkSet=new HashSet<String>(); //// "sc.total_duration,sc.last_score,sc.status,sc.status_time,sc.last_time," +
try { //// "c.score,c.cover_img from boe_course as c left join boe_study_course as sc on sc.course_id=c.id where " +
// List<Object[]> list= studyCourseDao.findListFields(builder.builder()); //// "sc.aid in("+str+") and sc.course_id in ("+str1+") order by sc.last_time";
List<Object[]> list = studyCourseDao.sqlFindList(sql); //
for(Object[] objs:list) { // List<StudyCourse> rs=new ArrayList<StudyCourse>();
// StudyCourse sc=(StudyCourse)objs[0]; // Set<String> checkSet=new HashSet<String>();
StudyCourse studyCourse = new StudyCourse(); // try {
//// List<Object[]> list= studyCourseDao.findListFields(builder.builder());
studyCourse.setId(String.valueOf((BigInteger) objs[0])); // List<Object[]> list = studyCourseDao.sqlFindList(hql,studyCourseQuery.getAids(),studyCourseQuery.getIds());
studyCourse.setCourseId((String) objs[1]); // for(Object[] objs:list) {
studyCourse.setCourseType((Integer) objs[2]); //// StudyCourse sc=(StudyCourse)objs[0];
studyCourse.setCourseName((String) objs[3]); // StudyCourse studyCourse = new StudyCourse();
studyCourse.setAid((String) objs[4]); //
studyCourse.setAname((String) objs[5]); // studyCourse.setId(String.valueOf((BigInteger) objs[0]));
studyCourse.setSource((Integer) objs[6]); // studyCourse.setCourseId((String) objs[1]);
if(objs[7]!=null) { // studyCourse.setCourseType((Integer) objs[2]);
Timestamp timestamp = (Timestamp) objs[7]; // studyCourse.setCourseName((String) objs[3]);
// studyCourse.setAid((String) objs[4]);
studyCourse.setAddTime(timestamp.toLocalDateTime()); // studyCourse.setAname((String) objs[5]);
} // studyCourse.setSource((Integer) objs[6]);
if(objs[8]!=null){ // if(objs[7]!=null) {
Timestamp timestamp1 = (Timestamp) objs[8]; // Timestamp timestamp = (Timestamp) objs[7];
studyCourse.setStartTime(timestamp1.toLocalDateTime()); //
} // studyCourse.setAddTime(timestamp.toLocalDateTime());
if(objs[9]!=null){ // }
Timestamp timestamp2 = (Timestamp) objs[9]; // if(objs[8]!=null){
studyCourse.setFinishTime(timestamp2.toLocalDateTime()); // Timestamp timestamp1 = (Timestamp) objs[8];
} // studyCourse.setStartTime(timestamp1.toLocalDateTime());
// }
studyCourse.setProgress((Float) objs[10]); // if(objs[9]!=null){
studyCourse.setTotalDuration((Integer) objs[11]); // Timestamp timestamp2 = (Timestamp) objs[9];
// studyCourse.setLastScore((Float) objs[12]); // studyCourse.setFinishTime(timestamp2.toLocalDateTime());
studyCourse.setStatus((Integer) objs[13]); // }
if(objs[14]!=null){ //
Timestamp timestamp3 = (Timestamp) objs[14]; // studyCourse.setProgress((Float) objs[10]);
studyCourse.setStatusTime(timestamp3.toLocalDateTime()); // studyCourse.setTotalDuration((Integer) objs[11]);
} //// studyCourse.setLastScore((Float) objs[12]);
if(objs[15]!=null){ // studyCourse.setStatus((Integer) objs[13]);
Timestamp timestamp4 = (Timestamp) objs[15]; // if(objs[14]!=null){
studyCourse.setLastTime(timestamp4.toLocalDateTime()); // Timestamp timestamp3 = (Timestamp) objs[14];
} // studyCourse.setStatusTime(timestamp3.toLocalDateTime());
if(!checkSet.contains(studyCourse.getCourseId())) { // }
Float score=(Float)objs[16]; // if(objs[15]!=null){
String img=(String)objs[17]; // Timestamp timestamp4 = (Timestamp) objs[15];
studyCourse.setLastScore(score); // studyCourse.setLastTime(timestamp4.toLocalDateTime());
studyCourse.setCourseImage(img); // }
rs.add(studyCourse); // if(!checkSet.contains(studyCourse.getCourseId())) {
checkSet.add(studyCourse.getCourseId()); // Float score=(Float)objs[16];
} // String img=(String)objs[17];
} // studyCourse.setLastScore(score);
return rs; // studyCourse.setCourseImage(img);
}catch(Exception e){ // rs.add(studyCourse);
log.error("",e); // checkSet.add(studyCourse.getCourseId());
} // }
return rs; // }
// return rs;
// }catch(Exception e){
// log.error("",e);
// }
// return rs;
} }
@Override @Override