mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-16 14:26:49 +08:00
收藏进度
This commit is contained in:
@@ -6,6 +6,7 @@ import java.util.stream.Collectors;
|
|||||||
|
|
||||||
import com.xboe.core.CurrentUser;
|
import com.xboe.core.CurrentUser;
|
||||||
import com.xboe.module.interaction.dto.*;
|
import com.xboe.module.interaction.dto.*;
|
||||||
|
import com.xboe.school.study.service.IStudyCourseService;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
@@ -39,6 +40,9 @@ public class FavoritesApi extends ApiBaseController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
ICourseTeacherService ctService;
|
ICourseTeacherService ctService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
IStudyCourseService studyCourseService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 此处的查询需要再讨论一下,因为有不同的内容,前端呈现的也不一样
|
* 此处的查询需要再讨论一下,因为有不同的内容,前端呈现的也不一样
|
||||||
*
|
*
|
||||||
@@ -112,12 +116,12 @@ public class FavoritesApi extends ApiBaseController {
|
|||||||
public JsonResponse<PageList<FavoriteDto>> findCoursePage(Pagination pager, Favorites favorites, Integer type, String keyword) {
|
public JsonResponse<PageList<FavoriteDto>> findCoursePage(Pagination pager, Favorites favorites, Integer type, String keyword) {
|
||||||
String aid = this.getCurrent().getAccountId();
|
String aid = this.getCurrent().getAccountId();
|
||||||
PageList<FavoriteDto> coursePage = service.findCoursePage(pager.getPageIndex(), pager.getPageSize(), favorites, type, keyword,aid);
|
PageList<FavoriteDto> coursePage = service.findCoursePage(pager.getPageIndex(), pager.getPageSize(), favorites, type, keyword,aid);
|
||||||
Set<String> cids = new HashSet<String>();
|
// Set<String> cids = new HashSet<String>();
|
||||||
for(FavoriteDto dto : coursePage.getList()) {
|
// for(FavoriteDto dto : coursePage.getList()) {
|
||||||
if(!cids.contains(dto.getObjId())) {
|
// if(!cids.contains(dto.getObjId())) {
|
||||||
cids.add(dto.getObjId());
|
// cids.add(dto.getObjId());
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
// if(cids.size()>0) {
|
// if(cids.size()>0) {
|
||||||
//// List<CourseTeacherDto> teachers = ctService.queryTeacher(cids);
|
//// List<CourseTeacherDto> teachers = ctService.queryTeacher(cids);
|
||||||
//// for(FavoriteDto fdto : coursePage.getList()){
|
//// for(FavoriteDto fdto : coursePage.getList()){
|
||||||
@@ -128,6 +132,18 @@ public class FavoritesApi extends ApiBaseController {
|
|||||||
//// }
|
//// }
|
||||||
//// }
|
//// }
|
||||||
// }
|
// }
|
||||||
|
List<String> courseIds = coursePage.getList().stream().map(FavoriteDto::getObjId).collect(Collectors.toList());
|
||||||
|
List<Object[]> progress = studyCourseService.progress(aid, courseIds);
|
||||||
|
if(!coursePage.getList().isEmpty() && !progress.isEmpty()) {
|
||||||
|
for (FavoriteDto dto : coursePage.getList()) {
|
||||||
|
for (Object[] o : progress) {
|
||||||
|
if (dto.getObjId().equals(o[0])) {
|
||||||
|
dto.setProgress((Float) o[1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return success(coursePage);
|
return success(coursePage);
|
||||||
}
|
}
|
||||||
@@ -206,6 +222,20 @@ public class FavoritesApi extends ApiBaseController {
|
|||||||
public JsonResponse<PageList<FavoriteTotalDto>> queryAll(Pagination pager,String keyword){
|
public JsonResponse<PageList<FavoriteTotalDto>> queryAll(Pagination pager,String keyword){
|
||||||
String aid = this.getCurrent().getAccountId();
|
String aid = this.getCurrent().getAccountId();
|
||||||
PageList<FavoriteTotalDto> favoriteTotalDtoPageList = service.queryAll(pager.getPageIndex(), pager.getPageSize(), aid, keyword);
|
PageList<FavoriteTotalDto> favoriteTotalDtoPageList = service.queryAll(pager.getPageIndex(), pager.getPageSize(), aid, keyword);
|
||||||
|
List<String> courseIds = favoriteTotalDtoPageList.getList().stream().filter(favoriteTotalDto -> favoriteTotalDto.getType() == 1).
|
||||||
|
map(FavoriteTotalDto::getId).collect(Collectors.toList());
|
||||||
|
List<Object[]> progress = studyCourseService.progress(aid, courseIds);
|
||||||
|
if(!favoriteTotalDtoPageList.getList().isEmpty() && !progress.isEmpty()) {
|
||||||
|
for (FavoriteTotalDto dto : favoriteTotalDtoPageList.getList()) {
|
||||||
|
for (Object[] o : progress) {
|
||||||
|
if (dto.getId().equals(o[0])) {
|
||||||
|
dto.setProgress((Float) o[1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return success(favoriteTotalDtoPageList);
|
return success(favoriteTotalDtoPageList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -65,5 +65,10 @@ public class FavoriteDto {
|
|||||||
/**针对于问题是否已解决*/
|
/**针对于问题是否已解决*/
|
||||||
private Boolean isResolve;
|
private Boolean isResolve;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 学习进度
|
||||||
|
* */
|
||||||
|
private Float progress;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -81,6 +81,11 @@ public class FavoriteTotalDto {
|
|||||||
* */
|
* */
|
||||||
private Integer breCommend;
|
private Integer breCommend;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 学习进度
|
||||||
|
* */
|
||||||
|
private Float progress;
|
||||||
|
|
||||||
|
|
||||||
public FavoriteTotalDto() {
|
public FavoriteTotalDto() {
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -74,4 +74,9 @@ public interface IStudyCourseService {
|
|||||||
* */
|
* */
|
||||||
List<StudyCourse> followids(StudyCourseQuery studyCourseQuery);
|
List<StudyCourse> followids(StudyCourseQuery studyCourseQuery);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询课程最新学习记录的进度
|
||||||
|
* */
|
||||||
|
List<Object[]> progress(String aid,List<String> courseIds);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -266,8 +266,8 @@ public class StudyCourseServiceImpl implements IStudyCourseService{
|
|||||||
// 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"));
|
||||||
@@ -297,8 +297,8 @@ public class StudyCourseServiceImpl implements IStudyCourseService{
|
|||||||
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"));
|
||||||
@@ -307,6 +307,25 @@ public class StudyCourseServiceImpl implements IStudyCourseService{
|
|||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Object[]> progress(String aid, List<String> courseIds) {
|
||||||
|
List<Object> floats = new ArrayList<>();
|
||||||
|
QueryBuilder builder = QueryBuilder.from(StudyCourse.class);
|
||||||
|
builder.addFilter(FieldFilters.eq("aid",aid));
|
||||||
|
builder.addFilter(FieldFilters.in("courseId",courseIds));
|
||||||
|
builder.addOrder(OrderCondition.desc("lastTime"));
|
||||||
|
// builder.setPageSize(1);
|
||||||
|
// builder.addGroupBy("aid");
|
||||||
|
builder.addFields("courseId","progress");
|
||||||
|
try {
|
||||||
|
List<Object[]> listFields = studyCourseDao.findListFields(builder.builder());
|
||||||
|
return listFields;
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public StudyCourse has(String courseId, String aid) {
|
public StudyCourse has(String courseId, String aid) {
|
||||||
List<StudyCourse> list=studyCourseDao.findList(1,OrderCondition.desc("id"),FieldFilters.eq("courseId", courseId),FieldFilters.eq("aid", aid));
|
List<StudyCourse> list=studyCourseDao.findList(1,OrderCondition.desc("id"),FieldFilters.eq("courseId", courseId),FieldFilters.eq("aid", aid));
|
||||||
|
|||||||
Reference in New Issue
Block a user