mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-09 02:46:50 +08:00
首页课程排行榜排序问题
This commit is contained in:
@@ -105,7 +105,16 @@ public interface ICourseService {
|
||||
* @return
|
||||
*/
|
||||
PageList<Course> findSimplePage(int pageIndex, int pageSize, CourseQueryDto dto);
|
||||
|
||||
|
||||
/**
|
||||
* 只是查询少量字段
|
||||
* @param pageIndex
|
||||
* @param pageSize
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
List<Course> findSimpleList(int pageSize,CourseQueryDto dto);
|
||||
|
||||
|
||||
/**
|
||||
* 添加课程
|
||||
|
||||
@@ -6,6 +6,7 @@ import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@@ -319,7 +320,61 @@ public class CourseServiceImpl implements ICourseService {
|
||||
|
||||
return rs;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<Course> findSimpleList(int pageSize, CourseQueryDto dto) {
|
||||
List<IFieldFilter> filters = createFilters(dto);
|
||||
//自动添加过滤已删除
|
||||
filters.add(FieldFilters.eq("deleted",false));
|
||||
filters.add(FieldFilters.eq("enabled",true));
|
||||
|
||||
QueryBuilder query=QueryBuilder.from(Course.class).addFilters(filters);
|
||||
|
||||
if(dto.getTopOrder()!=null) {
|
||||
if(dto.getTopOrder()){
|
||||
query.addOrder(OrderCondition.desc("isTop"));
|
||||
query.addOrder(OrderCondition.desc("topTime"));
|
||||
}
|
||||
}
|
||||
OrderCondition oc=null;
|
||||
if(StringUtils.isNotBlank(dto.getOrderField())) {
|
||||
if(dto.getOrderAsc()==null || dto.getOrderAsc()) {
|
||||
oc=OrderCondition.asc(dto.getOrderField());
|
||||
}else {
|
||||
oc=OrderCondition.desc(dto.getOrderField());
|
||||
}
|
||||
}else {
|
||||
//oc=OrderCondition.desc("id");
|
||||
//默认按发布时间排序
|
||||
oc=OrderCondition.desc("publishTime");
|
||||
}
|
||||
query.addOrder(oc);
|
||||
|
||||
// if(dto.getTopOrder()!=null && dto.getTopOrder()){
|
||||
// query.addOrder(OrderCondition.desc("topTime"));
|
||||
// }
|
||||
|
||||
List<Course> courses = this.userHobbyList(dto.getAid(), dto.getOrderField(), dto.getOrderAsc());
|
||||
if(courses!=null && courses.isEmpty()){
|
||||
System.out.println(courses.size());
|
||||
query.setPageSize(pageSize);
|
||||
}
|
||||
else{
|
||||
System.out.println(courses.size());
|
||||
query.setPageSize(pageSize-courses.size());
|
||||
//重复的不包括
|
||||
List<String> courseIds = courses.stream().map(Course::getId).collect(Collectors.toList());
|
||||
query.addFilter(FieldFilters.notIn("id",courseIds));
|
||||
}
|
||||
|
||||
query.addFields("new Course(id,type,name,coverImg,score,studys,comments,shares,praises,favorites,forUsers,value,summary,publishTime,isTop)");
|
||||
|
||||
List<Course> rs=courseDao.findList(query.builder());
|
||||
System.out.println(rs.size()+"asdasd");
|
||||
courses.addAll(rs);
|
||||
return courses;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void save(Course course) {
|
||||
course.setComments(0);
|
||||
|
||||
@@ -126,64 +126,78 @@ public class PortalIndexApi extends ApiBaseController{
|
||||
*推荐课程
|
||||
* */
|
||||
@PostMapping("/courselist")
|
||||
public JsonResponse<PageList<Course>> courseList(Pagination pager, CourseQueryDto dto){
|
||||
|
||||
public JsonResponse<List<Course>> courseList(Pagination pager, CourseQueryDto dto){
|
||||
String aid = this.getCurrent().getAccountId();
|
||||
dto.setPublish(true);
|
||||
dto.setYearFilter(true);
|
||||
PageList<Course> coursePageList = courseService.findSimplePage(pager.getPageIndex(), pager.getPageSize(),dto);
|
||||
|
||||
String aid = this.getCurrent().getAccountId();
|
||||
List<Course> courses = courseService.userHobbyList(aid,dto.getOrderField(),dto.getOrderAsc());
|
||||
|
||||
PageList<Course> pageList = new PageList<>();
|
||||
pageList.setList(new ArrayList<Course>());
|
||||
pageList.setPageSize(6);
|
||||
pageList.setCount(coursePageList.getCount());
|
||||
|
||||
int i=0;
|
||||
if(!courses.isEmpty()){
|
||||
for (Course c:courses) {
|
||||
pageList.getList().add(i,c);
|
||||
i++;
|
||||
// coursePageList.getList().remove(coursePageList.getList().size()-i);
|
||||
}
|
||||
}
|
||||
if(!courses.isEmpty()){
|
||||
for (Course c:courses) {
|
||||
for (Course c1:coursePageList.getList()) {
|
||||
if(c.getId().equals(c1.getId())){
|
||||
coursePageList.getList().remove(c1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
dto.setAid(aid);
|
||||
List<Course> coursePageList = courseService.findSimpleList( pager.getPageSize(),dto);
|
||||
|
||||
|
||||
//并添加
|
||||
|
||||
for (Course c:coursePageList.getList()) {
|
||||
if(pageList.getList().size()<6){
|
||||
pageList.getList().add(c);
|
||||
}
|
||||
if(pageList.getList().size()>=6){
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//去重,
|
||||
|
||||
// List<Course> courses = courseService.userHobbyList(aid,dto.getOrderField(),dto.getOrderAsc());
|
||||
//
|
||||
// PageList<Course> pageList = new PageList<>();
|
||||
// pageList.setList(new ArrayList<Course>());
|
||||
// pageList.setPageSize(6);
|
||||
// pageList.setCount(coursePageList.getCount());
|
||||
//
|
||||
// int i=0;
|
||||
// if(!courses.isEmpty()){
|
||||
// for (Course c:courses) {
|
||||
// pageList.getList().add(i,c);
|
||||
// i++;
|
||||
//// coursePageList.getList().remove(coursePageList.getList().size()-i);
|
||||
// }
|
||||
// }
|
||||
//// if(!courses.isEmpty()){
|
||||
//// for (Course c:courses) {
|
||||
//// for (Course c1:coursePageList.getList()) {
|
||||
//// if(c.getId().equals(c1.getId())){
|
||||
//// coursePageList.getList().remove(c1);
|
||||
//// }
|
||||
//// }
|
||||
//// }
|
||||
//// }
|
||||
//
|
||||
//
|
||||
// //并添加
|
||||
//
|
||||
// for (Course c:coursePageList.getList()) {
|
||||
// if(pageList.getList().size()<6){
|
||||
// pageList.getList().add(c);
|
||||
// }
|
||||
// if(pageList.getList().size()>=6){
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// //去重,
|
||||
// List<Course> collect = pageList.getList().stream().distinct().collect(Collectors.toList());
|
||||
// if(collect.size()<pageList.getList().size()){
|
||||
// for (Course c:collect) {
|
||||
// for (Course c1:coursePageList.getList()) {
|
||||
// if(!c.getId().equals(c1.getId())){
|
||||
// collect.add(c1);
|
||||
// }
|
||||
// if(collect.size()>=6){
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
//提取教师信息
|
||||
List<String> ids=new ArrayList<String>();
|
||||
|
||||
|
||||
for(Course c :pageList.getList()) {
|
||||
for(Course c :coursePageList) {
|
||||
ids.add(c.getId());
|
||||
}
|
||||
List<CourseTeacher> teachers = courseService.findTeachersByCourseIds(ids);
|
||||
//注意对于多个教师的情况,这里只是设置第一个教师
|
||||
for(Course c :pageList.getList()) {
|
||||
for(Course c :coursePageList) {
|
||||
for(CourseTeacher ct : teachers) {
|
||||
if(ct.getCourseId().equals(c.getId())) {
|
||||
c.setSysCreateAid(ct.getTeacherId());
|
||||
@@ -192,7 +206,7 @@ public class PortalIndexApi extends ApiBaseController{
|
||||
}
|
||||
}
|
||||
|
||||
return success(pageList);
|
||||
return success(coursePageList);
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user