添加 开课导入授权课时导入课程实训(未完整,还差题目没复制)

beetlsql3-dev
yaodan 2 years ago
parent 9cd5e88b21
commit 321463932d

@ -25,4 +25,6 @@ public interface HandsOnDao extends BaseMapper<HandsOn>{
int updateGivenByIds(HandsOnQuery handsOnQuery);
List<HandsOn> getByIds(String ids);
List<HandsOn> getValuesByQuery(HandsOnQuery handsOnQuery);
List<HandsOn> getValuesByQueryNotPermission(HandsOnQuery handsOnQuery);
}

@ -1,16 +1,12 @@
package com.ibeetl.jlw.entity;
import javax.validation.constraints.NotNull;
import com.ibeetl.admin.core.annotation.Query;
import com.ibeetl.admin.core.annotation.Dict;
import com.ibeetl.admin.core.entity.BaseEntity;
import org.beetl.sql.annotation.entity.*;
import com.ibeetl.admin.core.util.ValidateConfig;
import org.beetl.sql.annotation.entity.AssignID;
import org.beetl.sql.annotation.entity.AutoID;
import com.ibeetl.admin.core.annotation.Dict;
import java.math.BigDecimal;
import javax.validation.constraints.NotNull;
import java.util.Date;
/*
@ -48,6 +44,13 @@ public class HandsOn extends BaseEntity{
private Date addTime;
private Long orgId;
private Long userId;
//附件
private String trainingData;
private Integer handsOnStatus;
public Date getAddTime() {
return addTime;
}
@ -80,11 +83,6 @@ public class HandsOn extends BaseEntity{
this.trainingData = trainingData;
}
private Long userId;
//附件
private String trainingData;
private Integer handsOnStatus;
public Integer getHandsOnStatus() {
return handsOnStatus;

@ -180,4 +180,8 @@ public class HandsOnService extends CoreBaseService<HandsOn>{
}
public List<HandsOn> getValuesByQueryNotPermission(HandsOnQuery handsOnQuery) {
return handsOnDao.getValuesByQueryNotPermission(handsOnQuery);
}
}

@ -2,6 +2,7 @@ package com.ibeetl.jlw.service;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.NumberUtil;
import cn.jlw.util.ToolUtils;
import com.alibaba.fastjson.JSON;
@ -14,6 +15,7 @@ import com.ibeetl.admin.core.web.JsonReturnCode;
import com.ibeetl.jlw.dao.TeacherOpenCourseHandsOnDao;
import com.ibeetl.jlw.entity.*;
import com.ibeetl.jlw.entity.vo.StudentHandsOnVO;
import com.ibeetl.jlw.enums.GlobalUpStatusEnum;
import com.ibeetl.jlw.enums.HandsOnTaskEnum;
import com.ibeetl.jlw.web.query.*;
import lombok.extern.slf4j.Slf4j;
@ -26,11 +28,14 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Nullable;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
import static com.ibeetl.admin.core.util.user.CacheUserUtil.getUser;
/**
* - Service
* ID使insert(*,true)
@ -40,49 +45,75 @@ import java.util.stream.Collectors;
@Transactional
@Validated
@Slf4j
public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpenCourseHandsOn> implements DeleteResourcesBy{
@Autowired private TeacherOpenCourseHandsOnDao teacherOpenCourseHandsOnDao;
@Autowired private HandsOnService handsOnService;
@Autowired private TeacherOpenCourseHandsOnSimulationTasksService teacherOpenCourseHandsOnSimulationTasksService;
@Autowired private HandsOnSimulationTasksService handsOnSimulationTasksService;
@Autowired private HandsOnAchievementService handsOnAchievementService;
@Autowired private StudentService studentService;
@Autowired private StudentHandsOnTaskVideoService videoService;
@Autowired private StudentHandsOnTaskPptService pptService;
@Autowired private StudentHandsOnTaskStepService stepService;
@Autowired private StudentHandsOnTaskTheoryService theoryService;
@Autowired private StudentHandsOnTaskReportService reportService;
@Autowired private TeacherOpenCourseScoreDashboardService teacherOpenCourseScoreDashboardService;
public PageQuery<TeacherOpenCourseHandsOn>queryByCondition(PageQuery query){
PageQuery ret = teacherOpenCourseHandsOnDao.queryByCondition(query);
public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpenCourseHandsOn> implements DeleteResourcesBy {
@Autowired
private TeacherOpenCourseHandsOnDao teacherOpenCourseHandsOnDao;
@Autowired
private HandsOnService handsOnService;
@Autowired
private TeacherOpenCourseHandsOnSimulationTasksService teacherOpenCourseHandsOnSimulationTasksService;
@Autowired
private HandsOnSimulationTasksService handsOnSimulationTasksService;
@Autowired
private HandsOnAchievementService handsOnAchievementService;
@Autowired
private StudentService studentService;
@Autowired
private StudentHandsOnTaskVideoService videoService;
@Autowired
private StudentHandsOnTaskPptService pptService;
@Autowired
private StudentHandsOnTaskStepService stepService;
@Autowired
private StudentHandsOnTaskTheoryService theoryService;
@Autowired
private StudentHandsOnTaskReportService reportService;
@Autowired
private TeacherOpenCourseScoreDashboardService teacherOpenCourseScoreDashboardService;
@Autowired
private HandsOnSimulationTasksAssessmentService handsOnSimulationTasksAssessmentService;
@Autowired
private TeacherOpenCourseHandsOnSimulationTasksAssessmentService teacherOpenCourseHandsOnSimulationTasksAssessmentService;
@Autowired
private HandsOnSimulationTasksFileService handsOnSimulationTasksFileService;
@Autowired
private TeacherOpenCourseHandsOnSimulationTasksFileService teacherOpenCourseHandsOnSimulationTasksFileService;
// 这里简单使用一个雪花算法来生成新的ID
private static final Snowflake snowflake = new Snowflake();
public PageQuery<TeacherOpenCourseHandsOn> queryByCondition(PageQuery query) {
PageQuery ret = teacherOpenCourseHandsOnDao.queryByCondition(query);
queryListAfter(ret.getList());
return ret;
}
public PageQuery<TeacherOpenCourseHandsOn>queryByConditionQuery(PageQuery query){
PageQuery ret = teacherOpenCourseHandsOnDao.queryByConditionQuery(query);
public PageQuery<TeacherOpenCourseHandsOn> queryByConditionQuery(PageQuery query) {
PageQuery ret = teacherOpenCourseHandsOnDao.queryByConditionQuery(query);
queryListAfter(ret.getList());
return ret;
}
public void deleteByList(List list){
public void deleteByList(List list) {
String ids = "";
ToolUtils.deleteNullList(list);
for(int i=0;null != list && i<list.size();i++){
ids += list.get(i).toString()+(i==list.size()-1?"":",");
for (int i = 0; null != list && i < list.size(); i++) {
ids += list.get(i).toString() + (i == list.size() - 1 ? "" : ",");
}
if(StringUtils.isNotBlank(ids)){
if (StringUtils.isNotBlank(ids)) {
teacherOpenCourseHandsOnDao.deleteTeacherOpenCourseHandsOnByIds(ids);
}
}
public void deleteTeacherOpenCourseHandsOn(String ids){
public void deleteTeacherOpenCourseHandsOn(String ids) {
try {
teacherOpenCourseHandsOnDao.deleteTeacherOpenCourseHandsOnByIds(ids);
} catch (Exception e) {
@ -90,7 +121,7 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
}
}
public String addAll(TeacherOpenCourseHandsOnQuery teacherOpenCourseHandsOnQuery){
public String addAll(TeacherOpenCourseHandsOnQuery teacherOpenCourseHandsOnQuery) {
String msg = "";
List<TeacherOpenCourseHandsOn> teacherOpenCourseHandsOnList = new ArrayList<>();
try {
@ -98,11 +129,12 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
} catch (Exception e) {
try {
teacherOpenCourseHandsOnList.add(JSONObject.parseObject(teacherOpenCourseHandsOnQuery.getTeacherOpenCourseHandsOnJsonStr(), TeacherOpenCourseHandsOn.class));
} catch (Exception e1) {}
} catch (Exception e1) {
}
}
ToolUtils.deleteNullList(teacherOpenCourseHandsOnList);
if(null != teacherOpenCourseHandsOnList && teacherOpenCourseHandsOnList.size()>0){
for(int i=0;i<teacherOpenCourseHandsOnList.size();i++){
if (null != teacherOpenCourseHandsOnList && teacherOpenCourseHandsOnList.size() > 0) {
for (int i = 0; i < teacherOpenCourseHandsOnList.size(); i++) {
TeacherOpenCourseHandsOn teacherOpenCourseHandsOn = teacherOpenCourseHandsOnList.get(i);
teacherOpenCourseHandsOn.setUserId(teacherOpenCourseHandsOnQuery.getUserId());
teacherOpenCourseHandsOn.setOrgId(teacherOpenCourseHandsOnQuery.getOrgId());
@ -112,7 +144,7 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
return msg;
}
public JsonResult add(TeacherOpenCourseHandsOnQuery teacherOpenCourseHandsOnQuery){
public JsonResult add(TeacherOpenCourseHandsOnQuery teacherOpenCourseHandsOnQuery) {
String msg = "";
TeacherOpenCourseHandsOn teacherOpenCourseHandsOn = teacherOpenCourseHandsOnQuery.pojo();
teacherOpenCourseHandsOnDao.insert(teacherOpenCourseHandsOn);
@ -124,61 +156,62 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
return jsonResult;
}
public String edit(TeacherOpenCourseHandsOnQuery teacherOpenCourseHandsOnQuery){
public String edit(TeacherOpenCourseHandsOnQuery teacherOpenCourseHandsOnQuery) {
String msg = "";
TeacherOpenCourseHandsOn teacherOpenCourseHandsOn = teacherOpenCourseHandsOnQuery.pojo();
teacherOpenCourseHandsOnDao.updateTemplateById(teacherOpenCourseHandsOn);
return msg;
}
public String updateGivenByIds(TeacherOpenCourseHandsOnQuery teacherOpenCourseHandsOnQuery){
public String updateGivenByIds(TeacherOpenCourseHandsOnQuery teacherOpenCourseHandsOnQuery) {
String msg = "";
if(StringUtils.isNotBlank(teacherOpenCourseHandsOnQuery.get_given())){
if (StringUtils.isNotBlank(teacherOpenCourseHandsOnQuery.get_given())) {
boolean flag = teacherOpenCourseHandsOnDao.updateGivenByIds(teacherOpenCourseHandsOnQuery) > 0;
if(!flag){
if (!flag) {
msg = "更新指定参数失败";
}
}else{
} else {
msg = "指定参数为空";
}
return msg;
}
public List<TeacherOpenCourseHandsOn> getValues (Object paras){
public List<TeacherOpenCourseHandsOn> getValues(Object paras) {
return sqlManager.select(SqlId.of("jlw.teacherOpenCourseHandsOn.getTeacherOpenCourseHandsOnValues"), TeacherOpenCourseHandsOn.class, paras);
}
public List<TeacherOpenCourseHandsOn> getValuesByQuery (TeacherOpenCourseHandsOnQuery teacherOpenCourseHandsOnQuery){
public List<TeacherOpenCourseHandsOn> getValuesByQuery(TeacherOpenCourseHandsOnQuery teacherOpenCourseHandsOnQuery) {
return teacherOpenCourseHandsOnDao.getValuesByQuery(teacherOpenCourseHandsOnQuery);
}
public List<TeacherOpenCourseHandsOn> getValuesByQueryNotWithPermission (TeacherOpenCourseHandsOnQuery teacherOpenCourseHandsOnQuery){
public List<TeacherOpenCourseHandsOn> getValuesByQueryNotWithPermission(TeacherOpenCourseHandsOnQuery teacherOpenCourseHandsOnQuery) {
return teacherOpenCourseHandsOnDao.getValuesByQueryNotWithPermission(teacherOpenCourseHandsOnQuery);
}
public TeacherOpenCourseHandsOn getInfo (Long handsOnId){
public TeacherOpenCourseHandsOn getInfo(Long handsOnId) {
TeacherOpenCourseHandsOnQuery teacherOpenCourseHandsOnQuery = new TeacherOpenCourseHandsOnQuery();
teacherOpenCourseHandsOnQuery.setHandsOnId(handsOnId);
List<TeacherOpenCourseHandsOn> list = teacherOpenCourseHandsOnDao.getValuesByQuery(teacherOpenCourseHandsOnQuery);
if(null != list && list.size()>0){
if (null != list && list.size() > 0) {
return list.get(0);
}else{
} else {
return null;
}
}
public TeacherOpenCourseHandsOn getInfo (TeacherOpenCourseHandsOnQuery teacherOpenCourseHandsOnQuery){
public TeacherOpenCourseHandsOn getInfo(TeacherOpenCourseHandsOnQuery teacherOpenCourseHandsOnQuery) {
List<TeacherOpenCourseHandsOn> list = teacherOpenCourseHandsOnDao.getValuesByQuery(teacherOpenCourseHandsOnQuery);
if(null != list && list.size()>0){
if (null != list && list.size() > 0) {
return list.get(0);
}else{
} else {
return null;
}
}
/**
*
* @param courseInfoId id
*
* @param courseInfoId id
* @param teacherOpenCourseId ID
* @return
*/
@ -191,7 +224,7 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
StringJoiner joiner = new StringJoiner(",");
for (TeacherOpenCourseHandsOn teacherOpenCourseHandsOn : teacherOpenCourseHandsOns) {
teacherOpenCourseHandsOn.setTeacherOpenCourseId(teacherOpenCourseId);
joiner.add(teacherOpenCourseHandsOn.getHandsOnId()+"");
joiner.add(teacherOpenCourseHandsOn.getHandsOnId() + "");
}
insertBatch(teacherOpenCourseHandsOns);
if (StringUtils.isNoneEmpty(joiner.toString())) {
@ -203,21 +236,21 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
}
}
public PageQuery<TeacherOpenCourseHandsOnList> getHandsOnList(GetHandsOnListParam param) {
PageQuery<TeacherOpenCourseHandsOnList> teacherOpenCourseHandsOns = teacherOpenCourseHandsOnDao.getHandsOnList(param.getPageQuery());
handsOnListHandler(teacherOpenCourseHandsOns.getList(),param);
handsOnListHandler(teacherOpenCourseHandsOns.getList(), param);
return teacherOpenCourseHandsOns;
}
public List<TeacherOpenCourseHandsOnList> getHandsOnListNotPage(GetHandsOnListParam param) {
List<TeacherOpenCourseHandsOnList> teacherOpenCourseHandsOns = teacherOpenCourseHandsOnDao.getHandsOnListNotPage(param);
handsOnListHandler(teacherOpenCourseHandsOns,param);
handsOnListHandler(teacherOpenCourseHandsOns, param);
return teacherOpenCourseHandsOns;
}
private void handsOnListHandler(List<TeacherOpenCourseHandsOnList> teacherOpenCourseHandsOnLists,GetHandsOnListParam param){
private void handsOnListHandler(List<TeacherOpenCourseHandsOnList> teacherOpenCourseHandsOnLists, GetHandsOnListParam param) {
List<Long> handIds = teacherOpenCourseHandsOnLists.stream().map(TeacherOpenCourseHandsOnList::getHandsOnId).collect(Collectors.toList());
List<HandsOnAchievement> achievementList = new ArrayList<>();
if (CollectionUtils.isNotEmpty(handIds)) {
@ -239,7 +272,6 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
}
public List<Map<String, Object>> getExcelValues(TeacherOpenCourseHandsOnQuery teacherOpenCourseHandsOnQuery) {
return teacherOpenCourseHandsOnDao.getExcelValues(teacherOpenCourseHandsOnQuery);
}
@ -300,7 +332,6 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
return teacherOpenCourseHandsOnList;
}
@Override
@ -315,6 +346,7 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
/**
*
*
* @param teacherOpenCourseId
* @param coreUser
* @return
@ -362,10 +394,10 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
if (CollectionUtils.isNotEmpty(videoList)) {
StudentHandsOnTaskVideo studentHandsOnTaskVideo = videoList.get(0);
BigDecimal videoScore = studentHandsOnTaskVideo.getVideoScore();
bigDecimal = bigDecimal.add(videoScore == null ? BigDecimal.ZERO:videoScore);
bigDecimal = bigDecimal.add(videoScore == null ? BigDecimal.ZERO : videoScore);
decimal = decimal.add(BigDecimal.ONE);
}
}else if(HandsOnTaskEnum.TASK_PPT.status.equals(task.getTaskType())) {
} else if (HandsOnTaskEnum.TASK_PPT.status.equals(task.getTaskType())) {
StudentHandsOnTaskPptQuery pptQuery = new StudentHandsOnTaskPptQuery();
pptQuery.setHandsOnTaskId(taskId);
pptQuery.setStudentId(studentId);
@ -373,20 +405,20 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
if (CollectionUtils.isNotEmpty(pptList)) {
StudentHandsOnTaskPpt studentHandsOnTaskPpt = pptList.get(0);
BigDecimal videoScore = studentHandsOnTaskPpt.getPptScore();
bigDecimal = bigDecimal.add(videoScore == null ? BigDecimal.ZERO: videoScore);
bigDecimal = bigDecimal.add(videoScore == null ? BigDecimal.ZERO : videoScore);
decimal = decimal.add(BigDecimal.ONE);
}
}else if(HandsOnTaskEnum.TASK_THEORY.status.equals(task.getTaskType())) {
} else if (HandsOnTaskEnum.TASK_THEORY.status.equals(task.getTaskType())) {
StudentHandsOnTaskTheoryQuery theoryQuery = new StudentHandsOnTaskTheoryQuery();
theoryQuery.setHandsOnTaskId(taskId);
theoryQuery.setStudentId(studentId);
List<StudentHandsOnTaskTheory> taskTheoryList = theoryService.getValuesByQueryNotWithPermission(theoryQuery);
if (CollectionUtils.isNotEmpty(taskTheoryList)) {
BigDecimal videoScore = taskTheoryList.stream().map(StudentHandsOnTaskTheory::getTheoryScore).reduce(BigDecimal.ZERO, BigDecimal::add);
bigDecimal = bigDecimal.add(videoScore == null ? BigDecimal.ZERO: videoScore);
bigDecimal = bigDecimal.add(videoScore == null ? BigDecimal.ZERO : videoScore);
decimal = decimal.add(BigDecimal.ONE);
}
}else if(HandsOnTaskEnum.TASK_PRACTICAL_TRAINING.status.equals(task.getTaskType())) {
} else if (HandsOnTaskEnum.TASK_PRACTICAL_TRAINING.status.equals(task.getTaskType())) {
StudentHandsOnTaskStepQuery stepQuery = new StudentHandsOnTaskStepQuery();
stepQuery.setHandsOnTaskId(taskId);
stepQuery.setStudentId(studentId);
@ -394,25 +426,25 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
if (CollectionUtils.isNotEmpty(stepList)) {
StudentHandsOnTaskStep taskTheory = stepList.get(0);
BigDecimal videoScore = taskTheory.getTheoryScore();
bigDecimal = bigDecimal.add(videoScore == null ? BigDecimal.ZERO: videoScore);
bigDecimal = bigDecimal.add(videoScore == null ? BigDecimal.ZERO : videoScore);
decimal = decimal.add(BigDecimal.ONE);
}
}else if(HandsOnTaskEnum.TASK_REPORT_WRITING.status.equals(task.getTaskType())) {
} else if (HandsOnTaskEnum.TASK_REPORT_WRITING.status.equals(task.getTaskType())) {
StudentHandsOnTaskReportQuery reportQuery = new StudentHandsOnTaskReportQuery();
reportQuery.setHandsOnTaskId(taskId);
reportQuery.setStudentId(studentId);
List<StudentHandsOnTaskReport> reportList =reportService.getValuesByQueryNotWithPermission(reportQuery);
List<StudentHandsOnTaskReport> reportList = reportService.getValuesByQueryNotWithPermission(reportQuery);
if (CollectionUtils.isNotEmpty(reportList)) {
StudentHandsOnTaskReport taskTheory = reportList.get(0);
BigDecimal videoScore = taskTheory.getReportScore();
bigDecimal = bigDecimal.add(videoScore == null ? BigDecimal.ZERO: videoScore);
bigDecimal = bigDecimal.add(videoScore == null ? BigDecimal.ZERO : videoScore);
decimal = decimal.add(BigDecimal.ONE);
}
}
}
int schedule = NumberUtil.div(decimal, BigDecimal.valueOf(tasksList.size()),2).multiply(BigDecimal.valueOf(100)).intValue();
int schedule = NumberUtil.div(decimal, BigDecimal.valueOf(tasksList.size()), 2).multiply(BigDecimal.valueOf(100)).intValue();
studentHandsOnVO.setSchedule(schedule);
}else {
} else {
studentHandsOnVO.setSchedule(0);
}
studentHandsOnVO.setStudentScore(bigDecimal);
@ -428,17 +460,156 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
dashboard.setRealOperationScore(b);
teacherOpenCourseScoreDashboardService.insert(dashboard);
dashboard.setCreateTime(new Date());
}else {
} else {
TeacherOpenCourseScoreDashboard dashboard1 = serviceValues.get(0);
dashboard1.setRealOperationScore(b);
teacherOpenCourseScoreDashboardService.update(dashboard1);
}
}catch (Exception e) {
} catch (Exception e) {
}
return JsonResult.success(studentHandsOnVOS);
}
/**
*
*
* @param teacherOpenCourseId id
* @param courseInfoId id
* @param courseInfoIdPair id
* @author zhouzhao
* @date 2023/04/28 03:59:44
*/
public void copySystemHandsToOpenCourse(@NotNull(message = "开课ID不能为空") Long teacherOpenCourseId,
@NotNull(message = "课程ID不能为空") Long courseInfoId,
@Nullable Map<Long, Long> courseInfoIdPair) {
Date now = new Date();
CoreUser currentUser = getUser();
if (currentUser==null){
throw new PlatformException("请先登录");
}
HandsOnQuery handsOnQuery = new HandsOnQuery();
//归属课程
handsOnQuery.setCourseInfoId(courseInfoId);
// 已上架的
handsOnQuery.setHandsOnStatus(GlobalUpStatusEnum.UP.getCode());
List<HandsOn> handsOnList = handsOnService.getValuesByQuery(handsOnQuery);
if (CollectionUtils.isEmpty(handsOnList)) {
return;
}
//handsOnList 转换为 TeacherOpenCourseHandsOn
// 拷贝部分字段映射
// 拷贝
List<TeacherOpenCourseHandsOn> teacherOpenCourseHandsOnList = new ArrayList<>(BeanUtil.copyToList(handsOnList, TeacherOpenCourseHandsOn.class));
Map<Long, Long> handsOnIdOldToNewMap = new HashMap<>();
for (TeacherOpenCourseHandsOn teacherOpenCourseHandsOn : teacherOpenCourseHandsOnList) {
Long handsOnIdTemp = teacherOpenCourseHandsOn.getHandsOnId();
String courseChildNodeTemp = teacherOpenCourseHandsOn.getCourseChildNode();
Long newHandsOnId = snowflake.nextId();
handsOnIdOldToNewMap.put(handsOnIdTemp, newHandsOnId);
teacherOpenCourseHandsOn.setCourseChildNode(courseInfoIdPair.get(Long.parseLong(courseChildNodeTemp)).toString());
teacherOpenCourseHandsOn.setHandsOnId(newHandsOnId);
teacherOpenCourseHandsOn.setTeacherOpenCourseId(teacherOpenCourseId);
//别问我这里为什么放这个,他们自己的代码就是这样的
teacherOpenCourseHandsOn.setCourseInfoId(teacherOpenCourseId);
teacherOpenCourseHandsOn.setOrgId(currentUser.getOrgId());
teacherOpenCourseHandsOn.setUserId(currentUser.getId());
teacherOpenCourseHandsOn.setAddTime(now);
}
// 批量插入
insertBatch(teacherOpenCourseHandsOnList);
String handsOnIds = handsOnIdOldToNewMap.keySet().stream().map(String::valueOf).collect(Collectors.joining(","));
HandsOnSimulationTasksQuery handsOnSimulationTasksQuery = new HandsOnSimulationTasksQuery();
handsOnSimulationTasksQuery.setHandsOnIdPlural(handsOnIds);
List<HandsOnSimulationTasks> handsOnSimulationTasksList = handsOnSimulationTasksService.getValuesByQuery(handsOnSimulationTasksQuery);
// 拷贝部分字段映射
// 拷贝
List<TeacherOpenCourseHandsOnSimulationTasks> teacherOpenCourseHandsOnSimulationTasksList = new ArrayList<>(BeanUtil.copyToList(handsOnSimulationTasksList, TeacherOpenCourseHandsOnSimulationTasks.class));
Map<Long, Long> simulationTaskOldToNewMap = new HashMap<>();
teacherOpenCourseHandsOnSimulationTasksList.forEach(teacherOpenCourseHandsOnSimulationTasks -> {
Long newHandsOnId = handsOnIdOldToNewMap.get(teacherOpenCourseHandsOnSimulationTasks.getHandsOnId());
teacherOpenCourseHandsOnSimulationTasks.setHandsOnId(newHandsOnId);
teacherOpenCourseHandsOnSimulationTasks.setTeacherOpenCourseId(teacherOpenCourseId);
teacherOpenCourseHandsOnSimulationTasks.setOrgId(currentUser.getOrgId());
teacherOpenCourseHandsOnSimulationTasks.setUserId(currentUser.getId());
teacherOpenCourseHandsOnSimulationTasks.setAddTime(now);
Long oldTaskId = teacherOpenCourseHandsOnSimulationTasks.getTaskId();
Long newTaskId = snowflake.nextId();
simulationTaskOldToNewMap.put(oldTaskId, newTaskId);
teacherOpenCourseHandsOnSimulationTasks.setTaskId(newTaskId);
});
// 批量插入
teacherOpenCourseHandsOnSimulationTasksService.insertBatch(teacherOpenCourseHandsOnSimulationTasksList);
HandsOnSimulationTasksAssessmentQuery handsOnSimulationTasksAssessmentQuery = new HandsOnSimulationTasksAssessmentQuery();
handsOnSimulationTasksAssessmentQuery.setHandsOnIdPlural(handsOnIds);
List<HandsOnSimulationTasksAssessment> handsOnSimulationTasksAssessmentList = handsOnSimulationTasksAssessmentService.getValuesByQuery(handsOnSimulationTasksAssessmentQuery);
// 拷贝部分字段映射
// 拷贝
List<TeacherOpenCourseHandsOnSimulationTasksAssessment> teacherOpenCourseHandsOnSimulationTasksAssessmentList = new ArrayList<>(BeanUtil.copyToList(handsOnSimulationTasksAssessmentList, TeacherOpenCourseHandsOnSimulationTasksAssessment.class));
teacherOpenCourseHandsOnSimulationTasksAssessmentList.forEach(teacherOpenCourseHandsOnSimulationTasksAssessment -> {
teacherOpenCourseHandsOnSimulationTasksAssessment.setHandsOnTaskId(simulationTaskOldToNewMap.get(teacherOpenCourseHandsOnSimulationTasksAssessment.getHandsOnTaskId()));
teacherOpenCourseHandsOnSimulationTasksAssessment.setHandsOnId(handsOnIdOldToNewMap.get(teacherOpenCourseHandsOnSimulationTasksAssessment.getHandsOnId()));
teacherOpenCourseHandsOnSimulationTasksAssessment.setOrgId(currentUser.getOrgId());
teacherOpenCourseHandsOnSimulationTasksAssessment.setUserId(currentUser.getId());
teacherOpenCourseHandsOnSimulationTasksAssessment.setHandsOnSimulationTasksAssessmentId(snowflake.nextId());
teacherOpenCourseHandsOnSimulationTasksAssessment.setAddTime(now);
});
// 批量插入
teacherOpenCourseHandsOnSimulationTasksAssessmentService.insertBatch(teacherOpenCourseHandsOnSimulationTasksAssessmentList);
HandsOnSimulationTasksFileQuery handsOnSimulationTasksFileQuery = new HandsOnSimulationTasksFileQuery();
handsOnSimulationTasksFileQuery.setHandsOnIdPlural(handsOnIds);
List<HandsOnSimulationTasksFile> handsOnSimulationTasksFileList = handsOnSimulationTasksFileService.getValuesByQuery(handsOnSimulationTasksFileQuery);
// 拷贝部分字段映射
// 拷贝
List<TeacherOpenCourseHandsOnSimulationTasksFile> teacherOpenCourseHandsOnSimulationTasksFileList = new ArrayList<>(BeanUtil.copyToList(handsOnSimulationTasksFileList, TeacherOpenCourseHandsOnSimulationTasksFile.class));
teacherOpenCourseHandsOnSimulationTasksFileList.forEach(item -> {
item.setTaskId(simulationTaskOldToNewMap.get(item.getTaskId()));
item.setHandsOnId(handsOnIdOldToNewMap.get(item.getHandsOnId()));
item.setTeacherOpenCourseId(teacherOpenCourseId);
item.setOrgId(currentUser.getOrgId());
item.setUserId(currentUser.getId());
item.setTaskFileId(snowflake.nextId());
item.setAddTime(now);
});
// 批量插入
teacherOpenCourseHandsOnSimulationTasksFileService.insertBatch(teacherOpenCourseHandsOnSimulationTasksFileList);
}
}

@ -109,6 +109,10 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
@Lazy
private TeacherOpenCourseMergeCourseInfoService teacherOpenCourseMergeCourseInfoService;
@Autowired
private TeacherOpenCourseHandsOnService teacherOpenCourseHandsOnService;
// 这里简单使用一个雪花算法来生成新的开课课程ID
private static final Snowflake snowflake = new Snowflake();
@ -183,8 +187,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
// int a = 1/0;
// 只匹配章节
Set<Long> idSet = courseInfoList.stream().filter(item -> Integer.valueOf(2).equals(item.getCourseInfoType()))
.map(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoId).collect(toSet());
Set<Long> idSet = courseInfoList.stream().filter(item -> Integer.valueOf(2).equals(item.getCourseInfoType())).map(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoId).collect(toSet());
if (ObjectUtil.isNotEmpty(idSet)) {
teacherOpenCourseQuestionSettingService.deleteSettingAndSnapByIds(join(idSet.toArray(), ","));
@ -266,9 +269,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
* @param mergeCourseInfoQuery
* @return
*/
public JsonResult addCourseAndQuestionWithQuestionSnap(@Validated(ValidateConfig.ADD.class) @NotNull(message = "开课题目信息不能为空!")
TeacherOpenCourseMergeCourseInfoQuery mergeCourseInfoQuery,
@Nullable List<QuestionSettingDTO> questionSettingOptions, Map<Long, Long> courseInfoIdPair) {
public JsonResult addCourseAndQuestionWithQuestionSnap(@Validated(ValidateConfig.ADD.class) @NotNull(message = "开课题目信息不能为空!") TeacherOpenCourseMergeCourseInfoQuery mergeCourseInfoQuery, @Nullable List<QuestionSettingDTO> questionSettingOptions, Map<Long, Long> courseInfoIdPair) {
getParentCourseIdIfTypeEquals2(mergeCourseInfoQuery);
// 添加开课课程表
@ -324,12 +325,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
LambdaQuery.Property<TeacherOpenCourseMergeCourseInfo, Object> pIdpt = TeacherOpenCourseMergeCourseInfo::getCourseInfoParentId;
// 课程节点的信息
TeacherOpenCourseMergeCourseInfo courseTargetInfo = lambdaQuery
.andEq(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseId, teacherOpenCourseId)
.andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoStatus, 1)
.andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoType, 1)
.and(lambdaQuery.condition().andEq(pIdpt, "").orIsNull(pIdpt))
.single();
TeacherOpenCourseMergeCourseInfo courseTargetInfo = lambdaQuery.andEq(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseId, teacherOpenCourseId).andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoStatus, 1).andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoType, 1).and(lambdaQuery.condition().andEq(pIdpt, "").orIsNull(pIdpt)).single();
return courseTargetInfo;
}
@ -432,23 +428,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
//获取最大列数
int colNum = firstRow.getPhysicalNumberOfCells();
String[] columns = {
"开课",
"名称",
"课程缩略图",
"课程标签",
"课程学习人数基数",
"课程简介",
"状态",
"类型",
"父节点",
"视频",
"课件",
"附件IDs",
"客观题IDs",
"竞赛题IDs",
"实训题IDs",
};
String[] columns = {"开课", "名称", "课程缩略图", "课程标签", "课程学习人数基数", "课程简介", "状态", "类型", "父节点", "视频", "课件", "附件IDs", "客观题IDs", "竞赛题IDs", "实训题IDs",};
Map<String, Integer> map = new HashMap<>();//获取需要的表头的列
@ -598,8 +578,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
* @param courseInfoIdPair IDIDID
* @return IDIDID
*/
public void batchUpdateSomeMergeId(List<TeacherOpenCourseMergeCourseInfoTree> copyToList,
final Long parentId, ConcurrentHashMap<Long, Long> courseInfoIdPair) {
public void batchUpdateSomeMergeId(List<TeacherOpenCourseMergeCourseInfoTree> copyToList, final Long parentId, ConcurrentHashMap<Long, Long> courseInfoIdPair) {
// 转换成线程安全的集合,来并行操作。
List<TeacherOpenCourseMergeCourseInfoTree> safeList = new CopyOnWriteArrayList<>(copyToList);
@ -630,8 +609,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
Map<Long, Long> courseInfoIdPair = new HashMap<>(initCourseInfoIdPair);
// 查找列表中所有的ID
Set<Long> mergeCourseInfoIdSet = copyToList.stream()
.map(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoId).collect(toSet());
Set<Long> mergeCourseInfoIdSet = copyToList.stream().map(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoId).collect(toSet());
for (Long oldId : mergeCourseInfoIdSet) {
// 只取第一次ID对后面加进来的丢弃
@ -654,8 +632,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
* @param result
* @return
*/
public void treeListConvertArrayList(List<TeacherOpenCourseMergeCourseInfoTree> copyToList,
CopyOnWriteArrayList<TeacherOpenCourseMergeCourseInfo> result) {
public void treeListConvertArrayList(List<TeacherOpenCourseMergeCourseInfoTree> copyToList, CopyOnWriteArrayList<TeacherOpenCourseMergeCourseInfo> result) {
// 启用并行操作,使用线程安全的集合用来保存
copyToList.stream().parallel().forEach(item -> {
result.add(BeanUtil.copyProperties(item, TeacherOpenCourseMergeCourseInfo.class));
@ -727,8 +704,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
* @param courseInfoList
* @param somecourseInfoIdPair IDID
*/
public void updateSpecifyMergeCourseInfoIdTargetList(List<TeacherOpenCourseMergeCourseInfo> courseInfoList,
@NotEmpty(message = "ID对不能为空") Map<Long, Long> somecourseInfoIdPair) {
public void updateSpecifyMergeCourseInfoIdTargetList(List<TeacherOpenCourseMergeCourseInfo> courseInfoList, @NotEmpty(message = "ID对不能为空") Map<Long, Long> somecourseInfoIdPair) {
for (TeacherOpenCourseMergeCourseInfo courseInfo : courseInfoList) {
if (somecourseInfoIdPair.containsKey(courseInfo.getTeacherOpenCourseMergeCourseInfoId())) {
courseInfo.setTeacherOpenCourseMergeCourseInfoId(somecourseInfoIdPair.get(courseInfo.getTeacherOpenCourseMergeCourseInfoId()));
@ -750,8 +726,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
* @param teacherOpenCourseId ID
* @return
*/
public Map<Long, Long> copyFromCourseInfo(@NotEmpty(message = "系统课程ID不能为空") Set<Long> courseInfoIds,
@NotNull(message = "开课ID不能为空") final Long teacherOpenCourseId) {
public Map<Long, Long> copyFromCourseInfo(@NotEmpty(message = "系统课程ID不能为空") Set<Long> courseInfoIds, @NotNull(message = "开课ID不能为空") final Long teacherOpenCourseId) {
ConcurrentHashMap<Long, Long> courseInfoIdPair = new ConcurrentHashMap<>(16);
// 查询是否绑定过课程
@ -802,8 +777,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
HashMap<String, String> mapping = MapUtil.of("courseInfoId", "teacherOpenCourseMergeCourseInfoId");
mapping.put("orderIndex", "teacherOpenCourseMergeCourseInfoOrder");
CopyOptions copyOptions = CopyOptions.create().setFieldMapping(mapping);
List<TeacherOpenCourseMergeCourseInfo> copyToList =
BeanUtil.copyToList(chapterList, TeacherOpenCourseMergeCourseInfo.class, copyOptions);
List<TeacherOpenCourseMergeCourseInfo> copyToList = BeanUtil.copyToList(chapterList, TeacherOpenCourseMergeCourseInfo.class, copyOptions);
result.addAll(copyToList);
}
@ -817,8 +791,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
* @param teacherOpenCourseId ID
* @return
*/
public void importCourseInfo(@NotEmpty(message = "系统课程ID不能为空") Set<Long> courseInfoIds,
@NotNull(message = "开课ID不能为空") final Long teacherOpenCourseId) {
public void importCourseInfo(@NotEmpty(message = "系统课程ID不能为空") Set<Long> courseInfoIds, @NotNull(message = "开课ID不能为空") final Long teacherOpenCourseId) {
// 拷贝课程章节。返回的Map是不可修改的。
Map<Long, Long> courseInfoIdPair = copyFromCourseInfo(courseInfoIds, teacherOpenCourseId);
@ -842,6 +815,9 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
teacherOpenCourseQuestionSettingService.copyOpenQuestionChapterTestQuestionToOpenCourse(teacherOpenCourseId, courseInfoIdPair);
// 拷贝系统资源库到教师开课
teacherOpenCourseMergeResourcesInfoService.copySystemResourcesInfoToOpenCourse(teacherOpenCourseId, courseInfos, courseInfoIdPair);
teacherOpenCourseHandsOnService.copySystemHandsToOpenCourse(teacherOpenCourseId, courseInfoId, courseInfoIdPair);
}
});
}
@ -911,10 +887,8 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
* @param teacherOpenCourseId
* @return
*/
public TeacherOpenCourseMergeCourseInfoTree getTreeLocalCacheByTeacherOpenCourseId(
@NotNull(message = "开课ID不能为空") final Long teacherOpenCourseId) {
TeacherOpenCourseMergeCourseInfoTree teacherOpenCourseMergeCourseInfoTree =
teacherOpenCourseMergeCourseInfoDao.getTreeLocalCacheByTeacherOpenCourseId(teacherOpenCourseId);
public TeacherOpenCourseMergeCourseInfoTree getTreeLocalCacheByTeacherOpenCourseId(@NotNull(message = "开课ID不能为空") final Long teacherOpenCourseId) {
TeacherOpenCourseMergeCourseInfoTree teacherOpenCourseMergeCourseInfoTree = teacherOpenCourseMergeCourseInfoDao.getTreeLocalCacheByTeacherOpenCourseId(teacherOpenCourseId);
dictParser(teacherOpenCourseMergeCourseInfoTree);
return teacherOpenCourseMergeCourseInfoTree;
}
@ -926,10 +900,8 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
* @param teacherOpenCourseId
* @return
*/
public TeacherOpenCourseMergeCourseInfo getTreeByTeacherOpenCourseId1(
@NotNull(message = "开课ID不能为空") final Long teacherOpenCourseId) {
TeacherOpenCourseMergeCourseInfo treeCacheByTeacherOpenCourseId =
teacherOpenCourseMergeCourseInfoDao.getValueByTeacherOpenCourseId(teacherOpenCourseId);
public TeacherOpenCourseMergeCourseInfo getTreeByTeacherOpenCourseId1(@NotNull(message = "开课ID不能为空") final Long teacherOpenCourseId) {
TeacherOpenCourseMergeCourseInfo treeCacheByTeacherOpenCourseId = teacherOpenCourseMergeCourseInfoDao.getValueByTeacherOpenCourseId(teacherOpenCourseId);
if (ObjectUtil.isEmpty(treeCacheByTeacherOpenCourseId)) {
return null;
@ -945,12 +917,10 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
* @param teacherOpenCourseId
* @return
*/
public Tree<String> getTreeByTeacherOpenCourseId(
@NotNull(message = "开课ID不能为空") final Long teacherOpenCourseId) {
public Tree<String> getTreeByTeacherOpenCourseId(@NotNull(message = "开课ID不能为空") final Long teacherOpenCourseId) {
// 查询开课下的课程章节小节等所有信息
List<TeacherOpenCourseMergeCourseInfoMyTree> courseInfoList = teacherOpenCourseMergeCourseInfoDao
.getByOpenCourseId(teacherOpenCourseId);
List<TeacherOpenCourseMergeCourseInfoMyTree> courseInfoList = teacherOpenCourseMergeCourseInfoDao.getByOpenCourseId(teacherOpenCourseId);
// 有@Dict注解的时候再开启
// dictParser(courseInfoList);
@ -976,19 +946,15 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
Long courseInfoId = courseInfo.getTeacherOpenCourseMergeCourseInfoId();
// 找到这个课程章节ID下的资源,并排序
List<TeacherOpenCourseMergeResourcesInfo> filteredResourcesInfoList = resourcesInfoCopyOnWriteArrayList.stream()
.filter(it -> it.getTeacherOpenCourseMergeCourseInfoId().equals(courseInfoId))
.sorted((o1, o2) -> {
if (ObjectUtil.isAllNotEmpty(o1.getOrderIndex(), o2.getOrderIndex())) {
return o1.getOrderIndex().compareTo(o2.getOrderIndex());
}
return 0;
}).collect(Collectors.toList());
List<TeacherOpenCourseMergeResourcesInfo> filteredResourcesInfoList = resourcesInfoCopyOnWriteArrayList.stream().filter(it -> it.getTeacherOpenCourseMergeCourseInfoId().equals(courseInfoId)).sorted((o1, o2) -> {
if (ObjectUtil.isAllNotEmpty(o1.getOrderIndex(), o2.getOrderIndex())) {
return o1.getOrderIndex().compareTo(o2.getOrderIndex());
}
return 0;
}).collect(Collectors.toList());
// 获取课程ids
String courseInfoIds = filteredResourcesInfoList.stream().map(TeacherOpenCourseMergeResourcesInfo::getTeacherOpenCourseMergeCourseInfoId)
.map(Objects::toString)
.collect(Collectors.joining(","));
String courseInfoIds = filteredResourcesInfoList.stream().map(TeacherOpenCourseMergeResourcesInfo::getTeacherOpenCourseMergeCourseInfoId).map(Objects::toString).collect(Collectors.joining(","));
// 删除临时变量中的资源,提升下次查找的速度
resourcesInfoCopyOnWriteArrayList.removeIf(it -> courseInfoIds.contains(it.getTeacherOpenCourseMergeCourseInfoId().toString()));
@ -1083,14 +1049,10 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
* @param result
* @return
*/
public void getCourseResourcesByList(@NotNull Collection<TeacherOpenCourseMergeCourseInfo> courseInfoList,
@NotNull Long filterTeacherOpenCourseMergeCourseInfoId,
Collection<TeacherOpenCourseMergeCourseInfo> result) {
public void getCourseResourcesByList(@NotNull Collection<TeacherOpenCourseMergeCourseInfo> courseInfoList, @NotNull Long filterTeacherOpenCourseMergeCourseInfoId, Collection<TeacherOpenCourseMergeCourseInfo> result) {
for (TeacherOpenCourseMergeCourseInfo courseInfo : courseInfoList) {
// 先处理掉一些不合规的数据。防止死循环过滤掉父类ID是他自己的情况
if (courseInfo.getCourseInfoParentId() == null
|| courseInfo.getCourseInfoParentId().equals(courseInfo.getTeacherOpenCourseMergeCourseInfoId())
|| courseInfo.getTeacherOpenCourseMergeCourseInfoId().equals(filterTeacherOpenCourseMergeCourseInfoId)) {
if (courseInfo.getCourseInfoParentId() == null || courseInfo.getCourseInfoParentId().equals(courseInfo.getTeacherOpenCourseMergeCourseInfoId()) || courseInfo.getTeacherOpenCourseMergeCourseInfoId().equals(filterTeacherOpenCourseMergeCourseInfoId)) {
continue;
}
// 处理关系
@ -1111,16 +1073,13 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
* @param result
* @return
*/
public void getTreeCourseResourcesByList(@NotNull Collection<TeacherOpenCourseMergeCourseInfo> courseInfoList,
@NotNull Long filterTeacherOpenCourseMergeCourseInfoId,
TeacherOpenCourseMergeCourseInfo result) {
public void getTreeCourseResourcesByList(@NotNull Collection<TeacherOpenCourseMergeCourseInfo> courseInfoList, @NotNull Long filterTeacherOpenCourseMergeCourseInfoId, TeacherOpenCourseMergeCourseInfo result) {
List<TeacherOpenCourseMergeCourseInfo> tempList = new ArrayList<>();
Iterator<TeacherOpenCourseMergeCourseInfo> iterator = courseInfoList.iterator();
while (iterator.hasNext()) {
TeacherOpenCourseMergeCourseInfo courseInfo = iterator.next();
// 先处理掉一些不合规的数据。防止死循环过滤掉父类ID是他自己的情况
if (courseInfo.getCourseInfoParentId() == null
|| courseInfo.getCourseInfoParentId().equals(courseInfo.getTeacherOpenCourseMergeCourseInfoId())) {
if (courseInfo.getCourseInfoParentId() == null || courseInfo.getCourseInfoParentId().equals(courseInfo.getTeacherOpenCourseMergeCourseInfoId())) {
iterator.remove();
continue;
}
@ -1239,14 +1198,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
switch (moveType) {
case MOVE_TOP: {
List<TeacherOpenCourseMergeCourseInfo> result = teacherOpenCourseMergeCourseInfoDao.createLambdaQuery()
.andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoType, mergeCourseInfo.getCourseInfoType())
.andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoParentId, mergeCourseInfo.getCourseInfoParentId())
.andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoStatus, 1)
.andNotEq(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoId, id)
.asc(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoOrder)
.limit(1, 1)
.select(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoOrder);
List<TeacherOpenCourseMergeCourseInfo> result = teacherOpenCourseMergeCourseInfoDao.createLambdaQuery().andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoType, mergeCourseInfo.getCourseInfoType()).andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoParentId, mergeCourseInfo.getCourseInfoParentId()).andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoStatus, 1).andNotEq(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoId, id).asc(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoOrder).limit(1, 1).select(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoOrder);
if (CollectionUtil.isEmpty(result)) {
throw new PlatformException("已处于置顶状态!");
@ -1262,15 +1214,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
case MOVE_LEFT: {
List<TeacherOpenCourseMergeCourseInfo> result = teacherOpenCourseMergeCourseInfoDao.createLambdaQuery()
.andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoType, mergeCourseInfo.getCourseInfoType())
.andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoParentId, mergeCourseInfo.getCourseInfoParentId())
.andLess(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoOrder, defaultIfNull(mergeCourseInfo.getTeacherOpenCourseMergeCourseInfoOrder(), 50))
.andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoStatus, 1)
.andNotEq(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoId, id)
.desc(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoOrder)
.limit(1, 2)
.select(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoOrder);
List<TeacherOpenCourseMergeCourseInfo> result = teacherOpenCourseMergeCourseInfoDao.createLambdaQuery().andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoType, mergeCourseInfo.getCourseInfoType()).andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoParentId, mergeCourseInfo.getCourseInfoParentId()).andLess(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoOrder, defaultIfNull(mergeCourseInfo.getTeacherOpenCourseMergeCourseInfoOrder(), 50)).andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoStatus, 1).andNotEq(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoId, id).desc(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoOrder).limit(1, 2).select(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoOrder);
if (CollectionUtil.isEmpty(result)) {
throw new PlatformException("已处于置顶状态!");
@ -1293,15 +1237,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
case MOVE_RIGHT: {
List<TeacherOpenCourseMergeCourseInfo> result = teacherOpenCourseMergeCourseInfoDao.createLambdaQuery()
.andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoType, mergeCourseInfo.getCourseInfoType())
.andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoParentId, mergeCourseInfo.getCourseInfoParentId())
.andGreat(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoOrder, defaultIfNull(mergeCourseInfo.getTeacherOpenCourseMergeCourseInfoOrder(), 50))
.andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoStatus, 1)
.andNotEq(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoId, id)
.asc(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoOrder)
.limit(1, 2)
.select(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoOrder);
List<TeacherOpenCourseMergeCourseInfo> result = teacherOpenCourseMergeCourseInfoDao.createLambdaQuery().andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoType, mergeCourseInfo.getCourseInfoType()).andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoParentId, mergeCourseInfo.getCourseInfoParentId()).andGreat(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoOrder, defaultIfNull(mergeCourseInfo.getTeacherOpenCourseMergeCourseInfoOrder(), 50)).andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoStatus, 1).andNotEq(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoId, id).asc(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoOrder).limit(1, 2).select(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoOrder);
if (CollectionUtil.isEmpty(result)) {
throw new PlatformException("已处于置底状态!");
@ -1370,14 +1306,11 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
Assert.isFalse(!hasLeft && !hasRight, "左右元素ID不能同时为空");
// 自身元素
TeacherOpenCourseMergeCourseInfo selfElement = allElement.stream()
.filter(item -> item.getTeacherOpenCourseMergeCourseInfoId().equals(id)).findFirst().get();
TeacherOpenCourseMergeCourseInfo selfElement = allElement.stream().filter(item -> item.getTeacherOpenCourseMergeCourseInfoId().equals(id)).findFirst().get();
// 左侧元素
TeacherOpenCourseMergeCourseInfo leftElement = allElement.stream()
.filter(item -> item.getTeacherOpenCourseMergeCourseInfoId().equals(leftId)).findFirst().orElse(null);
TeacherOpenCourseMergeCourseInfo leftElement = allElement.stream().filter(item -> item.getTeacherOpenCourseMergeCourseInfoId().equals(leftId)).findFirst().orElse(null);
// 右侧元素
TeacherOpenCourseMergeCourseInfo rightElement = allElement.stream()
.filter(item -> item.getTeacherOpenCourseMergeCourseInfoId().equals(rightId)).findFirst().orElse(null);
TeacherOpenCourseMergeCourseInfo rightElement = allElement.stream().filter(item -> item.getTeacherOpenCourseMergeCourseInfoId().equals(rightId)).findFirst().orElse(null);
// 定义排序值
BigDecimal clacedOrder = null;

@ -34,6 +34,8 @@ public class HandsOnQuery extends PageParam {
@Query(name = "数据集", display = false)
private String trainingData;
private Integer handsOnStatus;
private String courseInfoIds;
private Long courseInfoId_0;
@ -60,7 +62,7 @@ public class HandsOnQuery extends PageParam {
this.courseInfoIds = courseInfoIds;
}
private Integer handsOnStatus;
public Integer getHandsOnStatus() {
return handsOnStatus;

@ -195,6 +195,9 @@ getValuesByQuery
@if(!isEmpty(courseInfoId)){
and t.course_info_id =#courseInfoId#
@}
@if(!isEmpty(courseInfoIds)){
and t.course_info_id in (#text(courseInfoIds)#)
@}
@if(!isEmpty(courseChildNode)){
and t.course_child_node =#courseChildNode#
@}
@ -212,6 +215,39 @@ getValuesByQuery
@}
getValuesByQueryNotPermission
===
* 根据不为空的参数进行查询(无权限)
select t.*
from hands_on t
where 1=1
@if(!isEmpty(handsOnId)){
and t.hands_on_id =#handsOnId#
@}
@if(!isEmpty(courseInfoId)){
and t.course_info_id =#courseInfoId#
@}
@if(!isEmpty(courseInfoIds)){
and t.course_info_id in (#text(courseInfoIds)#)
@}
@if(!isEmpty(courseChildNode)){
and t.course_child_node =#courseChildNode#
@}
@if(!isEmpty(handsOnName)){
and t.hands_on_name =#handsOnName#
@}
@if(!isEmpty(handsOnRecommend)){
and t.hands_on_recommend =#handsOnRecommend#
@}
@if(!isEmpty(teacherOpenCourseId)){
and t.teacher_open_course_id =#teacherOpenCourseId#
@}
@if(!isEmpty(handsOnStatus)){
and t.hands_on_status =#handsOnStatus#
@}
queryObjectByHandsOnIds
===

@ -338,7 +338,7 @@ getValuesByQuery
and t.hands_on_id =#handsOnId#
@}
@if(!isEmpty(handsOnIdPlural)){
and find_in_set(t.hands_on_id,#handsOnIdPlural#)
and t.hands_on_id in (#text(handsOnIdPlural)#)
@}
@if(!isEmpty(taskType)){
and t.task_type =#taskType#

Loading…
Cancel
Save