From f0d2e5509528138c5ba0fce071b281ded6847367 Mon Sep 17 00:00:00 2001 From: daihh Date: Sat, 7 Jan 2023 13:43:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=8A=A5=E5=90=8D=E5=AD=A6?= =?UTF-8?q?=E4=B9=A0=E7=9A=84ES=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../school/study/api/StudyCourseESApi.java | 123 ++++++++++++++++++ .../service/impl/StudyCourseServiceImpl.java | 8 +- 2 files changed, 127 insertions(+), 4 deletions(-) create mode 100644 servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudyCourseESApi.java 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())) {