瀏覽代碼

add:课程目标标识

caozixuan 1 年之前
父節點
當前提交
47520a4d28

+ 12 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/CourseWeightResult.java

@@ -25,6 +25,10 @@ public class CourseWeightResult {
     @JsonSerialize(using = ToStringSerializer.class)
     private Long weightSettingSign;
 
+    @ApiModelProperty("知识点设置标记")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long dimensionSign;
+
     @ApiModelProperty("课程权重表单")
     private List<CourseWeightDto> submitForm;
 
@@ -52,6 +56,14 @@ public class CourseWeightResult {
         this.weightSettingSign = weightSettingSign;
     }
 
+    public Long getDimensionSign() {
+        return dimensionSign;
+    }
+
+    public void setDimensionSign(Long dimensionSign) {
+        this.dimensionSign = dimensionSign;
+    }
+
     public List<CourseWeightDto> getSubmitForm() {
         return submitForm;
     }

+ 12 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/TeachCourse.java

@@ -3,7 +3,6 @@ package com.qmth.distributed.print.business.entity;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.teachcloud.common.base.BaseEntity;
-import com.qmth.teachcloud.common.entity.SysUser;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -47,9 +46,12 @@ public class TeachCourse extends BaseEntity implements Serializable {
     @ApiModelProperty(value = "权重设置")
     private Boolean weightSetting;
 
-    @ApiModelProperty(value = "")
+    @ApiModelProperty(value = "权重设置标识")
     private Long weightSettingSign;
 
+    @ApiModelProperty(value = "知识点标识")
+    private Long dimensionSign;
+
     @ApiModelProperty(value = "默认占比")
     private BigDecimal defaultRate;
 
@@ -148,4 +150,12 @@ public class TeachCourse extends BaseEntity implements Serializable {
     public void setWeightSettingSign(Long weightSettingSign) {
         this.weightSettingSign = weightSettingSign;
     }
+
+    public Long getDimensionSign() {
+        return dimensionSign;
+    }
+
+    public void setDimensionSign(Long dimensionSign) {
+        this.dimensionSign = dimensionSign;
+    }
 }

+ 25 - 7
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/CourseTargetServiceImpl.java

@@ -68,7 +68,7 @@ public class CourseTargetServiceImpl extends ServiceImpl<CourseTargetMapper, Cou
             String targetContent = e.getTargetContent();
             List<Long> dimensionIdList = JSON.parseArray(targetContent, Long.class);
             List<CourseDimensionDto> dimensionList = new ArrayList<>();
-            if (SystemConstant.strNotNull(targetContent)){
+            if (SystemConstant.strNotNull(targetContent)) {
                 dimensionIdList.forEach(d -> {
                     CourseDimensionDto courseDimensionDto = new CourseDimensionDto();
                     CourseDimension courseDimension = courseDimensionMap.get(d);
@@ -97,7 +97,7 @@ public class CourseTargetServiceImpl extends ServiceImpl<CourseTargetMapper, Cou
                 .collect(Collectors.toMap(BaseEntity::getId, v -> {
                     List<Long> dimensionList = new ArrayList<>();
                     String targetContent = v.getTargetContent();
-                    if (SystemConstant.strNotNull(targetContent)){
+                    if (SystemConstant.strNotNull(targetContent)) {
                         dimensionList = JSON.parseArray(targetContent, Long.class);
                     }
                     return dimensionList;
@@ -165,7 +165,7 @@ public class CourseTargetServiceImpl extends ServiceImpl<CourseTargetMapper, Cou
         List<Long> occupiedIdList = courseTargetResultList.stream().flatMap(e -> {
             List<Long> idList = new ArrayList<>();
             String content = e.getTargetContent();
-            if (SystemConstant.strNotNull(content)){
+            if (SystemConstant.strNotNull(content)) {
                 idList = JSON.parseArray(content, Long.class);
             }
             return idList.stream();
@@ -197,15 +197,31 @@ public class CourseTargetServiceImpl extends ServiceImpl<CourseTargetMapper, Cou
 
         if (SystemConstant.longNotNull(id)) {
             // 编辑 (更新教学课程权重标识)
+            UpdateWrapper<TeachCourse> teachCourseUpdateWrapper = new UpdateWrapper<>();
+            teachCourseUpdateWrapper.lambda().eq(TeachCourse::getId, teachCourseId);
+
+            CourseTarget db = this.getById(id);
+            String dbContent = db.getTargetContent();
+            if (SystemConstant.strNotNull(dbContent)) {
+                List<Long> dbDimensionList = JSON.parseArray(dbContent, Long.class);
+                if (!dimensionIdList.containsAll(dbDimensionList) || !dbDimensionList.containsAll(dimensionIdList)) {
+                    // 关联知识点变化 重设知识点,权重md5更新
+                    teachCourseUpdateWrapper.lambda().set(TeachCourse::getDimensionSign, SystemConstant.getDbUuid())
+                            .set(TeachCourse::getWeightSettingSign, SystemConstant.getDbUuid());
+                }
+                // 目标描述变了 更新权重设置标识
+                if (!courseTarget.getTargetName().equals(db.getTargetName()) || !courseTarget.getDegreeRequirement()
+                        .equals(db.getDegreeRequirement())) {
+                    teachCourseUpdateWrapper.lambda().set(TeachCourse::getWeightSettingSign, SystemConstant.getDbUuid());
+                }
+            }
             courseTarget.setId(id);
             courseTarget.updateInfo(requestUserId);
-
-            UpdateWrapper<TeachCourse> teachCourseUpdateWrapper = new UpdateWrapper<>();
-            teachCourseUpdateWrapper.lambda().eq(TeachCourse::getId, teachCourseId)
-                    .set(TeachCourse::getWeightSettingSign, SystemConstant.getDbUuid());
             teachCourseService.update(teachCourseUpdateWrapper);
         } else {
             // 新增 (清空权重设置)
+            teachCourseService.update(
+                    new UpdateWrapper<TeachCourse>().lambda().eq(TeachCourse::getId, courseTarget.getTeachCourseId()).set(TeachCourse::getDimensionSign, SystemConstant.getDbUuid()));
             teachCourseService.clearCourseSetting(teachCourseId, CourseSettingTypeEnum.COURSE_TARGET);
             courseTarget.insertInfo(requestUserId);
         }
@@ -217,6 +233,8 @@ public class CourseTargetServiceImpl extends ServiceImpl<CourseTargetMapper, Cou
     public void deleteCourseTarget(Long id) {
         CourseTarget courseTarget = this.getById(id);
         if (Objects.nonNull(courseTarget)) {
+            teachCourseService.update(
+                    new UpdateWrapper<TeachCourse>().lambda().eq(TeachCourse::getId, courseTarget.getTeachCourseId()).set(TeachCourse::getDimensionSign, SystemConstant.getDbUuid()));
             teachCourseService.clearCourseSetting(courseTarget.getTeachCourseId(), CourseSettingTypeEnum.COURSE_TARGET);
             this.removeById(id);
         }

+ 2 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/CourseWeightServiceImpl.java

@@ -139,6 +139,7 @@ public class CourseWeightServiceImpl extends ServiceImpl<CourseWeightMapper, Cou
         }
         CourseWeightResult result = new CourseWeightResult();
         result.setWeightSettingSign(teachCourse.getWeightSettingSign());
+        result.setDimensionSign(teachCourse.getDimensionSign());
         result.setDefaultRate(defaultRate);
         result.setCustomRate(customRate);
         result.setSubmitForm(submitForm);
@@ -224,6 +225,7 @@ public class CourseWeightServiceImpl extends ServiceImpl<CourseWeightMapper, Cou
         }
         CourseWeightResult result = new CourseWeightResult();
         result.setWeightSettingSign(teachCourse.getWeightSettingSign());
+        result.setDimensionSign(teachCourse.getDimensionSign());
         result.setDefaultRate(defaultRate);
         result.setCustomRate(customRate);
         result.setSubmitForm(submitForm);

+ 2 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TeachCourseServiceImpl.java

@@ -499,7 +499,8 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
 
             UpdateWrapper<TeachCourse> teachCourseUpdateWrapper = new UpdateWrapper<>();
             teachCourseUpdateWrapper.lambda().eq(TeachCourse::getId, teachCourseId)
-                    .set(TeachCourse::getWeightSettingSign, SystemConstant.getDbUuid());
+                    .set(TeachCourse::getWeightSettingSign, SystemConstant.getDbUuid())
+                    .set(TeachCourse::getDimensionSign,SystemConstant.getDbUuid());
             this.update(teachCourseUpdateWrapper);
         } else {
             // 删除权重设置

+ 2 - 0
distributed-print-business/src/main/resources/db/log/脚本-caozx.sql

@@ -0,0 +1,2 @@
+ALTER TABLE `teach_course` 
+ADD COLUMN `dimension_sign` BIGINT NULL COMMENT '知识点标识' AFTER `weight_setting_sign`;