评分修改

This commit is contained in:
wuchunlei
2024-09-20 16:42:23 +08:00
parent c542f06f4a
commit ac0db07b7f
3 changed files with 50 additions and 39 deletions

View File

@@ -333,15 +333,13 @@ public class ClassController {
//心得评分 //心得评分
@RequestMapping("/editTaskScore") @RequestMapping("/editTaskScore")
public R editTaskScore(@RequestBody Map<String,Object> params){ public R editTaskScore(@RequestBody Map<String,Object> params){
classEntityService.editTaskScore(params); return classEntityService.editTaskScore(params);
return R.ok();
} }
//打分 //打分
@RequestMapping("/editScore") @RequestMapping("/editScore")
public R editScore(@RequestBody Map<String,Object> params){ public R editScore(@RequestBody Map<String,Object> params){
classEntityService.editScore(params); return classEntityService.editScore(params);
return R.ok();
} }
//编辑作业 //编辑作业

View File

@@ -77,9 +77,9 @@ public interface ClassEntityService extends IService<ClassEntity> {
Page getReplyListByTaskIdStudent(Map<String ,Object> params); Page getReplyListByTaskIdStudent(Map<String ,Object> params);
void editTaskScore(Map<String,Object> params); R editTaskScore(Map<String,Object> params);
void editScore(Map<String,Object> params); R editScore(Map<String,Object> params);
void editClassTaskAndQuesReply(ClassTaskAndQuesReply classTaskAndQuesReply); void editClassTaskAndQuesReply(ClassTaskAndQuesReply classTaskAndQuesReply);

View File

@@ -962,49 +962,62 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
} }
@Override @Override
public void editTaskScore(Map<String, Object> params) { public R editTaskScore(Map<String, Object> params) {
ClassTask classTask = classTaskDao.selectById(params.get("taskId").toString()); ClassTask classTask = classTaskDao.selectById(params.get("taskId").toString());
classTask.setScoreSuccess(classTask.getScoreSuccess()+1); ClassEntity classEntity = this.baseMapper.selectById(classTask.getClassId());
classTask.setScore(Double.parseDouble(params.get("score").toString())); if ("1".equals(classEntity.getState())||"3".equals(classEntity.getState())){
classTaskDao.updateById(classTask); classTask.setScoreSuccess(classTask.getScoreSuccess()+1);
classTask.setScore(Double.parseDouble(params.get("score").toString()));
classTaskDao.updateById(classTask);
}else {
return R.error("此班级状态不能评分");
}
return R.ok();
} }
@Override @Override
public void editScore(Map<String, Object> params) { @Transactional
public R editScore(Map<String, Object> params) {
ClassTaskAndQuesReply classTaskAndQuesReply = classTaskAndQuesReplyDao.selectById(params.get("replyId").toString()); ClassTaskAndQuesReply classTaskAndQuesReply = classTaskAndQuesReplyDao.selectById(params.get("replyId").toString());
String score = params.get("score").toString(); ClassEntity classEntity = this.baseMapper.selectById(classTaskAndQuesReply.getClassId());
String scoreInfo = ""; if ("1".equals(classEntity.getState())||"3".equals(classEntity.getState())){
Map<String,Object> userIdAndScore = new HashMap<>(); String score = params.get("score").toString();
if (StringUtils.isNotEmpty(classTaskAndQuesReply.getScoreInfo())){ String scoreInfo = "";
boolean flag = true; Map<String,Object> userIdAndScore = new HashMap<>();
userIdAndScore = JSON.parseObject(classTaskAndQuesReply.getScoreInfo()); if (StringUtils.isNotEmpty(classTaskAndQuesReply.getScoreInfo())){
for (Map.Entry<String,Object> key : userIdAndScore.entrySet()) { boolean flag = true;
if (key.equals(ShiroUtils.getUId().toString())){ userIdAndScore = JSON.parseObject(classTaskAndQuesReply.getScoreInfo());
flag = false; for (Map.Entry<String,Object> key : userIdAndScore.entrySet()) {
key.setValue(score); if (key.equals(ShiroUtils.getUId().toString())){
flag = false;
key.setValue(score);
}
} }
} if (flag) {
if (flag) { userIdAndScore.put(""+ShiroUtils.getUId(),score);
}
}else {
userIdAndScore.put(""+ShiroUtils.getUId(),score); userIdAndScore.put(""+ShiroUtils.getUId(),score);
} }
scoreInfo = JSON.toJSONString(userIdAndScore);
classTaskAndQuesReply.setScoreInfo(scoreInfo);
classTaskAndQuesReplyDao.updateById(classTaskAndQuesReply);
//生成成绩
Map<String,Object> userIdScore = JSON.parseObject(classTaskAndQuesReply.getScoreInfo());
double socre = 0;
for (Map.Entry<String,Object> key : userIdScore.entrySet()) {
socre = socre + Double.valueOf(key.getValue().toString());
}
socre = socre/userIdScore.size();
BigDecimal socre2 = new BigDecimal(socre);
socre2 = socre2.setScale(2,RoundingMode.HALF_UP);
classTaskAndQuesReply.setScoreSuccess(classTaskAndQuesReply.getScoreSuccess()+1);
classTaskAndQuesReply.setScore(socre2.doubleValue());
classTaskAndQuesReplyDao.updateById(classTaskAndQuesReply);
}else { }else {
userIdAndScore.put(""+ShiroUtils.getUId(),score); return R.error("此班级状态不能评分");
} }
scoreInfo = JSON.toJSONString(userIdAndScore); return R.ok();
classTaskAndQuesReply.setScoreInfo(scoreInfo);
classTaskAndQuesReplyDao.updateById(classTaskAndQuesReply);
//生成成绩
Map<String,Object> userIdScore = JSON.parseObject(classTaskAndQuesReply.getScoreInfo());
double socre = 0;
for (Map.Entry<String,Object> key : userIdScore.entrySet()) {
socre = socre + Double.valueOf(key.getValue().toString());
}
socre = socre/userIdScore.size();
BigDecimal socre2 = new BigDecimal(socre);
socre2 = socre2.setScale(2,RoundingMode.HALF_UP);
classTaskAndQuesReply.setScoreSuccess(classTaskAndQuesReply.getScoreSuccess()+1);
classTaskAndQuesReply.setScore(socre2.doubleValue());
classTaskAndQuesReplyDao.updateById(classTaskAndQuesReply);
} }
@Override @Override