提交 e738cd6c 编写于 作者: F fengyw

优化功能

上级 4b09fd31
package com.roncoo.education.course.job;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.roncoo.education.common.core.enums.PutawayEnum;
import com.roncoo.education.common.core.enums.StatusIdEnum;
import com.roncoo.education.common.core.tools.BeanUtil;
......@@ -31,7 +30,7 @@ import java.util.List;
@Component
public class CourseJob {
@Autowired(required = false)
@Autowired
private ElasticsearchRestTemplate elasticsearchRestTemplate;
@Autowired
private CourseDao courseDao;
......@@ -41,20 +40,18 @@ public class CourseJob {
*/
@XxlJob("courseJobHandler")
public void course() {
if (ObjectUtil.isNotNull(elasticsearchRestTemplate)) {
CourseExample example = new CourseExample();
example.createCriteria().andStatusIdEqualTo(StatusIdEnum.YES.getCode()).andIsPutawayEqualTo(PutawayEnum.UP.getCode());
List<Course> courseList = courseDao.listByExample(example);
if (CollUtil.isNotEmpty(courseList)) {
List<IndexQuery> queries = new ArrayList<>();
for (Course course : courseList) {
EsCourse esCourse = BeanUtil.copyProperties(course, EsCourse.class);
IndexQuery query = new IndexQueryBuilder().withObject(esCourse).build();
queries.add(query);
}
elasticsearchRestTemplate.indexOps(EsCourse.class).delete();
elasticsearchRestTemplate.bulkIndex(queries, IndexCoordinates.of(EsCourse.COURSE));
CourseExample example = new CourseExample();
example.createCriteria().andStatusIdEqualTo(StatusIdEnum.YES.getCode()).andIsPutawayEqualTo(PutawayEnum.UP.getCode());
List<Course> courseList = courseDao.listByExample(example);
if (CollUtil.isNotEmpty(courseList)) {
List<IndexQuery> queries = new ArrayList<>();
for (Course course : courseList) {
EsCourse esCourse = BeanUtil.copyProperties(course, EsCourse.class);
IndexQuery query = new IndexQueryBuilder().withObject(esCourse).build();
queries.add(query);
}
elasticsearchRestTemplate.indexOps(EsCourse.class).delete();
elasticsearchRestTemplate.bulkIndex(queries, IndexCoordinates.of(EsCourse.COURSE));
}
XxlJobHelper.handleSuccess("完成");
}
......
......@@ -47,6 +47,9 @@ import java.util.stream.Collectors;
@RequiredArgsConstructor
public class AdminCourseBiz extends BaseBiz {
@NotNull
private final ElasticsearchRestTemplate elasticsearchRestTemplate;
@NotNull
private final IFeignLecturer feignLecturer;
......@@ -55,8 +58,6 @@ public class AdminCourseBiz extends BaseBiz {
@NotNull
private final CategoryDao categoryDao;
private final ElasticsearchRestTemplate elasticsearchRestTemplate;
/**
* 课程信息分页
*
......@@ -104,10 +105,8 @@ public class AdminCourseBiz extends BaseBiz {
}
Course record = BeanUtil.copyProperties(req, Course.class);
if (dao.save(record) > 0) {
if (ObjectUtil.isNotNull(elasticsearchRestTemplate)) {
EsCourse esCourse = BeanUtil.copyProperties(record, EsCourse.class);
elasticsearchRestTemplate.index(new IndexQueryBuilder().withObject(esCourse).build(), IndexCoordinates.of(EsCourse.COURSE));
}
EsCourse esCourse = BeanUtil.copyProperties(record, EsCourse.class);
elasticsearchRestTemplate.index(new IndexQueryBuilder().withObject(esCourse).build(), IndexCoordinates.of(EsCourse.COURSE));
return Result.success("操作成功");
}
return Result.error("操作失败");
......@@ -140,10 +139,8 @@ public class AdminCourseBiz extends BaseBiz {
}
Course record = BeanUtil.copyProperties(req, Course.class);
if (dao.updateById(record) > 0) {
if (ObjectUtil.isNotNull(elasticsearchRestTemplate)) {
EsCourse esCourse = BeanUtil.copyProperties(record, EsCourse.class);
elasticsearchRestTemplate.index(new IndexQueryBuilder().withObject(esCourse).build(), IndexCoordinates.of(EsCourse.COURSE));
}
EsCourse esCourse = BeanUtil.copyProperties(record, EsCourse.class);
elasticsearchRestTemplate.index(new IndexQueryBuilder().withObject(esCourse).build(), IndexCoordinates.of(EsCourse.COURSE));
return Result.success("操作成功");
}
return Result.error("操作失败");
......@@ -172,15 +169,13 @@ public class AdminCourseBiz extends BaseBiz {
List<Course> courseList = dao.listByExample(example);
if (CollUtil.isNotEmpty(courseList)) {
List<IndexQuery> queries = new ArrayList<>();
if (ObjectUtil.isNotNull(elasticsearchRestTemplate)) {
for (Course course : courseList) {
EsCourse esCourse = BeanUtil.copyProperties(course, EsCourse.class);
queries.add(new IndexQueryBuilder().withObject(esCourse).build());
}
// 更新es
elasticsearchRestTemplate.indexOps(EsCourse.class).delete();
elasticsearchRestTemplate.bulkIndex(queries, IndexCoordinates.of(EsCourse.COURSE));
for (Course course : courseList) {
EsCourse esCourse = BeanUtil.copyProperties(course, EsCourse.class);
queries.add(new IndexQueryBuilder().withObject(esCourse).build());
}
// 更新es
elasticsearchRestTemplate.indexOps(EsCourse.class).delete();
elasticsearchRestTemplate.bulkIndex(queries, IndexCoordinates.of(EsCourse.COURSE));
}
return Result.success("操作成功");
}
......
......@@ -3,7 +3,6 @@ package com.roncoo.education.course.service.api.biz;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.roncoo.education.common.core.base.Page;
import com.roncoo.education.common.core.base.PageUtil;
import com.roncoo.education.common.core.base.Result;
import com.roncoo.education.common.core.enums.PutawayEnum;
import com.roncoo.education.common.core.enums.StatusIdEnum;
......@@ -59,9 +58,6 @@ import java.util.stream.Collectors;
@RequiredArgsConstructor
public class ApiCourseBiz extends BaseBiz {
@NotNull
private final IFeignLecturer feignLecturer;
@NotNull
private final CourseDao dao;
@NotNull
......@@ -71,31 +67,13 @@ public class ApiCourseBiz extends BaseBiz {
@NotNull
private final CategoryDao categoryDao;
@NotNull
private final IFeignLecturer feignLecturer;
@NotNull
private final ElasticsearchRestTemplate elasticsearchRestTemplate;
public Result<Page<ApiCoursePageResp>> searchForPage(ApiCoursePageReq req) {
if (ObjectUtil.isNotNull(elasticsearchRestTemplate)) {
// elasticsearch
return getPageResultForElasticsearch(req);
}
// mysql
CourseExample example = new CourseExample();
CourseExample.Criteria criteria = example.createCriteria();
if (ObjectUtil.isNotEmpty(req.getCategoryId())) {
criteria.andCategoryIdEqualTo(req.getCategoryId());
}
if (ObjectUtil.isNotEmpty(req.getIsFree())) {
criteria.andIsFreeEqualTo(req.getIsFree());
}
if (StringUtils.hasText(req.getCourseName())) {
criteria.andCourseNameLike(PageUtil.like(req.getCourseName()));
}
example.setOrderByClause("course_sort asc, id desc");
Page<Course> page = dao.page(req.getPageCurrent(), req.getPageSize(), example);
return Result.success(PageUtil.transform(page, ApiCoursePageResp.class));
}
private Result<Page<ApiCoursePageResp>> getPageResultForElasticsearch(ApiCoursePageReq req) {
NativeSearchQueryBuilder nsb = new NativeSearchQueryBuilder();
// 高亮字段
nsb.withHighlightFields(new HighlightBuilder.Field("courseName").preTags("<mark>").postTags("</mark>"));
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册