diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/service/ICourseService.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/service/ICourseService.java index 76e0d693..47fe360f 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/course/service/ICourseService.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/service/ICourseService.java @@ -341,8 +341,5 @@ public interface ICourseService { List mobiledelList(Integer num,CourseQueryDto courseQueryDto); - - - - + List findByIds(List courseIds); } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/service/impl/CourseServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/service/impl/CourseServiceImpl.java index 7725d0cc..a364cf1d 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/course/service/impl/CourseServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/service/impl/CourseServiceImpl.java @@ -14,6 +14,7 @@ import java.util.stream.Stream; import javax.annotation.Resource; import javax.management.Query; +import cn.hutool.core.collection.CollectionUtil; import com.xboe.api.ThirdApi; import com.xboe.core.orm.*; import com.xboe.school.study.dao.StudyCourseDao; @@ -1568,6 +1569,13 @@ public class CourseServiceImpl implements ICourseService { return list; } + @Override + public List findByIds(List courseIds) { + QueryBuilder query = QueryBuilder.from(Course.class); + query.addFilter(FieldFilters.in("id", courseIds)); + return courseDao.findList(query.builder()); + } + @Override public int countWaitAudit(String aid) { 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 index 6dd980b1..38373eb8 100644 --- 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 @@ -3,9 +3,16 @@ package com.xboe.school.study.api; import java.io.IOException; import java.time.ZoneOffset; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import cn.hutool.core.collection.CollectionUtil; +import com.xboe.module.course.entity.Course; +import com.xboe.module.course.service.ICourseService; +import org.apache.commons.compress.utils.Lists; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -42,6 +49,15 @@ public class StudyCourseESApi extends ApiBaseController{ @Autowired IStudyCourseService service; + @Autowired + ICourseService courseService; + + @Value("${xboe.upload.file.http_path}") + private String httpPath; + + @Value("${xboe.image.course.default}") + private String defaultCourseImage; + @Resource private PhpOnlineStudyRecordScheduledTasks phpOnlineStudyRecordScheduledTasks; @@ -54,13 +70,61 @@ public class StudyCourseESApi extends ApiBaseController{ try { dto.setAccountId(getCurrent().getAccountId()); PageList rs=search.search(page.getStartRow(),page.getPageSize(), dto); + + handleCourseImage(rs); + return success(rs); }catch(Exception e) { log.error("查询报名学习ES失败",e); return error("查询失败",e.getMessage()); } } - + + private void handleCourseImage(PageList rs) { + if (rs == null || CollectionUtil.isEmpty(rs.getList())) { + return; + } + + List emptyImageCourseIds = Lists.newArrayList(); + for(CourseStudyDto courseStudyDto : rs.getList()) { + if(StringUtils.isBlank(courseStudyDto.getCourseImage())) { + // 过滤课程类型 + if(courseStudyDto.getCourseType()==10 + || courseStudyDto.getCourseType()==20){ + emptyImageCourseIds.add(courseStudyDto.getCourseId()); + }else{ + log.warn("课程图片为空,课程id为:{},课程类型:{}",courseStudyDto.getCourseId(),courseStudyDto.getCourseType()); + } + } + } + + if(CollectionUtil.isEmpty(emptyImageCourseIds)){ + return; + } + + List courseList = courseService.findByIds(emptyImageCourseIds); + if(CollectionUtil.isNotEmpty(courseList)){ + // courseList转换成map + Map courseMap = courseList.stream().collect(Collectors.toMap(Course::getId, course -> course)); + + // 赋值ES图片 + for(CourseStudyDto courseStudyDto : rs.getList()) { + if(emptyImageCourseIds.contains(courseStudyDto.getCourseId())) { + Course currentCourse = courseMap.get(courseStudyDto.getCourseId()); + if(null!=currentCourse){ + if(StringUtils.isNotBlank(currentCourse.getCoverImg())){ + // 拼接域名 + courseStudyDto.setCourseImage(httpPath + currentCourse.getCoverImg()); + }else{ + // 赋值默认图片 + courseStudyDto.setCourseImage(defaultCourseImage); + } + } + } + } + } + } + @RequestMapping(value="/list-by-ids",method = {RequestMethod.POST}) public JsonResponse> search(@RequestBody List ids){ if(ids.isEmpty()) { diff --git a/servers/boe-server-all/src/main/resources/application-dev.yml b/servers/boe-server-all/src/main/resources/application-dev.yml index 2cc0a45f..ce14272e 100644 --- a/servers/boe-server-all/src/main/resources/application-dev.yml +++ b/servers/boe-server-all/src/main/resources/application-dev.yml @@ -76,6 +76,9 @@ xboe: encryptor: algorithm: PBEWithMD5AndDES iv-generator-classname: org.jasypt.iv.NoIvGenerator + image: + course: + default: http://192.168.0.253/pc/images/bgimg/course.png xxl: job: accessToken: 65ddc683-22f5-83b4-de3a-3c97a0a29af0 diff --git a/servers/boe-server-all/src/main/resources/application-pre.yml b/servers/boe-server-all/src/main/resources/application-pre.yml index b22b6291..f8fa90ce 100644 --- a/servers/boe-server-all/src/main/resources/application-pre.yml +++ b/servers/boe-server-all/src/main/resources/application-pre.yml @@ -108,7 +108,9 @@ xboe: from: boeu_learning@boe.com.cn user: security: - + image: + course: + default: http://10.251.132.75/pc/images/bgimg/course.png jasypt: encryptor: algorithm: PBEWithMD5AndDES diff --git a/servers/boe-server-all/src/main/resources/application-prod.yml b/servers/boe-server-all/src/main/resources/application-prod.yml index 29c738dc..8d6a8177 100644 --- a/servers/boe-server-all/src/main/resources/application-prod.yml +++ b/servers/boe-server-all/src/main/resources/application-prod.yml @@ -74,6 +74,9 @@ xboe: encryptor: algorithm: PBEWithMD5AndDES iv-generator-classname: org.jasypt.iv.NoIvGenerator + image: + course: + default: https://u.boe.com/pc/images/bgimg/course.png xxl: job: accessToken: 65ddc683-22f5-83b4-de3a-3c97a0a29af0 diff --git a/servers/boe-server-all/src/main/resources/application-test.yml b/servers/boe-server-all/src/main/resources/application-test.yml index 11432fe4..756b323d 100644 --- a/servers/boe-server-all/src/main/resources/application-test.yml +++ b/servers/boe-server-all/src/main/resources/application-test.yml @@ -108,7 +108,9 @@ xboe: from: boeu_learning@boe.com.cn user: security: - + image: + course: + default: http://10.251.186.27/pc/images/bgimg/course.png jasypt: encryptor: algorithm: PBEWithMD5AndDES