瀏覽代碼

fix:bugfix

caozixuan 1 年之前
父節點
當前提交
0923378ec8

+ 22 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/CourseEvaluationServiceImpl.java

@@ -6,22 +6,27 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.distributed.print.business.bean.params.CourseEvaluationParam;
 import com.qmth.distributed.print.business.bean.result.CourseEvaluationResult;
 import com.qmth.distributed.print.business.entity.CourseEvaluation;
+import com.qmth.distributed.print.business.entity.CourseWeight;
 import com.qmth.distributed.print.business.entity.TeachCourse;
 import com.qmth.distributed.print.business.enums.CourseEvaluationTypeEnum;
 import com.qmth.distributed.print.business.enums.CourseSettingTypeEnum;
 import com.qmth.distributed.print.business.mapper.CourseEvaluationMapper;
 import com.qmth.distributed.print.business.service.CourseEvaluationService;
+import com.qmth.distributed.print.business.service.CourseWeightService;
 import com.qmth.distributed.print.business.service.TeachCourseService;
+import com.qmth.teachcloud.common.base.BaseEntity;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.util.ServletUtil;
+import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.List;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -36,6 +41,8 @@ public class CourseEvaluationServiceImpl extends ServiceImpl<CourseEvaluationMap
 
     @Resource
     private TeachCourseService teachCourseService;
+    @Resource
+    private CourseWeightService courseWeightService;
 
     @Override
     public List<CourseEvaluationResult> findCourseEvaluationList(Long teachCourseId) {
@@ -108,7 +115,21 @@ public class CourseEvaluationServiceImpl extends ServiceImpl<CourseEvaluationMap
                 throw ExceptionResultEnum.ERROR.exception(String.format("[%s]的评价方式不能删除", CourseEvaluationTypeEnum.DEFAULT.getType()));
             }
             Long teachCourseId = courseEvaluation.getTeachCourseId();
-            teachCourseService.clearCourseSetting(teachCourseId, CourseSettingTypeEnum.COURSE_EVALUATION);
+
+            // 该评价方式涉及到的权重
+            List<CourseWeight> courseWeightList = courseWeightService.list(
+                    new QueryWrapper<CourseWeight>().lambda().eq(CourseWeight::getTeachCourseId, teachCourseId)
+                            .eq(CourseWeight::getEvaluationId, id));
+
+            if (CollectionUtils.isNotEmpty(courseWeightList)) {
+                if (courseWeightList.stream().anyMatch(CourseWeight::getEnable)) {
+                    // 该评价方式有被用到,删除所有权重设置
+                    teachCourseService.clearCourseSetting(teachCourseId, CourseSettingTypeEnum.COURSE_EVALUATION);
+                } else {
+                    // 该评价方式没有用到,删除权重中涉及该评价方式的记录
+                    teachCourseService.removeByIds(courseWeightList.stream().map(BaseEntity::getId).collect(Collectors.toList()));
+                }
+            }
             this.removeById(id);
         }
     }