Compare commits

...

7 Commits

Author SHA1 Message Date
huangrun
49e42edf6f 课程AI设置优化 2025-12-08 19:38:26 +08:00
huangrun
f4d9847e8b 课程AI设置优化 2025-12-08 18:48:14 +08:00
huangrun
a0e1fea805 课程AI设置优化 2025-12-08 17:55:29 +08:00
huangrun
d0c5d2d561 课程详情 2025-12-08 15:45:45 +08:00
huangrun
951f2b0105 课程详情 2025-12-08 14:56:41 +08:00
huangrun
aa14fffd6c 课程详情 2025-12-08 14:55:07 +08:00
huangrun
1d7e478aac 课程详情 2025-12-08 14:47:41 +08:00
6 changed files with 54 additions and 32 deletions

View File

@@ -450,8 +450,8 @@ public class CourseAuditApi extends ApiBaseController{
log.info("---------------在线课同步到讲师管理完毕 -------");
//AI视频处理-调用接口
//需求调整-课程AI设置放在课程提交审核之前
// this.sendMessageToKJB(dto);
// log.info("---------------AI视频处理-调用接口完毕 -------");
this.sendMessageToKJB(dto);
log.info("---------------**审核**AI视频处理-调用接口完毕 -------");
return success(true);
} catch (Exception e) {
log.error("默认管理员提交直接发布处理失败",e);
@@ -462,7 +462,7 @@ public class CourseAuditApi extends ApiBaseController{
}
public void sendMessageToKJB(CourseFullDto dto) throws JsonProcessingException {
Course course = dto.getCourse();
log.info("---------------AI视频处理-调用接口 -------");
//log.info("---------------AI视频处理-调用接口 -------");
log.info("aiSet:"+course.getAiSet()+",aiAbstract:"+course.getAiAbstract()+",aiDraft:"+course.getAiDraft()+",aiTranslate:"+course.getAiTranslate()+",languageCode:"+course.getLanguageCode());
List<CourseTeacher> teachers = dto.getTeachers();
StringBuilder teacherNames = new StringBuilder();
@@ -490,25 +490,27 @@ public class CourseAuditApi extends ApiBaseController{
.aiSet(course.getAiSet())
.languageStatus(course.getLanguageStatus())
.build() ;
for (CourseContent cc : cclist) {
//筛选视频资源
if(cc.getContentType() == 10 ){
JSONObject json = JSONObject.parseObject(cc.getContent());
if(json == null || json.getString("url") == null) {
continue;
if(cclist != null && !cclist.isEmpty()){
for (CourseContent cc : cclist) {
//筛选视频资源
if(cc.getContentType() == 10 ){
JSONObject json = JSONObject.parseObject(cc.getContent());
if(json == null || json.getString("url") == null) {
continue;
}
String videoUrl = json.getString("url");
//String videoUrlPerfix = "https://u-pre.boe.com/upload"; //测试
//String videoUrlPerfix = "https://u.boe.com/upload"; //生产
String videoType = videoUrl.substring(videoUrl.lastIndexOf(".")+1);
videoList.add(BoeaiVideoResourceDto.builder()
.courseId(cc.getCourseId())
.videoId(cc.getId())
.title(cc.getContentName())
.originalUrl(videoUrlPerfix+videoUrl)
.duration(cc.getDuration())
.format(videoType)
.build());
}
String videoUrl = json.getString("url");
//String videoUrlPerfix = "https://u-pre.boe.com/upload"; //测试
//String videoUrlPerfix = "https://u.boe.com/upload"; //生产
String videoType = videoUrl.substring(videoUrl.lastIndexOf(".")+1);
videoList.add(BoeaiVideoResourceDto.builder()
.courseId(cc.getCourseId())
.videoId(cc.getId())
.title(cc.getContentName())
.originalUrl(videoUrlPerfix+videoUrl)
.duration(cc.getDuration())
.format(videoType)
.build());
}
}
boeaiCourseDto.setBoeaiVideoResourceReqList(videoList);

View File

@@ -332,7 +332,7 @@ public class CourseFullTextApi extends ApiBaseController{
cids.add(c.getId());
}
log.info("---- KJB 开始获取课程摘要信息 ---");
this.getCourseFromKJB(c);
this.getCourseFromKJB(c,new Course());
}
List<Course> clist=null;
if(!cids.isEmpty()) {
@@ -424,7 +424,7 @@ public class CourseFullTextApi extends ApiBaseController{
}
public void getCourseFromKJB(CourseFullText courseFull){
public void getCourseFromKJB(CourseFullText courseFull,Course course){
String courseId = courseFull.getId();
log.info("------------KJB---获取课程摘要信息---------courseId = " + courseId);
//String url = env.getProperty("kjb.url") + "/api/course/getCourseFromKJB?courseId=" + courseId;
@@ -448,6 +448,15 @@ public class CourseFullTextApi extends ApiBaseController{
log.info("KJB摘要信息"+boeaiCourseDto.get(0).getSummaryContent());
courseFull.setAiAbstract(boeaiCourseDto.get(0).getAiAbstract());
courseFull.setSummaryContent(boeaiCourseDto.get(0).getSummaryContent());
course.setAiSet(boeaiCourseDto.get(0).getAiSet());
course.setAiAbstract(boeaiCourseDto.get(0).getAiAbstract());
//course.setSummaryStatus(boeaiCourseDto.get(0).getSummaryStatus());
course.setSummaryContent(boeaiCourseDto.get(0).getSummaryContent());
course.setAiDraft(boeaiCourseDto.get(0).getAiDraft());
course.setAiTranslate(boeaiCourseDto.get(0).getAiTranslate());
course.setLanguageStatus(boeaiCourseDto.get(0).getLanguageStatus());
course.setLanguageCode(boeaiCourseDto.get(0).getLanguageCode() == null ? new ArrayList<>() :Arrays.asList(boeaiCourseDto.get(0).getLanguageCode().split(",")));
}
}

View File

@@ -105,6 +105,9 @@ public class CourseManageApi extends ApiBaseController{
private ThirdApi thirdApi;
@Resource
CourseAuditApi courseAuditApi;
@Resource
CourseFullTextApi courseFullTextApi;
// @PostMapping("/test")
// public JsonResponse<PageList<Course>> findTest(Pagination pager,CourseQueryDto dto){
@@ -186,6 +189,13 @@ public class CourseManageApi extends ApiBaseController{
isPermission = dicts.contains(course.getOrgId());
rs.put("dicts",dicts);
}
//void getCourseFromKJB(CourseFullText courseFull,Course course){
log.info("-------课程详情(KJB)查询开始-------");
CourseFullText courseFull = new CourseFullText();
courseFull.setId(course.getId());
courseFullTextApi.getCourseFromKJB(courseFull,course);
log.info("-------课程详情(KJB)查询结束-------");
log.error("-------是否仅内网查看 = " + isPermission);
rs.put("course",course);
rs.put("contents",cclist);
@@ -345,7 +355,7 @@ public class CourseManageApi extends ApiBaseController{
log.info("---------------在线课同步到讲师管理完毕 -------");
//AI视频处理-调用接口
log.info("---------------AI视频处理-调用接口开始 -------");
new CourseAuditApi().sendMessageToKJB(dto);
courseAuditApi.sendMessageToKJB(dto);
log.info("---------------AI视频处理-调用接口结束 -------");
return success(dto);

View File

@@ -462,7 +462,7 @@ public class CourseServiceImpl implements ICourseService {
rs.setCount(listByFilters2.size());
rs.setPageSize(pageSize);
rs.setList(paginate);
if (!paginate.isEmpty()) {
if (paginate != null && !paginate.isEmpty()) {
log.info("-----KJB------ getCourse");
for (Course course : paginate) {
this.getCourseFromKJB(course);

View File

@@ -18,9 +18,8 @@ import java.nio.charset.StandardCharsets;
@Slf4j
public class HttpUtils {
public static String sendMessage(String message,String url) {
log.info("----------------发送消息开始 -------");
//log.info("----------------发送消息url -------{}",url);
log.info("----------------发送消息参数 -------{}",message);
//log.info("----------------发送消息开始 -------");
log.info("----------------发送消息参数 -------{}url:{}",message,url);
// POST 请求
try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
// POST 请求
@@ -43,7 +42,7 @@ public class HttpUtils {
// System.out.println("响应体: " + EntityUtils.toString(response.getEntity()));
} catch (Exception e) {
log.error("KJB-发送消息错误",e);
log.error("KJB-接口调用失败",e);
throw new RuntimeException(e);
}
}

View File

@@ -217,9 +217,11 @@ public class StudyCourseApi extends ApiBaseController{
List<CourseSection> sectionlist=sectionService.getByCourseId(cid);
List<CourseTeacher> teachers=courseService.findTeachersByCourseId(cid);
for (CourseContent cc : cclist) {
log.info("根据视频信息查询AI字幕数据cc = " + cc.toString());
this.getVtt( cid , cc);
if(cclist!=null && !cclist.isEmpty()){
for (CourseContent cc : cclist) {
log.info("根据视频信息查询AI字幕数据cc = " + cc.toString());
this.getVtt( cid , cc);
}
}
//获取教师的介绍信息,因为一门课程 的教师不会太多,所以这里简单直接遍历查询,后续再优化