mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-11 20:06:51 +08:00
Merge branch 'preview' of codeup.aliyun.com:6265f483e4166464dc2f9c14/boeu/baseservers into release
This commit is contained in:
@@ -109,11 +109,14 @@ public class CoursePortalApi extends ApiBaseController{
|
|||||||
* 评分榜
|
* 评分榜
|
||||||
* */
|
* */
|
||||||
@GetMapping("/score-list")
|
@GetMapping("/score-list")
|
||||||
public JsonResponse<List<RankingDto>> scoreList(Integer num){
|
public JsonResponse<List<RankingDto>> scoreList(Integer num,Integer index){
|
||||||
if(num==null){
|
if(num==null){
|
||||||
num=5;
|
num=5;
|
||||||
}
|
}
|
||||||
List<RankingDto> rankingDtos = courseService.scoreList(num);
|
if(index==null){
|
||||||
|
return badRequest("缺少参数");
|
||||||
|
}
|
||||||
|
List<RankingDto> rankingDtos = courseService.scoreList(num,index);
|
||||||
return success(rankingDtos);
|
return success(rankingDtos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -274,7 +274,7 @@ public interface ICourseService {
|
|||||||
/**
|
/**
|
||||||
* 评分榜
|
* 评分榜
|
||||||
* */
|
* */
|
||||||
List<RankingDto> scoreList(int num);
|
List<RankingDto> scoreList(int num,int index);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 判断课程名字是否有重复
|
* 判断课程名字是否有重复
|
||||||
|
|||||||
@@ -896,7 +896,7 @@ public class CourseServiceImpl implements ICourseService {
|
|||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<RankingDto> scoreList(int num) {
|
public List<RankingDto> scoreList(int num,int index) {
|
||||||
QueryBuilder builder = QueryBuilder.from(Course.class);
|
QueryBuilder builder = QueryBuilder.from(Course.class);
|
||||||
builder.setPageSize(num);
|
builder.setPageSize(num);
|
||||||
builder.addFilter(FieldFilters.eq("deleted",false));
|
builder.addFilter(FieldFilters.eq("deleted",false));
|
||||||
@@ -905,7 +905,12 @@ public class CourseServiceImpl implements ICourseService {
|
|||||||
builder.addFilter(FieldFilters.eq("enabled",true));
|
builder.addFilter(FieldFilters.eq("enabled",true));
|
||||||
LocalDateTime parse = LocalDate.parse("2022-01-01", DateTimeFormatter.ofPattern("yyyy-MM-dd")).atStartOfDay();
|
LocalDateTime parse = LocalDate.parse("2022-01-01", DateTimeFormatter.ofPattern("yyyy-MM-dd")).atStartOfDay();
|
||||||
builder.addFilter(FieldFilters.gt("publishTime",parse));
|
builder.addFilter(FieldFilters.gt("publishTime",parse));
|
||||||
builder.addOrder(OrderCondition.desc("score"));
|
if(index==1){
|
||||||
|
builder.addOrder(OrderCondition.desc("views"));
|
||||||
|
}else {
|
||||||
|
builder.addOrder(OrderCondition.desc("score"));
|
||||||
|
}
|
||||||
|
|
||||||
PageList<Course> page = courseDao.findPage(builder.builder());
|
PageList<Course> page = courseDao.findPage(builder.builder());
|
||||||
List<Course> list = page.getList();
|
List<Course> list = page.getList();
|
||||||
List<RankingDto> rankingDtos = new ArrayList<>();
|
List<RankingDto> rankingDtos = new ArrayList<>();
|
||||||
|
|||||||
@@ -138,7 +138,7 @@ public class PortalIndexApi extends ApiBaseController{
|
|||||||
int i=0;
|
int i=0;
|
||||||
if(!courses.isEmpty()){
|
if(!courses.isEmpty()){
|
||||||
for (Course c:courses) {
|
for (Course c:courses) {
|
||||||
coursePageList.getList().set(i,c);
|
coursePageList.getList().add(i,c);
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -281,98 +281,134 @@ public class StudyCourseServiceImpl implements IStudyCourseService{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<StudyCourse> ids(StudyCourseQuery studyCourseQuery) {
|
public List<StudyCourse> ids(StudyCourseQuery studyCourseQuery) {
|
||||||
// List<StudyCouseDto> studyCouseDtos = new ArrayList<>();
|
|
||||||
// QueryBuilder builder = QueryBuilder.from(StudyCourse.class.getSimpleName()+" sc,"+ Course.class.getSimpleName()+" c");
|
//分两次查询,查询课程,查询学习记录
|
||||||
// builder.addFilter(FieldFilters.eqField("sc.courseId","c.id"));
|
String courseHql="Select id,coverImg,score from "+Course.class.getSimpleName()+" where id in(?1)";
|
||||||
//// builder.addFilter(FieldFilters.eq("c.enabled",true));
|
String studyHql="Select courseId,addTime,progress,aid from "+StudyCourse.class.getSimpleName()+" where aid=?1 and courseId in(?2)";
|
||||||
//// builder.addFilter(FieldFilters.eq("c.deleted",false));
|
|
||||||
// builder.addFilter(FieldFilters.eq("sc.aid",studyCourseQuery.getAid()));
|
List<StudyCourse> rs=new ArrayList<>();
|
||||||
// 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<StudyCourse> list = studyCourseDao.findList(builder.builder());
|
|
||||||
List<StudyCourse> rs=new ArrayList<StudyCourse>();
|
|
||||||
Set<String> checkSet=new HashSet<String>();
|
|
||||||
try {
|
try {
|
||||||
// List<Object[]> list= studyCourseDao.findListFields(builder.builder());
|
List<Object[]> clist= studyCourseDao.findListFields(courseHql,studyCourseQuery.getIds());
|
||||||
List<Object[]> list = studyCourseDao.sqlFindList(sql);
|
List<Object[]> slist= studyCourseDao.findListFields(studyHql,studyCourseQuery.getAid(),studyCourseQuery.getIds());
|
||||||
for(Object[] objs:list) {
|
//数据数量一般不会太多,不超过20条,所以直接使用嵌套循环
|
||||||
// System.out.println(objs[0].getClass());
|
for(Object[] sobjs : slist) {
|
||||||
// StudyCourse sc=(StudyCourse)objs[0];
|
StudyCourse sc=new StudyCourse();
|
||||||
StudyCourse studyCourse = new StudyCourse();
|
sc.setCourseId(ConvertUtil.toStr(sobjs[0]));
|
||||||
|
sc.setAddTime((LocalDateTime)sobjs[1]);
|
||||||
studyCourse.setId(String.valueOf((BigInteger) objs[0]));
|
sc.setProgress(ConvertUtil.toFloat(sobjs[2]));
|
||||||
studyCourse.setCourseId((String) objs[1]);
|
sc.setAid(ConvertUtil.toStr(sobjs[3]));
|
||||||
studyCourse.setCourseType((Integer) objs[2]);
|
for(Object[] cobjs : clist) {
|
||||||
studyCourse.setCourseName((String) objs[3]);
|
String cid=ConvertUtil.toStr(cobjs[0]);
|
||||||
studyCourse.setAid((String) objs[4]);
|
if(cid!=null && cid.equals(sc.getCourseId())) {
|
||||||
studyCourse.setAname((String) objs[5]);
|
sc.setCourseImage(ConvertUtil.toStr(cobjs[1]));
|
||||||
studyCourse.setSource((Integer) objs[6]);
|
sc.setLastScore(ConvertUtil.toFloat(cobjs[2]));//课程分数,使用此值来承载
|
||||||
if(objs[7]!=null) {
|
break;
|
||||||
Timestamp timestamp = (Timestamp) objs[7];
|
}
|
||||||
|
|
||||||
studyCourse.setAddTime(timestamp.toLocalDateTime());
|
|
||||||
}
|
}
|
||||||
if(objs[8]!=null){
|
if(sc.getProgress()==null) {
|
||||||
Timestamp timestamp1 = (Timestamp) objs[8];
|
sc.setProgress(0f);
|
||||||
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());
|
|
||||||
}
|
}
|
||||||
|
rs.add(sc);
|
||||||
}
|
}
|
||||||
return rs;
|
}catch(Exception e) {
|
||||||
}catch(Exception e){
|
log.error("查询错误",e);
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
log.error("",e);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return rs;
|
return rs;
|
||||||
|
|
||||||
|
//// List<StudyCouseDto> 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");
|
||||||
|
//
|
||||||
|
// 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> rs=new ArrayList<StudyCourse>();
|
||||||
|
// Set<String> checkSet=new HashSet<String>();
|
||||||
|
// try {
|
||||||
|
//// List<Object[]> list= studyCourseDao.findListFields(builder.builder());
|
||||||
|
// List<Object[]> list = studyCourseDao.sqlFindList(sql);
|
||||||
|
// for(Object[] objs:list) {
|
||||||
|
//// 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;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user