Browse Source

add:评价方式新增编辑功能

caozixuan 1 year ago
parent
commit
969d90ac8b

+ 12 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/CourseEvaluationParam.java

@@ -16,6 +16,10 @@ import javax.validation.constraints.NotNull;
  */
 public class CourseEvaluationParam {
 
+    @ApiModelProperty("课程评价方式id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
     @ApiModelProperty("教学课程id")
     @JsonSerialize(using = ToStringSerializer.class)
     @NotNull(message = "缺少教学课程")
@@ -35,6 +39,14 @@ public class CourseEvaluationParam {
     @ApiModelProperty("评价方式类型")
     private CourseEvaluationTypeEnum type;
 
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
     public Long getTeachCourseId() {
         return teachCourseId;
     }

+ 39 - 19
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/CourseEvaluationServiceImpl.java

@@ -1,6 +1,7 @@
 package com.qmth.distributed.print.business.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 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;
@@ -11,6 +12,7 @@ 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.TeachCourseService;
+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;
@@ -38,7 +40,7 @@ public class CourseEvaluationServiceImpl extends ServiceImpl<CourseEvaluationMap
     @Override
     public List<CourseEvaluationResult> findCourseEvaluationList(Long teachCourseId) {
         TeachCourse teachCourse = teachCourseService.getById(teachCourseId);
-        if (Objects.isNull(teachCourse)){
+        if (Objects.isNull(teachCourse)) {
             throw ExceptionResultEnum.ERROR.exception("教学课程不存在");
         }
         return this.baseMapper.findCourseEvaluationList(teachCourseId);
@@ -49,34 +51,52 @@ public class CourseEvaluationServiceImpl extends ServiceImpl<CourseEvaluationMap
     public void saveCourseEvaluation(CourseEvaluationParam courseEvaluationParam) {
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
 
+        Long id = courseEvaluationParam.getId();
         Long teachCourseId = courseEvaluationParam.getTeachCourseId();
         String evaluation = courseEvaluationParam.getEvaluation();
         String evaluationDesc = courseEvaluationParam.getEvaluationDesc();
         CourseEvaluationTypeEnum type = courseEvaluationParam.getType();
         TeachCourse teachCourse = teachCourseService.getById(teachCourseId);
-        if (Objects.isNull(teachCourse)){
+        if (Objects.isNull(teachCourse)) {
             throw ExceptionResultEnum.ERROR.exception("教学课程不存在");
         }
         Long examId = teachCourse.getExamId();
         String courseCode = teachCourse.getCourseCode();
 
-        if (this.count(
-                new QueryWrapper<CourseEvaluation>().lambda().eq(CourseEvaluation::getTeachCourseId, teachCourseId)
-                        .eq(CourseEvaluation::getEvaluation, evaluation)) > 0) {
-            throw ExceptionResultEnum.ERROR.exception("评价方式重复");
-        }
+        if (SystemConstant.longNotNull(id)) {
+            // 编辑(只允许更改评价方式描述)
+            CourseEvaluation db = this.getById(id);
+            if (Objects.isNull(db)) {
+                throw ExceptionResultEnum.ERROR.exception("评价方式不存在");
+            }
+            if (!Objects.equals(db.getEvaluationDesc(), evaluationDesc)) {
+                db.updateInfo(requestUser.getId());
+                db.setEvaluationDesc(evaluationDesc);
+                this.updateById(db);
 
-        CourseEvaluation courseEvaluation = new CourseEvaluation();
-        courseEvaluation.setTeachCourseId(teachCourseId);
-        courseEvaluation.setSchoolId(teachCourse.getSchoolId());
-        courseEvaluation.setExamId(examId);
-        courseEvaluation.setCourseCode(courseCode);
-        courseEvaluation.setUserId(teachCourse.getUserId());
-        courseEvaluation.setType(type);
-        courseEvaluation.setEvaluation(evaluation);
-        courseEvaluation.setEvaluationDesc(evaluationDesc);
-        courseEvaluation.insertInfo(requestUser.getId());
-        this.save(courseEvaluation);
+                // 重置权重设置标识
+                teachCourseService.update(new UpdateWrapper<TeachCourse>().lambda().eq(TeachCourse::getId, teachCourseId)
+                        .set(TeachCourse::getWeightSettingSign, SystemConstant.getDbUuid()));
+            }
+        } else {
+            // 新增
+            if (this.count(
+                    new QueryWrapper<CourseEvaluation>().lambda().eq(CourseEvaluation::getTeachCourseId, teachCourseId)
+                            .eq(CourseEvaluation::getEvaluation, evaluation)) > 0) {
+                throw ExceptionResultEnum.ERROR.exception("评价方式重复");
+            }
+            CourseEvaluation courseEvaluation = new CourseEvaluation();
+            courseEvaluation.setTeachCourseId(teachCourseId);
+            courseEvaluation.setSchoolId(teachCourse.getSchoolId());
+            courseEvaluation.setExamId(examId);
+            courseEvaluation.setCourseCode(courseCode);
+            courseEvaluation.setUserId(teachCourse.getUserId());
+            courseEvaluation.setType(type);
+            courseEvaluation.setEvaluation(evaluation);
+            courseEvaluation.setEvaluationDesc(evaluationDesc);
+            courseEvaluation.insertInfo(requestUser.getId());
+            this.save(courseEvaluation);
+        }
     }
 
     @Transactional
@@ -105,4 +125,4 @@ public class CourseEvaluationServiceImpl extends ServiceImpl<CourseEvaluationMap
         courseEvaluationParam.setType(type);
         this.saveCourseEvaluation(courseEvaluationParam);
     }
-}
+}