结班限制

个人成绩
This commit is contained in:
wuchunlei
2024-09-09 16:16:03 +08:00
parent 0fd8f83b47
commit c3252e2966

View File

@@ -318,6 +318,19 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
);
}
}else {
//结班限制
int classExamUsers = classExamUserDao.selectCount(new LambdaQueryWrapper<ClassExamUser>()
.eq(ClassExamUser::getClassId,classEntity.getId())
.eq(ClassExamUser::getScoreSuccess,0));
if (classExamUsers>0){
return R.error("有学员正在考试,请稍后再试");
}
int replys = classTaskAndQuesReplyDao.selectCount(new LambdaQueryWrapper<ClassTaskAndQuesReply>()
.eq(ClassTaskAndQuesReply::getClassId,classEntity.getId())
.eq(ClassTaskAndQuesReply::getScoreSuccess,0));
if (replys>0){
return R.error("学员打分未完成,请完成打分后结班");
}
classEntity.setState("2");
classEntity.setEndTime(new Date());
this.getBaseMapper().updateById(classEntity);
@@ -1077,24 +1090,11 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
}
map.put("experienceScore",experienceScore);
}
return map;
}
@Override
public List userScoreList(Map<String, Object> params) {
ClassEntity classEntity = this.getBaseMapper().selectById(params.get("classId").toString());
ClassModel classModel = classModelDao.selectById(classEntity.getModelId());
List<ClassUser> classUsers = classUserDao.selectList(new LambdaQueryWrapper<ClassUser>()
.eq(ClassUser::getClassId,classEntity.getId()).eq(ClassUser::getRole,"0"));
List<Map<String,Object>> resultList = new ArrayList<>();
if (classUsers.size() > 0){
for (ClassUser classUser:classUsers){
params.put("userId",classUser.getUserId());
Map<String,Object> map = getUserScore(params);
map.put("user",myUserDao.selectById(classUser.getUserId()));
//处理分数占比
if (classModel.getIsExam()==1){
List<Map<String,Object>> classExamUsers = classExamUserDao.selectMaps(new MPJLambdaWrapper<ClassExamUser>()
.eq(ClassExamUser::getUserId,classUser.getUserId())
.eq(ClassExamUser::getUserId,params.get("userId").toString())
.eq(ClassExamUser::getClassId,classEntity.getId())
.eq(ClassExamUser::getScoreSuccess,1)
.selectAs(ClassExamUser::getId,"id")
@@ -1111,7 +1111,6 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
map.put("examScore",examScore);
map.put("classExamUsers",classExamUsers);
}
//处理分数占比
BigDecimal userScore = new BigDecimal(0);;
double staticScore = 2.5;
if(classModel.getIsExam()==1){
@@ -1121,6 +1120,7 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
}
if(classModel.getIsQuestion()==1){
BigDecimal questionScore = new BigDecimal(map.get("questionScore").toString());
if (questionScore.compareTo(new BigDecimal(0))!=0){
MPJLambdaWrapper<CourseCatalogueChapterEntity> wrapper = new MPJLambdaWrapper();
wrapper.leftJoin(ClassCourse.class,ClassCourse::getCourseId,CourseCatalogueChapterEntity::getCourseId);
wrapper.leftJoin(ClassModel.class,ClassModel::getId,ClassCourse::getModelId);
@@ -1134,8 +1134,10 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
map.put("questionScore",questionScore);
userScore = userScore.add(questionScore);
}
}
if(classModel.getIsTask()==1){
BigDecimal task0Score = new BigDecimal(map.get("task0Score").toString());
if (task0Score.compareTo(new BigDecimal(0))!=0){
MPJLambdaWrapper<ClassTask> wrapper = new MPJLambdaWrapper();
wrapper.eq(ClassTask::getClassId,classEntity.getId());
wrapper.eq(ClassTask::getType,"0");
@@ -1147,8 +1149,10 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
map.put("task0Score",task0Score);
userScore = userScore.add(task0Score);
}
}
if(classModel.getIsMedicalcase()==1){
BigDecimal task1Score = new BigDecimal(map.get("task1Score").toString());
if (task1Score.compareTo(new BigDecimal(0))!=0){
MPJLambdaWrapper<ClassTask> wrapper = new MPJLambdaWrapper();
wrapper.eq(ClassTask::getClassId,classEntity.getId());
wrapper.eq(ClassTask::getType,"1");
@@ -1160,6 +1164,7 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
map.put("task1Score",task1Score);
userScore = userScore.add(task1Score);
}
}
if(classModel.getIsExperience()==1){
BigDecimal experienceScore = new BigDecimal(map.get("experienceScore").toString());
if (experienceScore.compareTo(new BigDecimal(classModel.getExperienceScore()))>-1){
@@ -1169,6 +1174,21 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
userScore = userScore.add(experienceScore);
}
map.put("userScore",userScore);
return map;
}
@Override
public List userScoreList(Map<String, Object> params) {
ClassEntity classEntity = this.getBaseMapper().selectById(params.get("classId").toString());
List<ClassUser> classUsers = classUserDao.selectList(new LambdaQueryWrapper<ClassUser>()
.eq(ClassUser::getClassId,classEntity.getId()).eq(ClassUser::getRole,"0"));
List<Map<String,Object>> resultList = new ArrayList<>();
if (classUsers.size() > 0){
for (ClassUser classUser:classUsers){
params.put("userId",classUser.getUserId());
Map<String, Object> map = getUserScore(params);
map.put("user",myUserDao.selectById(classUser.getUserId()));
resultList.add(map);
}
Collections.sort(resultList, new Comparator<Map<String,Object>>() {