mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-10 03:16:48 +08:00
Merge branch 'stat' of https://codeup.aliyun.com/6265f483e4166464dc2f9c14/boeu/baseservers into stat
This commit is contained in:
@@ -6,6 +6,7 @@ import java.util.stream.Collectors;
|
||||
|
||||
import com.xboe.core.CurrentUser;
|
||||
import com.xboe.module.interaction.dto.*;
|
||||
import com.xboe.school.study.service.IStudyCourseService;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
@@ -39,6 +40,9 @@ public class FavoritesApi extends ApiBaseController {
|
||||
@Autowired
|
||||
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) {
|
||||
String aid = this.getCurrent().getAccountId();
|
||||
PageList<FavoriteDto> coursePage = service.findCoursePage(pager.getPageIndex(), pager.getPageSize(), favorites, type, keyword,aid);
|
||||
Set<String> cids = new HashSet<String>();
|
||||
for(FavoriteDto dto : coursePage.getList()) {
|
||||
if(!cids.contains(dto.getObjId())) {
|
||||
cids.add(dto.getObjId());
|
||||
}
|
||||
}
|
||||
// Set<String> cids = new HashSet<String>();
|
||||
// for(FavoriteDto dto : coursePage.getList()) {
|
||||
// if(!cids.contains(dto.getObjId())) {
|
||||
// cids.add(dto.getObjId());
|
||||
// }
|
||||
// }
|
||||
// if(cids.size()>0) {
|
||||
//// List<CourseTeacherDto> teachers = ctService.queryTeacher(cids);
|
||||
//// for(FavoriteDto fdto : coursePage.getList()){
|
||||
@@ -128,7 +132,19 @@ 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);
|
||||
}
|
||||
|
||||
@@ -206,6 +222,20 @@ public class FavoritesApi extends ApiBaseController {
|
||||
public JsonResponse<PageList<FavoriteTotalDto>> queryAll(Pagination pager,String keyword){
|
||||
String aid = this.getCurrent().getAccountId();
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
@@ -65,5 +65,10 @@ public class FavoriteDto {
|
||||
/**针对于问题是否已解决*/
|
||||
private Boolean isResolve;
|
||||
|
||||
/**
|
||||
* 学习进度
|
||||
* */
|
||||
private Float progress;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -81,6 +81,11 @@ public class FavoriteTotalDto {
|
||||
* */
|
||||
private Integer breCommend;
|
||||
|
||||
/**
|
||||
* 学习进度
|
||||
* */
|
||||
private Float progress;
|
||||
|
||||
|
||||
public FavoriteTotalDto() {
|
||||
}
|
||||
|
||||
@@ -74,4 +74,9 @@ public interface IStudyCourseService {
|
||||
* */
|
||||
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<>();
|
||||
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("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"));
|
||||
@@ -297,8 +297,8 @@ public class StudyCourseServiceImpl implements IStudyCourseService{
|
||||
public List<StudyCourse> followids(StudyCourseQuery studyCourseQuery) {
|
||||
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("c.enabled",true));
|
||||
// builder.addFilter(FieldFilters.eq("c.deleted",false));
|
||||
builder.addFilter(FieldFilters.in("sc.aid",studyCourseQuery.getAids()));
|
||||
builder.addFilter(FieldFilters.in("sc.courseId",studyCourseQuery.getIds()));
|
||||
builder.addOrder(OrderCondition.desc("sc.lastTime"));
|
||||
@@ -307,6 +307,25 @@ public class StudyCourseServiceImpl implements IStudyCourseService{
|
||||
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
|
||||
public StudyCourse has(String courseId, String 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