diff --git a/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseESApi.java b/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseESApi.java new file mode 100644 index 00000000..f03003a4 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseESApi.java @@ -0,0 +1,123 @@ +package com.xboe.school.study.api; + +import java.io.IOException; +import java.time.ZoneOffset; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import com.xboe.common.PageList; +import com.xboe.common.Pagination; +import com.xboe.core.JsonResponse; +import com.xboe.core.api.ApiBaseController; +import com.xboe.module.course.dto.CourseStudyDto; +import com.xboe.module.course.service.ICourseStudySearch; +import com.xboe.school.study.entity.StudyCourse; +import com.xboe.school.study.service.IStudyCourseService; + +import lombok.extern.slf4j.Slf4j; + +/** + * ES的课程检索 + * @author seastar + * + */ +@Slf4j +@RestController +@RequestMapping(value="/xboe/school/study/es") +public class StudyCourseESApi extends ApiBaseController{ + + @Autowired(required = false) + ICourseStudySearch search; + + @Autowired + IStudyCourseService service; + + @RequestMapping(value="/search",method = {RequestMethod.GET,RequestMethod.POST}) + public JsonResponse> search(Pagination page, CourseStudyDto dto){ + if(search==null) { + return error("无ES的实现",""); + } + try { + PageList rs=search.search(page.getPageIndex(),page.getPageSize(), dto); + return success(rs); + }catch(Exception e) { + log.error("查询报名学习ES失败",e); + return error("查询失败",e.getMessage()); + } + } + + @GetMapping("/index-create") + public JsonResponse createIndex(){ + if(search==null) { + return error("无ES的实现","",false); + } + try { + search.createIndex(); + return success(true); + }catch(Exception e) { + log.error("创建索引失败",e); + return error("创建索引失败",e.getMessage(),false); + } + } + + @GetMapping("/index-delete") + public JsonResponse deleteIndex(){ + //前端一定要二次询问 + if(search==null) { + return error("无ES的实现","",false); + } + try { + search.deleteIndex(); + return success(true); + }catch(Exception e) { + log.error("删除索引失败",e); + return error("删除索引失败",e.getMessage(),false); + } + } + + /** + * 初始化课程学习数据 + * @return + */ + @GetMapping("/init") + public JsonResponse init(){ + if(search==null) { + return error("无ES的实现","",false); + } + //按分页初始化 + int pageIndex=1; + int pageSize=1000; + int total=1001; + while(total>pageIndex*pageSize) { + PageList result = service.findPage(pageIndex,pageSize, null, null, null); + pageIndex++; + total=result.getCount(); + for(StudyCourse sc : result.getList()) { + CourseStudyDto dto=new CourseStudyDto(); + dto.setId(sc.getId()); + dto.setAccountId(sc.getAid()); + dto.setCourseId(sc.getCourseId()); + dto.setCourseImage(sc.getCourseImage()); + dto.setCourseName(sc.getCourseName()); + dto.setCourseType(sc.getCourseType()); + dto.setProgress(sc.getProgress()==null? 0:sc.getProgress().intValue()); + dto.setSource(2);//固定值,新系统 + dto.setStartTime(sc.getStartTime().toEpochSecond(ZoneOffset.of("+8"))); + dto.setStatus(sc.getStatus()); + try { + search.publishOrUpdate(dto, null); + } catch (IOException e) { + log.error("ES发布课程学习【"+sc.getAname()+","+sc.getCourseName()+"】失败",e); + + } + } + } + + + return success(true); + } +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/school/study/service/impl/StudyCourseServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/school/study/service/impl/StudyCourseServiceImpl.java index 60853a2e..73ee8c17 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/school/study/service/impl/StudyCourseServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/school/study/service/impl/StudyCourseServiceImpl.java @@ -221,10 +221,10 @@ public class StudyCourseServiceImpl implements IStudyCourseService{ query.addFilter(FieldFilters.eq("c.deleted",false)); query.addField("sc"); -// 先写死 -// if(oc!=null) { -// oc=OrderCondition.desc("sc.id"); -// } + + if(oc==null) { + oc=OrderCondition.desc("sc.addTime"); + } query.addOrder(oc); if(sc!=null) { if(StringUtils.isNotBlank(sc.getCourseName())) {