From 1dfd9f2b44bfb06d76404a3f30e520d69096472b Mon Sep 17 00:00:00 2001 From: xiaoCJ <406612557@qq.com> Date: Tue, 22 Aug 2023 17:15:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=80=BB=E6=88=90=E7=BB=A9?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=EF=BC=8C=E4=BB=A5=E5=8F=8A=E9=83=A8=E5=88=86?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/TrainingScoreController.java | 38 +++++----- .../service/ISysTrainingScoreService.java | 4 ++ .../impl/SysTrainingScoreServiceImpl.java | 70 ++++++++++++------- 3 files changed, 69 insertions(+), 43 deletions(-) diff --git a/ruoyi-biemo/src/main/java/com/ruoyi/biemo/business/controller/TrainingScoreController.java b/ruoyi-biemo/src/main/java/com/ruoyi/biemo/business/controller/TrainingScoreController.java index 17025c6..e685183 100644 --- a/ruoyi-biemo/src/main/java/com/ruoyi/biemo/business/controller/TrainingScoreController.java +++ b/ruoyi-biemo/src/main/java/com/ruoyi/biemo/business/controller/TrainingScoreController.java @@ -1,14 +1,9 @@ package com.ruoyi.biemo.business.controller; import com.alibaba.fastjson.JSONObject; - import com.github.pagehelper.PageInfo; -import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.entity.SysUser; -import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.domain.SysGradeWeight; import com.ruoyi.system.domain.SysTrainingScore; @@ -20,9 +15,7 @@ import com.ruoyi.system.mapper.SysGradeWeightMapper; import com.ruoyi.system.mapper.SysTrainingScoreMapper; import com.ruoyi.system.mapper.SysUserMapper; import com.ruoyi.system.service.ISysTrainingScoreService; -import com.ruoyi.system.service.ISysUserService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -98,7 +91,7 @@ public class TrainingScoreController { } for (int i = 0; i < trainingScoreList.size(); i++) { SysTrainingScore sysTrainingScore = trainingScoreList.get(i); - if (sysTrainingScore.getReportContent()==null || "".equals(sysTrainingScore.getReportContent())){ + if (sysTrainingScore.getReportContent() == null || "".equals(sysTrainingScore.getReportContent())) { continue; } String reportContent = sysTrainingScore.getReportContent(); @@ -136,7 +129,7 @@ public class TrainingScoreController { Long userId = jsonObject.getLong("userId"); String content = jsonObject.getString("content"); boolean isSubmit = jsonObject.getBoolean("isSubmit"); - return trainingScoreService.saveOrSubmitReport(content, userId,isSubmit); + return trainingScoreService.saveOrSubmitReport(content, userId, isSubmit); } //学生端实验报告回显 @@ -222,19 +215,26 @@ public class TrainingScoreController { } - // 老师端报告评分 + // // 老师端报告评分 +// @PostMapping("/reportGrade") +// public void reportGrade(@RequestBody JSONObject jsonObject) { +// Integer reportScore = jsonObject.getInteger("reportScore"); +// Long userId = jsonObject.getLong("userId"); +// SysTrainingScoreExample trainingScoreExample = new SysTrainingScoreExample(); +// trainingScoreExample.createCriteria().andUseridEqualTo(userId); +// List sysTrainingScores = trainingScoreMapper.selectByExample(trainingScoreExample); +// if (!sysTrainingScores.isEmpty()) { +// SysTrainingScore sysTrainingScore = sysTrainingScores.get(0); +// sysTrainingScore.setTrainingReportScore(reportScore); +// trainingScoreMapper.updateByPrimaryKeySelective(sysTrainingScore); +// } +// } +// 老师端报告评分 @PostMapping("/reportGrade") - public void reportGrade(@RequestBody JSONObject jsonObject) { + public Map reportGrade(@RequestBody JSONObject jsonObject) { Integer reportScore = jsonObject.getInteger("reportScore"); Long userId = jsonObject.getLong("userId"); - SysTrainingScoreExample trainingScoreExample = new SysTrainingScoreExample(); - trainingScoreExample.createCriteria().andUseridEqualTo(userId); - List sysTrainingScores = trainingScoreMapper.selectByExample(trainingScoreExample); - if (!sysTrainingScores.isEmpty()) { - SysTrainingScore sysTrainingScore = sysTrainingScores.get(0); - sysTrainingScore.setTrainingReportScore(reportScore); - trainingScoreMapper.updateByPrimaryKeySelective(sysTrainingScore); - } + return trainingScoreService.reportGrade(reportScore, userId); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysTrainingScoreService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysTrainingScoreService.java index 2263125..84e3010 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysTrainingScoreService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysTrainingScoreService.java @@ -1,5 +1,6 @@ package com.ruoyi.system.service; +import com.alibaba.fastjson2.JSONObject; import com.github.pagehelper.PageInfo; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.system.domain.SysTrainingScore; @@ -8,6 +9,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.util.List; +import java.util.Map; public interface ISysTrainingScoreService { @@ -32,4 +34,6 @@ public interface ISysTrainingScoreService { void insertByUserId(Long userId); AjaxResult downloadReport(HttpServletResponse response, Long id); + + Map reportGrade(Integer reportScore, Long userId); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTrainingScoreServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTrainingScoreServiceImpl.java index aa1f85f..8bb7a34 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTrainingScoreServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTrainingScoreServiceImpl.java @@ -20,10 +20,7 @@ import org.springframework.util.StringUtils; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.UUID; +import java.util.*; @Service public class SysTrainingScoreServiceImpl implements ISysTrainingScoreService { @@ -215,25 +212,25 @@ public class SysTrainingScoreServiceImpl implements ISysTrainingScoreService { reportDto.setStuClass(user.getStuClass()); reportDto.setStuNumber(user.getStudentNumber()); reportDto.setUserId(user.getUserId()); - if (reportScore != null && trainingOperationScore != null) { - SysGradeWeight sysGradeWeight = gradeWeightMapper.selectByPrimaryKey(1L); - Double oldReportWeight = sysGradeWeight.getReportWeight(); - Double oldOperatorWeight = sysGradeWeight.getOperatorWeight(); - if (reportWeight != null) { - sysGradeWeight.setReportWeight(reportWeight); - } else if (oldReportWeight != null) { - reportWeight = oldReportWeight; - } else { - reportWeight = 0.1; // 设置默认权重 - } + SysGradeWeight sysGradeWeight = gradeWeightMapper.selectByPrimaryKey(1L); + Double oldReportWeight = sysGradeWeight.getReportWeight(); + Double oldOperatorWeight = sysGradeWeight.getOperatorWeight(); + if (reportWeight != null) { + sysGradeWeight.setReportWeight(reportWeight); + } else if (oldReportWeight != null) { + reportWeight = oldReportWeight; + } else { + reportWeight = 0.1; // 设置默认权重 + } - if (operatorWeight != null) { - sysGradeWeight.setOperatorWeight(operatorWeight); - } else if (oldOperatorWeight != null) { - operatorWeight = oldOperatorWeight; - } else { - operatorWeight = 0.9; // 设置默认权重 - } + if (operatorWeight != null) { + sysGradeWeight.setOperatorWeight(operatorWeight); + } else if (oldOperatorWeight != null) { + operatorWeight = oldOperatorWeight; + } else { + operatorWeight = 0.9; // 设置默认权重 + } + if (reportScore != null && trainingOperationScore != null) { Double resultReportScore = reportScore * reportWeight; //报告成绩 加权重后 Double resultOperationScore = trainingOperationScore * operatorWeight; //操作成绩 加权重后 Double totalScore = resultReportScore + resultOperationScore; //总成绩 @@ -249,11 +246,11 @@ public class SysTrainingScoreServiceImpl implements ISysTrainingScoreService { return reportDto; } //当两个成绩有一个时,也需要查询返回已有的 (不能算权重) 只有一个时不计算权重 否则查询一次就会算一次哦 else if (reportScore != null) { // 当只有报告成绩可用时 - reportDto.setTrainingReportScore(reportScore.doubleValue()); + reportDto.setTrainingReportScore(reportScore.doubleValue() * reportWeight); trainingScoreMapper.updateByPrimaryKeySelective(sysTrainingScore); return reportDto; } else if (trainingOperationScore != null) { // 当只有操作成绩可用时 - reportDto.setTrainingOperationScore(trainingOperationScore.doubleValue()); + reportDto.setTrainingOperationScore(trainingOperationScore.doubleValue() * operatorWeight); trainingScoreMapper.updateByPrimaryKeySelective(sysTrainingScore); return reportDto; } else { @@ -367,4 +364,29 @@ public class SysTrainingScoreServiceImpl implements ISysTrainingScoreService { } return AjaxResult.success("下载成功"); } + + + //修改实训报告分数,并重新算分 + @Override + public Map reportGrade(Integer reportScore, Long userId) { + Map resultMap = new HashMap<>(); + SysTrainingScoreExample trainingScoreExample = new SysTrainingScoreExample(); + trainingScoreExample.createCriteria().andUseridEqualTo(userId); + List sysTrainingScores = trainingScoreMapper.selectByExample(trainingScoreExample); + if (!sysTrainingScores.isEmpty()) { + SysTrainingScore sysTrainingScore = sysTrainingScores.get(0); + sysTrainingScore.setTrainingReportScore(reportScore); + trainingScoreMapper.updateByPrimaryKeySelective(sysTrainingScore); + // 调用重新计算分数和总成绩的逻辑 + SysUser user = sysUserMapper.selectUserById(userId); + SysGradeWeight sysGradeWeight = gradeWeightMapper.selectByPrimaryKey(1L); + Double operatorWeight = sysGradeWeight.getOperatorWeight(); + Double reportWeight = sysGradeWeight.getReportWeight(); + //修改完调用算分方法重新算分 + createReportDto(sysTrainingScore, user, reportWeight, operatorWeight); + resultMap.put(userId,reportScore); + return resultMap; + } + return null; + } }