mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-11 11:56:50 +08:00
首页课程排行榜排序问题
This commit is contained in:
@@ -105,7 +105,16 @@ public interface ICourseService {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
PageList<Course> findSimplePage(int pageIndex, int pageSize, CourseQueryDto dto);
|
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.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
@@ -319,7 +320,61 @@ public class CourseServiceImpl implements ICourseService {
|
|||||||
|
|
||||||
return rs;
|
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
|
@Override
|
||||||
public void save(Course course) {
|
public void save(Course course) {
|
||||||
course.setComments(0);
|
course.setComments(0);
|
||||||
|
|||||||
@@ -126,64 +126,78 @@ public class PortalIndexApi extends ApiBaseController{
|
|||||||
*推荐课程
|
*推荐课程
|
||||||
* */
|
* */
|
||||||
@PostMapping("/courselist")
|
@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.setPublish(true);
|
||||||
dto.setYearFilter(true);
|
dto.setYearFilter(true);
|
||||||
PageList<Course> coursePageList = courseService.findSimplePage(pager.getPageIndex(), pager.getPageSize(),dto);
|
dto.setAid(aid);
|
||||||
|
List<Course> coursePageList = courseService.findSimpleList( 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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//并添加
|
// List<Course> courses = courseService.userHobbyList(aid,dto.getOrderField(),dto.getOrderAsc());
|
||||||
|
//
|
||||||
for (Course c:coursePageList.getList()) {
|
// PageList<Course> pageList = new PageList<>();
|
||||||
if(pageList.getList().size()<6){
|
// pageList.setList(new ArrayList<Course>());
|
||||||
pageList.getList().add(c);
|
// pageList.setPageSize(6);
|
||||||
}
|
// pageList.setCount(coursePageList.getCount());
|
||||||
if(pageList.getList().size()>=6){
|
//
|
||||||
break;
|
// 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>();
|
List<String> ids=new ArrayList<String>();
|
||||||
|
|
||||||
|
|
||||||
for(Course c :pageList.getList()) {
|
for(Course c :coursePageList) {
|
||||||
ids.add(c.getId());
|
ids.add(c.getId());
|
||||||
}
|
}
|
||||||
List<CourseTeacher> teachers = courseService.findTeachersByCourseIds(ids);
|
List<CourseTeacher> teachers = courseService.findTeachersByCourseIds(ids);
|
||||||
//注意对于多个教师的情况,这里只是设置第一个教师
|
//注意对于多个教师的情况,这里只是设置第一个教师
|
||||||
for(Course c :pageList.getList()) {
|
for(Course c :coursePageList) {
|
||||||
for(CourseTeacher ct : teachers) {
|
for(CourseTeacher ct : teachers) {
|
||||||
if(ct.getCourseId().equals(c.getId())) {
|
if(ct.getCourseId().equals(c.getId())) {
|
||||||
c.setSysCreateAid(ct.getTeacherId());
|
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