mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-11 03:46:50 +08:00
Merge remote-tracking branch 'origin/copybug'
This commit is contained in:
@@ -829,8 +829,9 @@ public class CourseManageApi extends ApiBaseController{
|
||||
if(StringUtils.isBlank(id)){
|
||||
return badRequest("参数错误");
|
||||
}
|
||||
CurrentUser cuser=getCurrent();
|
||||
try {
|
||||
String mess = courseService.copyCourse(id,refId,refType);
|
||||
String mess = courseService.copyCourse(id,refId,refType,cuser.getAccountId(),cuser.getName());
|
||||
if(StringUtils.isBlank(mess)){
|
||||
return success(true);
|
||||
}else{
|
||||
|
||||
@@ -131,7 +131,7 @@ public interface ICourseService {
|
||||
* 复制课程
|
||||
* @param id
|
||||
*/
|
||||
String copyCourse(String id,String refId,String refType);
|
||||
String copyCourse(String id,String refId,String refType,String aid,String aname);
|
||||
|
||||
/**
|
||||
* 更新课程内容,是否记录修改日志
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.xboe.TempFilterConfig;
|
||||
import com.xboe.account.service.IAccountService;
|
||||
import com.xboe.common.OrderCondition;
|
||||
import com.xboe.common.PageList;
|
||||
import com.xboe.common.beans.KeyValue;
|
||||
import com.xboe.common.utils.IDGenerator;
|
||||
import com.xboe.common.utils.StringUtil;
|
||||
import com.xboe.core.event.IEventDataSender;
|
||||
@@ -1495,116 +1496,150 @@ public class CourseServiceImpl implements ICourseService {
|
||||
|
||||
@Transactional(propagation = Propagation.REQUIRED)
|
||||
@Override
|
||||
public String copyCourse(String id,String refId,String refType) {
|
||||
public String copyCourse(String id,String refId,String refType,String aid,String aname) {
|
||||
//复制课程,boe_course,boe_course_content,boe_course_homework,boe_course_section,boe_course_teacher,boe_course_exam
|
||||
// insert info select
|
||||
List<CourseSection> sectionList = courseSectionDao.findList("courseId", id);
|
||||
if(refId==null) {
|
||||
refId="";
|
||||
}
|
||||
if(refType==null) {
|
||||
refType="";
|
||||
}
|
||||
|
||||
boolean visible=true;
|
||||
if(StringUtils.isNotBlank(refId)) {
|
||||
visible=false;
|
||||
}
|
||||
|
||||
String newId = IDGenerator.generate();
|
||||
String courseName = this.courseName(id);
|
||||
String mess=null;
|
||||
if(courseName.length()<96) {
|
||||
LocalDateTime time = LocalDateTime.now();
|
||||
String sql = "insert into boe_course(id,ref_id,ref_type,visible,sys_create_aid,sys_create_by,sys_create_time,deleted,sys_update_by," +
|
||||
"sys_update_time,sys_version,comments,cover_img,dead_time,device,enable_remark,enabled," +
|
||||
"erasable,favorites,for_scene,for_users,is_top,keywords,name,open_object," +
|
||||
"overview,pass_formula,praises,publish_time,published,res_owner1,res_owner2," +
|
||||
"res_owner3,score,score_formula,shares,source,study_time,studys,summary," +
|
||||
"sys_type1,sys_type2,sys_type3,tags,top_time,trample_count,type,value,views," +
|
||||
"order_study,status)" +
|
||||
"select '" + newId + "','"+refId+"','"+refType+"',"+visible+",sys_create_aid,sys_create_by,'" + time + "',deleted,sys_update_by," +
|
||||
"'" + time + "',sys_version,comments,cover_img,dead_time,device,enable_remark,enabled," +
|
||||
"erasable,0,for_scene,for_users,0,keywords,'" + courseName + "(1)" + "',open_object," +
|
||||
"overview,pass_formula,0,publish_time,0,res_owner1,res_owner2," +
|
||||
"res_owner3,score,score_formula,0,source,study_time,0,summary," +
|
||||
"sys_type1,sys_type2,sys_type3,tags,top_time,trample_count,type,value,0," +
|
||||
"order_study,1 from boe_course where id=?1";
|
||||
courseDao.sqlUpdate(sql, id);
|
||||
|
||||
//课程章节复制,因为微课是没有章的,所以这里要判断
|
||||
LocalDateTime contentTime = LocalDateTime.now();
|
||||
if(sectionList.isEmpty()) {
|
||||
//课程内容复制
|
||||
|
||||
String sqlContent = "insert into boe_course_content(id,sys_create_aid,sys_create_by,sys_create_time," +
|
||||
"deleted,sys_update_by,sys_update_time,sys_version,content,content_name,content_refid," +
|
||||
"content_type,course_id,csection_id,duration,sort_index)" +
|
||||
"select UUID_SHORT(),sys_create_aid,sys_create_by,'" + contentTime + "'," +
|
||||
"deleted,sys_update_by,'" + contentTime + "',sys_version,content," +
|
||||
"content_name,content_refid,content_type,'" + newId + "','',duration,sort_index " +
|
||||
"from boe_course_content where course_id=?1";
|
||||
courseContentDao.sqlUpdate(sqlContent, id);
|
||||
}else {
|
||||
for(CourseSection csection : sectionList) {
|
||||
//生成新的章的id
|
||||
String newSectionId = IDGenerator.generate();
|
||||
String sqlSection = "" +
|
||||
"insert into boe_course_section(id,course_id,description,name,order_index,parent_id)" +
|
||||
"SELECT '"+newSectionId+"','" + newId + "',description,name,order_index,parent_id " +
|
||||
"from boe_course_section where id=?1";
|
||||
courseSectionDao.sqlUpdate(sqlSection, csection.getId());
|
||||
|
||||
//课程内容复制
|
||||
|
||||
String sqlContent = "insert into boe_course_content(id,sys_create_aid,sys_create_by,sys_create_time," +
|
||||
"deleted,sys_update_by,sys_update_time,sys_version,content,content_name,content_refid," +
|
||||
"content_type,course_id,csection_id,duration,sort_index)" +
|
||||
"select UUID_SHORT(),sys_create_aid,sys_create_by,'" + contentTime + "'," +
|
||||
"deleted,sys_update_by,'" + contentTime + "',sys_version,content," +
|
||||
"content_name,content_refid,content_type,'" + newId + "','"+newSectionId+"',duration,sort_index " +
|
||||
"from boe_course_content where course_id=?1 and csection_id=?2";
|
||||
courseContentDao.sqlUpdate(sqlContent, id,csection.getId());
|
||||
}
|
||||
// insert info select
|
||||
List<CourseSection> sectionList = courseSectionDao.findList("courseId", id);
|
||||
if(refId==null) {
|
||||
refId="";
|
||||
}
|
||||
if(refType==null) {
|
||||
refType="";
|
||||
}
|
||||
|
||||
//课程作业复制
|
||||
LocalDateTime homeWordTime = LocalDateTime.now();
|
||||
String sqlCourseHomeWork = "insert into boe_course_homework(id,sys_create_aid,sys_create_by," +
|
||||
"sys_create_time,deleted,sys_update_by,sys_update_time,sys_version,content,content_id,course_id,dead_time," +
|
||||
"file,name,submit_mode)" +
|
||||
"SELECT UUID_SHORT(),sys_create_aid,sys_create_by,'" + homeWordTime + "'," +
|
||||
"deleted,sys_update_by,'" + homeWordTime + "',sys_version,content,content_id,'" + newId + "',dead_time," +
|
||||
"file,name,submit_mode from boe_course_homework where course_id=?1";
|
||||
courseHomeWorkDao.sqlUpdate(sqlCourseHomeWork, id);
|
||||
boolean visible=true;
|
||||
if(StringUtils.isNotBlank(refId)) {
|
||||
visible=false;
|
||||
}
|
||||
|
||||
//课程任课教师复制
|
||||
LocalDateTime teacherTime = LocalDateTime.now();
|
||||
String sqlTeacher = "insert into boe_course_teacher(id,sys_create_aid,sys_create_by,sys_create_time," +
|
||||
"course_id,teacher_id,teacher_name)" +
|
||||
"SELECT UUID_SHORT(),sys_create_aid,sys_create_by," +
|
||||
"'" + teacherTime + "','" + newId + "',teacher_id," +
|
||||
"teacher_name from boe_course_teacher where course_id=?1";
|
||||
courseTeacherDao.sqlUpdate(sqlTeacher, id);
|
||||
// 课程考试信息复制
|
||||
LocalDateTime examTime = LocalDateTime.now();
|
||||
String sqlExam = "insert into boe_course_exam(id,sys_create_aid,sys_create_by," +
|
||||
"sys_create_time,deleted,sys_update_by,sys_update_time,sys_version,arrange,content_id," +
|
||||
"course_id,info,paper_content,paper_id,paper_type,pass_line,percent_score,qnum,random_mode," +
|
||||
"scoring_type,show_analysis,show_answer,test_duration," +
|
||||
"test_name,times)" +
|
||||
"select UUID_SHORT(),sys_create_aid,sys_create_by," +
|
||||
"'" + examTime + "',deleted,sys_update_by,'" + examTime + "'," +
|
||||
"sys_version,arrange,content_id," +
|
||||
"'" + newId + "',info,paper_content,paper_id,paper_type,pass_line,percent_score,qnum," +
|
||||
"random_mode,scoring_type,show_analysis,show_answer,test_duration," +
|
||||
"test_name,times from boe_course_exam where course_id=?1";
|
||||
courseExamDao.sqlUpdate(sqlExam, id);
|
||||
}
|
||||
else{
|
||||
mess="长度超出范围";
|
||||
}
|
||||
return mess;
|
||||
String newId = IDGenerator.generate();
|
||||
String courseName = this.courseName(id);
|
||||
LocalDateTime time = LocalDateTime.now();
|
||||
String mess=null;
|
||||
if(courseName.length()<96) {
|
||||
|
||||
String sql = "insert into boe_course(id,org_id,copy_id,ref_id,ref_type,visible,sys_create_aid,sys_create_by,sys_create_time,deleted,sys_update_by," +
|
||||
"sys_update_time,sys_version,comments,cover_img,dead_time,device,enable_remark,enabled," +
|
||||
"erasable,favorites,for_scene,for_users,is_top,keywords,name,open_object," +
|
||||
"overview,pass_formula,praises,publish_time,published,res_owner1,res_owner2," +
|
||||
"res_owner3,score,score_formula,shares,source,study_time,studys,summary," +
|
||||
"sys_type1,sys_type2,sys_type3,tags,top_time,trample_count,type,value,views," +
|
||||
"order_study,status)" +
|
||||
"select '" + newId + "',org_id,'"+id+"','"+refId+"','"+refType+"',"+visible+",'"+aid+"','"+aname+"','" + time + "',0,'"+aname+"'," +
|
||||
"'" + time + "',1,comments,cover_img,dead_time,device,enable_remark,enabled," +
|
||||
"erasable,0,for_scene,for_users,0,keywords,'" + courseName + "(1)" + "',open_object," +
|
||||
"overview,pass_formula,0,publish_time,0,res_owner1,res_owner2," +
|
||||
"res_owner3,score,score_formula,0,source,study_time,0,summary," +
|
||||
"sys_type1,sys_type2,sys_type3,tags,top_time,trample_count,type,value,0," +
|
||||
"order_study,1 from boe_course where id=?1";
|
||||
courseDao.sqlUpdate(sql, id);
|
||||
|
||||
//课程章节复制,因为微课是没有章的,所以这里要判断
|
||||
|
||||
if(sectionList.isEmpty()) {
|
||||
//查出所有的内容,然后再一个一个复制(因为要复制关联的内容)
|
||||
List<?> contentIds= courseContentDao.findListField("id",FieldFilters.eq("courseId", id),FieldFilters.eq("deleted", false));
|
||||
for(Object obj :contentIds) {
|
||||
String oldId=(String)obj;
|
||||
String newContentId=IDGenerator.generate();
|
||||
String sqlContent = "insert into boe_course_content(id,sys_create_aid,sys_create_by,sys_create_time," +
|
||||
"deleted,sys_update_by,sys_update_time,sys_version,content,content_name,content_refid," +
|
||||
"content_type,course_id,csection_id,duration,sort_index)" +
|
||||
"select '"+newContentId+"','"+aid+"','"+aname+"','" + time + "'," +
|
||||
"deleted,'"+aname+"','" + time + "',1,content," +
|
||||
"content_name,content_refid,content_type,'" + newId + "','',duration,sort_index " +
|
||||
"from boe_course_content where id=?1";
|
||||
courseContentDao.sqlUpdate(sqlContent, oldId);
|
||||
|
||||
//课程作业复制
|
||||
String sqlCourseHomeWork = "insert into boe_course_homework(id,sys_create_aid,sys_create_by," +
|
||||
"sys_create_time,deleted,sys_update_by,sys_update_time,sys_version,content,content_id,course_id,dead_time," +
|
||||
"file,name,submit_mode)" +
|
||||
"SELECT UUID_SHORT(),'"+aid+"','"+aname+"','" + time + "'," +
|
||||
"deleted,'"+aname+"','" + time + "',sys_version,content,'"+newContentId+"','" + newId + "',dead_time," +
|
||||
"file,name,submit_mode from boe_course_homework where content_id=?1";
|
||||
courseHomeWorkDao.sqlUpdate(sqlCourseHomeWork, oldId);
|
||||
|
||||
//课程考试信息复制
|
||||
String sqlExam = "insert into boe_course_exam(id,sys_create_aid,sys_create_by," +
|
||||
"sys_create_time,deleted,sys_update_by,sys_update_time,sys_version,arrange,content_id," +
|
||||
"course_id,info,paper_content,paper_id,paper_type,pass_line,percent_score,qnum,random_mode," +
|
||||
"scoring_type,show_analysis,show_answer,test_duration," +
|
||||
"test_name,times)" +
|
||||
"select UUID_SHORT(),'"+aid+"','"+aname+"'," +
|
||||
"'" + time + "',deleted,'"+aname+"','" + time + "'," +
|
||||
"1,arrange,'"+newContentId+"'," +
|
||||
"'" + newId + "',info,paper_content,paper_id,paper_type,pass_line,percent_score,qnum," +
|
||||
"random_mode,scoring_type,show_analysis,show_answer,test_duration," +
|
||||
"test_name,times from boe_course_exam where content_id=?1";
|
||||
courseExamDao.sqlUpdate(sqlExam, oldId);
|
||||
}
|
||||
}else {
|
||||
List<KeyValue> contentIdSectionIds= courseContentDao.findKeyValueList("id","csectionId", FieldFilters.eq("courseId", id),FieldFilters.eq("deleted", false));
|
||||
for(CourseSection csection : sectionList) {
|
||||
//生成新的章的id
|
||||
String newSectionId = IDGenerator.generate();
|
||||
String sqlSection = "" +
|
||||
"insert into boe_course_section(id,course_id,description,name,order_index,parent_id)" +
|
||||
"SELECT '"+newSectionId+"','" + newId + "',description,name,order_index,parent_id " +
|
||||
"from boe_course_section where id=?1";
|
||||
courseSectionDao.sqlUpdate(sqlSection, csection.getId());
|
||||
|
||||
//课程内容复制
|
||||
for(KeyValue kv : contentIdSectionIds) {
|
||||
if(!kv.getValue().equals(csection.getId())) {
|
||||
continue;
|
||||
}
|
||||
String newContentId=IDGenerator.generate();
|
||||
String sqlContent = "insert into boe_course_content(id,sys_create_aid,sys_create_by,sys_create_time," +
|
||||
"deleted,sys_update_by,sys_update_time,sys_version,content,content_name,content_refid," +
|
||||
"content_type,course_id,csection_id,duration,sort_index)" +
|
||||
"select '"+newContentId+"','"+aid+"','"+aname+"','" + time + "'," +
|
||||
"deleted,'"+aname+"','" + time + "',sys_version,content," +
|
||||
"content_name,content_refid,content_type,'" + newId + "','"+newSectionId+"',duration,sort_index " +
|
||||
"from boe_course_content where id=?1";
|
||||
courseContentDao.sqlUpdate(sqlContent,kv.getKey());
|
||||
|
||||
//课程作业复制
|
||||
String sqlCourseHomeWork = "insert into boe_course_homework(id,sys_create_aid,sys_create_by," +
|
||||
"sys_create_time,deleted,sys_update_by,sys_update_time,sys_version,content,content_id,course_id,dead_time," +
|
||||
"file,name,submit_mode)" +
|
||||
"SELECT UUID_SHORT(),'"+aid+"','"+aname+"','" + time + "'," +
|
||||
"deleted,'"+aname+"','" + time + "',sys_version,content,'"+newContentId+"','" + newId + "',dead_time," +
|
||||
"file,name,submit_mode from boe_course_homework where content_id=?1 and course_id=?2";
|
||||
courseHomeWorkDao.sqlUpdate(sqlCourseHomeWork,kv.getKey(),id);
|
||||
|
||||
//课程考试信息复制
|
||||
String sqlExam = "insert into boe_course_exam(id,sys_create_aid,sys_create_by," +
|
||||
"sys_create_time,deleted,sys_update_by,sys_update_time,sys_version,arrange,content_id," +
|
||||
"course_id,info,paper_content,paper_id,paper_type,pass_line,percent_score,qnum,random_mode," +
|
||||
"scoring_type,show_analysis,show_answer,test_duration," +
|
||||
"test_name,times)" +
|
||||
"select UUID_SHORT(),'"+aid+"','"+aname+"'," +
|
||||
"'" + time + "',deleted,'"+aname+"','" + time + "'," +
|
||||
"1,arrange,'"+newContentId+"'," +
|
||||
"'" + newId + "',info,paper_content,paper_id,paper_type,pass_line,percent_score,qnum," +
|
||||
"random_mode,scoring_type,show_analysis,show_answer,test_duration," +
|
||||
"test_name,times from boe_course_exam where content_id=?1 and course_id=?2";
|
||||
courseExamDao.sqlUpdate(sqlExam,kv.getKey(),id);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//课程任课教师复制
|
||||
String sqlTeacher = "insert into boe_course_teacher(id,sys_create_aid,sys_create_by,sys_create_time," +
|
||||
"course_id,teacher_id,teacher_name)" +
|
||||
"SELECT UUID_SHORT(),'"+aid+"','"+aname+"'," +
|
||||
"'" + time + "','" + newId + "',teacher_id," +
|
||||
"teacher_name from boe_course_teacher where course_id=?1";
|
||||
courseTeacherDao.sqlUpdate(sqlTeacher, id);
|
||||
|
||||
}
|
||||
else{
|
||||
mess="长度超出范围";
|
||||
}
|
||||
return mess;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user