mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-10 03:16:48 +08:00
Compare commits
12 Commits
fceb6ac805
...
20251103-1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
748f7c5913 | ||
|
|
5954d54e44 | ||
|
|
00527271b6 | ||
|
|
308a16f4b4 | ||
|
|
302a673515 | ||
|
|
49b69db0bf | ||
|
|
8a0b05079a | ||
|
|
eaab48607d | ||
|
|
20e3b001d5 | ||
|
|
a37f90aeaa | ||
|
|
e767345c1e | ||
|
|
6fe6f7c6e5 |
@@ -358,8 +358,10 @@ public class CourseAuditApi extends ApiBaseController{
|
|||||||
//修改在线课开课状态=已开课
|
//修改在线课开课状态=已开课
|
||||||
String token = request.getHeader("Xboe-Access-Token");
|
String token = request.getHeader("Xboe-Access-Token");
|
||||||
CourseParam param = new CourseParam();
|
CourseParam param = new CourseParam();
|
||||||
param.setId(courseId);
|
param.setId(c.getId());
|
||||||
thirdApi.updateOnLineStatua(param,token);
|
param.setOrgId(c.getOrgId());
|
||||||
|
param.setOrgName(c.getOrgName());
|
||||||
|
thirdApi.updateOrSaveCourse(param,token);
|
||||||
}
|
}
|
||||||
return success(true);
|
return success(true);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ import javax.annotation.Resource;
|
|||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
|
import it.sauronsoftware.jave.Encoder;
|
||||||
|
import it.sauronsoftware.jave.MultimediaInfo;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.orm.ObjectOptimisticLockingFailureException;
|
import org.springframework.orm.ObjectOptimisticLockingFailureException;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
@@ -46,8 +48,6 @@ import com.xboe.module.scorm.SCORMParser;
|
|||||||
import com.xboe.standard.BaseConstant;
|
import com.xboe.standard.BaseConstant;
|
||||||
import com.xboe.standard.enums.BoedxCourseFileType;
|
import com.xboe.standard.enums.BoedxCourseFileType;
|
||||||
|
|
||||||
import it.sauronsoftware.jave.Encoder;
|
|
||||||
import it.sauronsoftware.jave.MultimediaInfo;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -278,8 +278,8 @@ public class CourseFileApi extends ApiBaseController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("读取视频时长错误");
|
log.error("读取视频时长错误", e);
|
||||||
// e.printStackTrace();
|
return error("视频解析失败,尝试重新上传或联系管理员", "视频解析失败,尝试重新上传或联系管理员");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package com.xboe.module.course.dao;
|
||||||
|
|
||||||
|
import com.xboe.core.orm.BaseDao;
|
||||||
|
import com.xboe.module.course.entity.CourseTeacherDeletedRecord;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public class CourseTeacherDeletedRecordDao extends BaseDao<CourseTeacherDeletedRecord> {
|
||||||
|
}
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
package com.xboe.module.course.entity;
|
||||||
|
|
||||||
|
import com.xboe.core.SysConstant;
|
||||||
|
import com.xboe.core.orm.IdBaseEntity;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import javax.persistence.Column;
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.Table;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 课程任课教师删除记录
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Entity
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@Table(name = SysConstant.TABLE_PRE + "course_teacher_deleted_record")
|
||||||
|
public class CourseTeacherDeletedRecord extends IdBaseEntity {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 课程id
|
||||||
|
*/
|
||||||
|
@Column(name = "course_id", nullable = false, length = 20)
|
||||||
|
private String courseId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 教师id,实际上就是aid
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@Column(name = "teacher_id", nullable = false, length = 20)
|
||||||
|
private String teacherId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 教师姓名
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@Column(name = "teacher_name", length = 30)
|
||||||
|
private String teacherName;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -15,9 +15,12 @@ import java.util.stream.Stream;
|
|||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.management.Query;
|
import javax.management.Query;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import com.xboe.api.ThirdApi;
|
import com.xboe.api.ThirdApi;
|
||||||
import com.xboe.core.orm.*;
|
import com.xboe.core.orm.*;
|
||||||
|
import com.xboe.module.course.dao.*;
|
||||||
|
import com.xboe.module.course.entity.*;
|
||||||
import com.xboe.school.study.dao.StudyCourseDao;
|
import com.xboe.school.study.dao.StudyCourseDao;
|
||||||
import com.xboe.school.study.entity.StudyCourse;
|
import com.xboe.school.study.entity.StudyCourse;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
@@ -41,24 +44,9 @@ import com.xboe.common.beans.KeyValue;
|
|||||||
import com.xboe.common.utils.IDGenerator;
|
import com.xboe.common.utils.IDGenerator;
|
||||||
import com.xboe.common.utils.StringUtil;
|
import com.xboe.common.utils.StringUtil;
|
||||||
import com.xboe.core.event.IEventDataSender;
|
import com.xboe.core.event.IEventDataSender;
|
||||||
import com.xboe.module.course.dao.CourseContentDao;
|
|
||||||
import com.xboe.module.course.dao.CourseCrowdDao;
|
|
||||||
import com.xboe.module.course.dao.CourseDao;
|
|
||||||
import com.xboe.module.course.dao.CourseExamDao;
|
|
||||||
import com.xboe.module.course.dao.CourseHRBPAuditDao;
|
|
||||||
import com.xboe.module.course.dao.CourseHomeWorkDao;
|
|
||||||
import com.xboe.module.course.dao.CourseSectionDao;
|
|
||||||
import com.xboe.module.course.dao.CourseTeacherDao;
|
|
||||||
import com.xboe.module.course.dao.CourseUpdateLogDao;
|
|
||||||
import com.xboe.module.course.dto.CourseFullDto;
|
import com.xboe.module.course.dto.CourseFullDto;
|
||||||
import com.xboe.module.course.dto.CourseQueryDto;
|
import com.xboe.module.course.dto.CourseQueryDto;
|
||||||
import com.xboe.module.course.dto.RankingDto;
|
import com.xboe.module.course.dto.RankingDto;
|
||||||
import com.xboe.module.course.entity.Course;
|
|
||||||
import com.xboe.module.course.entity.CourseCrowd;
|
|
||||||
import com.xboe.module.course.entity.CourseHRBPAudit;
|
|
||||||
import com.xboe.module.course.entity.CourseSection;
|
|
||||||
import com.xboe.module.course.entity.CourseTeacher;
|
|
||||||
import com.xboe.module.course.entity.CourseUpdateLog;
|
|
||||||
import com.xboe.module.course.service.ICourseFullTextSearch;
|
import com.xboe.module.course.service.ICourseFullTextSearch;
|
||||||
import com.xboe.module.course.service.ICourseService;
|
import com.xboe.module.course.service.ICourseService;
|
||||||
import com.xboe.module.interaction.service.ICourseGradeService;
|
import com.xboe.module.interaction.service.ICourseGradeService;
|
||||||
@@ -125,7 +113,8 @@ public class CourseServiceImpl implements ICourseService {
|
|||||||
@Resource
|
@Resource
|
||||||
RestHighLevelClient restHighLevelClient;
|
RestHighLevelClient restHighLevelClient;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private CourseTeacherDeletedRecordDao courseTeacherDeletedRecordDao;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 生成过滤条件
|
* 生成过滤条件
|
||||||
@@ -367,6 +356,7 @@ public class CourseServiceImpl implements ICourseService {
|
|||||||
// // 使用distinct()配合自定义的去重条件
|
// // 使用distinct()配合自定义的去重条件
|
||||||
// .filter(distinctByKey(c -> c.getId()))
|
// .filter(distinctByKey(c -> c.getId()))
|
||||||
// .collect(Collectors.toList());
|
// .collect(Collectors.toList());
|
||||||
|
|
||||||
/// / PageList<Course> rs=courseDao.findPage(pageIndex, pageSize, filters, oc);
|
/// / PageList<Course> rs=courseDao.findPage(pageIndex, pageSize, filters, oc);
|
||||||
/// / long endTime = System.nanoTime();
|
/// / long endTime = System.nanoTime();
|
||||||
// //log.info("查询出的条数:"+rs.getCount());
|
// //log.info("查询出的条数:"+rs.getCount());
|
||||||
@@ -1002,6 +992,8 @@ public class CourseServiceImpl implements ICourseService {
|
|||||||
c.setSysVersion(courseDao.getVersion(c.getId()));
|
c.setSysVersion(courseDao.getVersion(c.getId()));
|
||||||
full.getCourse().setSysVersion(c.getSysVersion());
|
full.getCourse().setSysVersion(c.getSysVersion());
|
||||||
|
|
||||||
|
// 兼容处理,记录下删除的关联数据
|
||||||
|
createCourseTeacherDeletedRecord(c.getId());
|
||||||
//先清空教师信息, 教师信息如果不一样了,也要加入到日志中
|
//先清空教师信息, 教师信息如果不一样了,也要加入到日志中
|
||||||
courseTeacherDao.deleteByField("courseId", c.getId());
|
courseTeacherDao.deleteByField("courseId", c.getId());
|
||||||
if (full.getTeachers() != null && !full.getTeachers().isEmpty()) {
|
if (full.getTeachers() != null && !full.getTeachers().isEmpty()) {
|
||||||
@@ -1056,6 +1048,8 @@ public class CourseServiceImpl implements ICourseService {
|
|||||||
c.setSysVersion(courseDao.getVersion(c.getId()));
|
c.setSysVersion(courseDao.getVersion(c.getId()));
|
||||||
full.getCourse().setSysVersion(c.getSysVersion());
|
full.getCourse().setSysVersion(c.getSysVersion());
|
||||||
|
|
||||||
|
// 兼容处理,记录下删除的关联数据
|
||||||
|
createCourseTeacherDeletedRecord(c.getId());
|
||||||
//先清空教师信息, 教师信息如果不一样了,也要加入到日志中
|
//先清空教师信息, 教师信息如果不一样了,也要加入到日志中
|
||||||
courseTeacherDao.deleteByField("courseId", c.getId());
|
courseTeacherDao.deleteByField("courseId", c.getId());
|
||||||
if (full.getTeachers() != null && !full.getTeachers().isEmpty()) {
|
if (full.getTeachers() != null && !full.getTeachers().isEmpty()) {
|
||||||
@@ -1091,6 +1085,8 @@ public class CourseServiceImpl implements ICourseService {
|
|||||||
c.setPublishTime(LocalDateTime.now());
|
c.setPublishTime(LocalDateTime.now());
|
||||||
courseDao.update(c);
|
courseDao.update(c);
|
||||||
|
|
||||||
|
// 兼容处理,记录下删除的关联数据
|
||||||
|
createCourseTeacherDeletedRecord(c.getId());
|
||||||
//先清空教师信息, 教师信息如果不一样了,也要加入到日志中
|
//先清空教师信息, 教师信息如果不一样了,也要加入到日志中
|
||||||
courseTeacherDao.deleteByField("courseId", c.getId());
|
courseTeacherDao.deleteByField("courseId", c.getId());
|
||||||
if (full.getTeachers() != null && !full.getTeachers().isEmpty()) {
|
if (full.getTeachers() != null && !full.getTeachers().isEmpty()) {
|
||||||
@@ -2013,4 +2009,25 @@ public class CourseServiceImpl implements ICourseService {
|
|||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除boe_course_teacher数据时把删除的数据储存到boe_course_teacher_deleted_record表
|
||||||
|
* boe_course_teacher表没有deleted字段,兼容处理
|
||||||
|
*
|
||||||
|
* @param courseId 课程ID
|
||||||
|
*/
|
||||||
|
private void createCourseTeacherDeletedRecord(String courseId) {
|
||||||
|
List<CourseTeacherDeletedRecord> courseTeacherList = courseTeacherDao.findList(FieldFilters.eq("courseId", courseId)).stream().map(ct -> {
|
||||||
|
CourseTeacherDeletedRecord courseTeacherDeletedRecord = new CourseTeacherDeletedRecord();
|
||||||
|
courseTeacherDeletedRecord.setCourseId(ct.getCourseId());
|
||||||
|
courseTeacherDeletedRecord.setTeacherId(ct.getTeacherId());
|
||||||
|
courseTeacherDeletedRecord.setTeacherName(ct.getTeacherName());
|
||||||
|
return courseTeacherDeletedRecord;
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
|
||||||
|
if (CollUtil.isNotEmpty(courseTeacherList)) {
|
||||||
|
courseTeacherDeletedRecordDao.saveList(courseTeacherList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -592,8 +592,8 @@ public class StudyCourseApi extends ApiBaseController{
|
|||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
studyService.finishVideoStudyItem(itemId, studyId,courseId,cnum,token);
|
studyService.finishVideoStudyItem(itemId, studyId,courseId,cnum,token);
|
||||||
List<StudyCourse> allUserList = thirdApi.getStudyCourseList(studyId ,courseId, token);
|
// List<StudyCourse> allUserList = thirdApi.getStudyCourseList(studyId ,courseId, token);
|
||||||
log.info("在线课学习记录"+allUserList);
|
// log.info("在线课学习记录"+allUserList);
|
||||||
return success(true);
|
return success(true);
|
||||||
}catch(Exception e) {
|
}catch(Exception e) {
|
||||||
log.error("记录内容学习完成错误",e);
|
log.error("记录内容学习完成错误",e);
|
||||||
|
|||||||
Reference in New Issue
Block a user